mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-03-15 15:39:09 +01:00
Accept RPC responses with a null
result
This is actually a valid response in some cases, at least for the `gettxout` command, where `null` is returned if no corresponding UTXO was found, but the command otherwise succeeded.
This commit is contained in:
parent
685f266655
commit
8164cb9307
1 changed files with 7 additions and 6 deletions
|
@ -105,12 +105,13 @@ impl RpcClient {
|
|||
return Err(std::io::Error::new(std::io::ErrorKind::Other, rpc_error));
|
||||
}
|
||||
|
||||
let result = &mut response["result"];
|
||||
if result.is_null() {
|
||||
return Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "expected JSON result"));
|
||||
}
|
||||
let result = match response.get_mut("result") {
|
||||
Some(result) => result.take(),
|
||||
None =>
|
||||
return Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "expected JSON result")),
|
||||
};
|
||||
|
||||
JsonResponse(result.take()).try_into()
|
||||
JsonResponse(result).try_into()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -205,7 +206,7 @@ mod tests {
|
|||
|
||||
#[tokio::test]
|
||||
async fn call_method_returning_missing_result() {
|
||||
let response = serde_json::json!({ "result": null });
|
||||
let response = serde_json::json!({ });
|
||||
let server = HttpServer::responding_with_ok(MessageBody::Content(response));
|
||||
let client = RpcClient::new(CREDENTIALS, server.endpoint()).unwrap();
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue