diff --git a/client/Cargo.toml b/client/Cargo.toml index a9ff7ec3..65049ef4 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -22,7 +22,7 @@ path = "src/lib.rs" bitcoincore-rpc-json = { version = "0.18.0", path = "../json" } log = "0.4.5" -jsonrpc = "0.14.0" +jsonrpc = { version = "0.18.0", features = [] } # Used for deserialization of JSON. serde = "1" diff --git a/client/src/client.rs b/client/src/client.rs index c97a0174..2f809a79 100644 --- a/client/src/client.rs +++ b/client/src/client.rs @@ -1313,12 +1313,8 @@ impl RpcApi for Client { cmd: &str, args: &[serde_json::Value], ) -> Result { - let raw_args: Vec<_> = args - .iter() - .map(serde_json::value::to_raw_value) - .map(|a| a.map_err(|e| Error::Json(e))) - .collect::>>()?; - let req = self.client.build_request(&cmd, &raw_args); + let raw = serde_json::value::to_raw_value(args)?; + let req = self.client.build_request(&cmd, Some(&*raw)); if log_enabled!(Debug) { debug!(target: "bitcoincore_rpc", "JSON-RPC request: {} {}", cmd, serde_json::Value::from(args)); }