                                   wid: BREthereumWallet,
                                   rid: Int32,
                                   completion: @escaping (ETH.GasPrice) -> Void) {
-        let jsonData: JSON.Dict = [
+        let json: JSON.Dict = [
             "method" : "eth_gasPrice",
-            "params" : JSON.Dict(),
+            "params" : [],
             "id" : rid
         ]
 
-        rpcMakeRequest(path: "/ethq/mainnet/proxy", data: jsonData) { (res: Result<BlockChainDB.JSON, BlockChainDB.QueryError>) in
-            guard case let .success (json) = res
-                else { return }
-
-            guard let gasPrice = json.asString(name: "result")
-                else { return }
+        ethMakeRequest(ewm: ewm, data: json) { (res: Result<BlockChainDB.JSON, BlockChainDB.QueryError>) in
+            let gasPrice = try! res
+                .map { $0.asString (name: "result")! }
+                .recover { (ignore) in "0xffc0" }
+                .get()
 
             completion ((wid: wid, gasPrice: gasPrice, rid: rid))
-            //completion ((wid: wid, gasPrice: "0xffc0", rid: rid ))
         }
     }
 

    }

    internal func getTransactionsAsBTC (bwm: BRWalletManager,
                                      blockchainId: String,
                                      addresses: [String],
                                      begBlockNumber: UInt64,
                                      endBlockNumber: UInt64,
                                      rid: Int32,
                                      done: @escaping (Bool, Int32) -> Void,
                                      each: @escaping (BTC.Transaction) -> Void) {
        getTransactions (blockchainId: blockchainId,
                         addresses: addresses,
                         begBlockNumber: begBlockNumber,


            // Callback with `more` and the result (maybe error)
            completion (false, // embedded && full,
                res.flatMap { (json: BlockChainDB.JSON) -> Result<[JSON], BlockChainDB.QueryError> in
                    let json = (embedded
                        ? json.asDict(name: "_embedded")?[path]
                        : [json.dict])

                    guard let data = json as? [JSON.Dict]
                        else { return Result.failure(QueryError.model ("[JSON.Dict] expected")) }

                    return Result.success (data.map { JSON (dict: $0) })
            })
        }
    }

    internal func ethMakeRequest (ewm: BREthereumEWM, data: JSON.Dict, completion: @escaping (Result<JSON, QueryError>) -> Void) {
        let networkName = asUTF8String (networkGetName (ewmGetNetwork(ewm)))

        guard var urlBuilder = URLComponents (string: ethBaseURL!)
            else { completion (Result.failure(QueryError.url("URLComponents"))); return }

        urlBuilder.path = "/ethq/\(networkName)/proxy"

        guard let url = urlBuilder.url
            else { completion (Result.failure (QueryError.url("URLComponents.url"))); return }
