diff --git a/src/index.rs b/src/index.rs index 94bafd85cb..a213c1e636 100644 --- a/src/index.rs +++ b/src/index.rs @@ -169,6 +169,15 @@ impl BitcoinCoreRpcResultExt for Result { Err(bitcoincore_rpc::Error::JsonRpc(bitcoincore_rpc::jsonrpc::error::Error::Rpc( bitcoincore_rpc::jsonrpc::error::RpcError { code: -8, .. }, ))) => Ok(None), + Err(bitcoincore_rpc::Error::JsonRpc(bitcoincore_rpc::jsonrpc::error::Error::Rpc( + bitcoincore_rpc::jsonrpc::error::RpcError { + code: -5, message, .. + }, + ))) + if message.starts_with("No such mempool or blockchain transaction") => + { + Ok(None) + } Err(bitcoincore_rpc::Error::JsonRpc(bitcoincore_rpc::jsonrpc::error::Error::Rpc( bitcoincore_rpc::jsonrpc::error::RpcError { message, .. }, ))) diff --git a/src/subcommand/server.rs b/src/subcommand/server.rs index 664e0f0830..52dc058986 100644 --- a/src/subcommand/server.rs +++ b/src/subcommand/server.rs @@ -7152,4 +7152,14 @@ next } ); } + + #[test] + fn unknown_output_returns_404() { + let server = TestServer::builder().chain(Chain::Regtest).build(); + server.assert_response( + "/output/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef:123", + StatusCode::NOT_FOUND, + "output 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef:123 not found", + ); + } }