Skip to content

Commit a6841a9

Browse files
committed
Merge rust-bitcoin#220: Implement ping method and test
8b1f578 Implement ping method and test (GideonBature) Pull request description: The JSON-RPC method `ping` does return null. We want to test this to catch any changes in behavior in future Core versions. This PR adds a client function that errors if the return value is anything other than `null`, along with an integration test that calls this function. Ref: [rust-bitcoin#116](rust-bitcoin#116) ACKs for top commit: tcharding: ACK 8b1f578 Tree-SHA512: c2626a22f96179e22154a8830a53d6b2568c959515244445dc6481572bde8f45ea9eec16f82bafa19ad8c31814c49d6ccf2e3d0a1d279191548e420d3d15d55d
2 parents 4a26bee + 8b1f578 commit a6841a9

File tree

15 files changed

+35
-0
lines changed

15 files changed

+35
-0
lines changed

client/src/client_sync/v17/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ crate::impl_client_v17__get_connection_count!();
7979
crate::impl_client_v17__get_net_totals!();
8080
crate::impl_client_v17__get_network_info!();
8181
crate::impl_client_v17__get_peer_info!();
82+
crate::impl_client_v17__ping!();
8283
crate::impl_client_v17__set_ban!();
8384

8485
// == Rawtransactions ==

client/src/client_sync/v17/network.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,22 @@ macro_rules! impl_client_v17__get_peer_info {
119119
};
120120
}
121121

122+
/// Implements Bitcoin Core JSON-RPC API method `ping`
123+
#[macro_export]
124+
macro_rules! impl_client_v17__ping {
125+
() => {
126+
impl Client {
127+
pub fn ping(&self) -> Result<()> {
128+
match self.call("ping", &[]) {
129+
Ok(serde_json::Value::Null) => Ok(()),
130+
Ok(res) => Err(Error::Returned(res.to_string())),
131+
Err(err) => Err(err.into()),
132+
}
133+
}
134+
}
135+
};
136+
}
137+
122138
/// Implements Bitcoin Core JSON-RPC API method `setban`
123139
#[macro_export]
124140
macro_rules! impl_client_v17__set_ban {

client/src/client_sync/v18/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ crate::impl_client_v17__get_net_totals!();
8484
crate::impl_client_v17__get_network_info!();
8585
crate::impl_client_v18__get_node_addresses!();
8686
crate::impl_client_v17__get_peer_info!();
87+
crate::impl_client_v17__ping!();
8788
crate::impl_client_v17__set_ban!();
8889

8990
// == Rawtransactions ==

client/src/client_sync/v19/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ crate::impl_client_v17__get_net_totals!();
8282
crate::impl_client_v17__get_network_info!();
8383
crate::impl_client_v18__get_node_addresses!();
8484
crate::impl_client_v17__get_peer_info!();
85+
crate::impl_client_v17__ping!();
8586
crate::impl_client_v17__set_ban!();
8687

8788
// == Rawtransactions ==

client/src/client_sync/v20/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ crate::impl_client_v17__get_net_totals!();
7979
crate::impl_client_v17__get_network_info!();
8080
crate::impl_client_v18__get_node_addresses!();
8181
crate::impl_client_v17__get_peer_info!();
82+
crate::impl_client_v17__ping!();
8283
crate::impl_client_v17__set_ban!();
8384

8485
// == Rawtransactions ==

client/src/client_sync/v21/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ crate::impl_client_v17__get_net_totals!();
8181
crate::impl_client_v17__get_network_info!();
8282
crate::impl_client_v18__get_node_addresses!();
8383
crate::impl_client_v17__get_peer_info!();
84+
crate::impl_client_v17__ping!();
8485
crate::impl_client_v17__set_ban!();
8586

8687
// == Rawtransactions ==

client/src/client_sync/v22/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ crate::impl_client_v17__get_net_totals!();
8181
crate::impl_client_v17__get_network_info!();
8282
crate::impl_client_v18__get_node_addresses!();
8383
crate::impl_client_v17__get_peer_info!();
84+
crate::impl_client_v17__ping!();
8485
crate::impl_client_v17__set_ban!();
8586

8687
// == Rawtransactions ==

client/src/client_sync/v23/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ crate::impl_client_v17__get_net_totals!();
8383
crate::impl_client_v17__get_network_info!();
8484
crate::impl_client_v18__get_node_addresses!();
8585
crate::impl_client_v17__get_peer_info!();
86+
crate::impl_client_v17__ping!();
8687
crate::impl_client_v17__set_ban!();
8788

8889
// == Rawtransactions ==

client/src/client_sync/v24/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ crate::impl_client_v17__get_net_totals!();
8080
crate::impl_client_v17__get_network_info!();
8181
crate::impl_client_v18__get_node_addresses!();
8282
crate::impl_client_v17__get_peer_info!();
83+
crate::impl_client_v17__ping!();
8384
crate::impl_client_v17__set_ban!();
8485

8586
// == Rawtransactions ==

client/src/client_sync/v25/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ crate::impl_client_v17__get_net_totals!();
8080
crate::impl_client_v17__get_network_info!();
8181
crate::impl_client_v18__get_node_addresses!();
8282
crate::impl_client_v17__get_peer_info!();
83+
crate::impl_client_v17__ping!();
8384
crate::impl_client_v17__set_ban!();
8485

8586
// == Rawtransactions ==

0 commit comments

Comments
 (0)