Skip to content

Commit 00e31f6

Browse files
committed
Merge #456: Add hidden RPCs syncwithvalidationinterfacequeue, mockscheduler and reconsiderblock
bab4647 fix(tests): move hidden RPC tests, fix modelled suffixes (RenatoBrittoAraujo) 7756c42 fix(mining): correct docs API version to v30 (RenatoBrittoAraujo) 3e14006 test(blockchain): test mockscheduler hidden RPC (RenatoBrittoAraujo) e1bd874 feat(client): add mockscheduler hidden RPC (RenatoBrittoAraujo) 1846d7d test(blockchain): test reconsiderblock hidden RPC (RenatoBrittoAraujo) af55bf2 feat(client): add reconsiderblock hidden RPC for all client versions (RenatoBrittoAraujo) 865d332 test(blockchain): test syncwithvalidationinterfacequeue RPC (RenatoBrittoAraujo) 0c0c0f3 feat(client): add syncwithvalidationinterfacequeue RPC (RenatoBrittoAraujo) Pull request description: This PR: - Implements `syncwithvalidationinterfacequeue` and `reconsiderblock` in the v17 hidden module, add the client macro and test. Add the reexports for all later versions, as there are no changes in each up to v30. - Implements `mockscheduler` RPC starting from v20 to v30. - Corrects a small error in v30 mining comment. Part of #333. ACKs for top commit: tcharding: ACK bab4647 Tree-SHA512: 3a6a4fb17d931fbc1665024c7e4b5c3c2e9acceeb066ee58d4a54ca8001c0f722105f32b27932e4076796eded584c0fe3424222eecc3e0be0db17306e6cb89b7
2 parents 723faf4 + bab4647 commit 00e31f6

File tree

18 files changed

+152
-1
lines changed

18 files changed

+152
-1
lines changed

client/src/client_sync/v17/hidden.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,27 @@ macro_rules! impl_client_v17__wait_for_new_block {
5656
}
5757
};
5858
}
59+
60+
/// Implements Bitcoin Core JSON-RPC API method `syncwithvalidationinterfacequeue`.
61+
#[macro_export]
62+
macro_rules! impl_client_v17__sync_with_validation_interface_queue {
63+
() => {
64+
impl Client {
65+
pub fn sync_with_validation_interface_queue(&self) -> Result<()> {
66+
self.call("syncwithvalidationinterfacequeue", &[])
67+
}
68+
}
69+
};
70+
}
71+
72+
/// Implements Bitcoin Core JSON-RPC API method `reconsiderblock`.
73+
#[macro_export]
74+
macro_rules! impl_client_v17__reconsider_block {
75+
() => {
76+
impl Client {
77+
pub fn reconsider_block(&self, blockhash: bitcoin::BlockHash) -> Result<()> {
78+
self.call("reconsiderblock", &[into_json(blockhash)?])
79+
}
80+
}
81+
};
82+
}

client/src/client_sync/v17/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ crate::impl_client_v17__estimate_raw_fee!();
7070
crate::impl_client_v17__wait_for_block!();
7171
crate::impl_client_v17__wait_for_block_height!();
7272
crate::impl_client_v17__wait_for_new_block!();
73+
crate::impl_client_v17__sync_with_validation_interface_queue!();
74+
crate::impl_client_v17__reconsider_block!();
7375

7476
// == Mining ==
7577
crate::impl_client_v17__get_block_template!();

client/src/client_sync/v18/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ crate::impl_client_v17__estimate_raw_fee!();
7575
crate::impl_client_v17__wait_for_block!();
7676
crate::impl_client_v17__wait_for_block_height!();
7777
crate::impl_client_v17__wait_for_new_block!();
78+
crate::impl_client_v17__sync_with_validation_interface_queue!();
79+
crate::impl_client_v17__reconsider_block!();
7880

7981
// == Mining ==
8082
crate::impl_client_v17__get_block_template!();

client/src/client_sync/v19/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ crate::impl_client_v17__estimate_raw_fee!();
7070
crate::impl_client_v17__wait_for_block!();
7171
crate::impl_client_v17__wait_for_block_height!();
7272
crate::impl_client_v17__wait_for_new_block!();
73+
crate::impl_client_v17__sync_with_validation_interface_queue!();
74+
crate::impl_client_v17__reconsider_block!();
7375

7476
// == Mining ==
7577
crate::impl_client_v17__get_block_template!();
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// SPDX-License-Identifier: CC0-1.0
2+
3+
//! Macros for implementing JSON-RPC methods on a client.
4+
//!
5+
//! Specifically this is `== Hidden ==` methods that are not listed in the
6+
//! API docs of Bitcoin Core `v0.20`.
7+
//!
8+
//! All macros require `Client` to be in scope.
9+
//!
10+
//! See or use the `define_jsonrpc_bitreq_client!` macro to define a `Client`.
11+
12+
/// Implements Bitcoin Core JSON-RPC API method `mockscheduler`.
13+
#[macro_export]
14+
macro_rules! impl_client_v20__mock_scheduler {
15+
() => {
16+
impl Client {
17+
pub fn mock_scheduler(&self, delta_time: u64) -> Result<()> {
18+
self.call("mockscheduler", &[into_json(delta_time)?])
19+
}
20+
}
21+
};
22+
}

client/src/client_sync/v20/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
//! We ignore option arguments unless they effect the shape of the returned JSON data.
66
77
pub mod generating;
8+
pub mod hidden;
89

910
use std::collections::BTreeMap;
1011
use std::path::Path;
@@ -70,6 +71,9 @@ crate::impl_client_v17__estimate_raw_fee!();
7071
crate::impl_client_v17__wait_for_block!();
7172
crate::impl_client_v17__wait_for_block_height!();
7273
crate::impl_client_v17__wait_for_new_block!();
74+
crate::impl_client_v17__sync_with_validation_interface_queue!();
75+
crate::impl_client_v17__reconsider_block!();
76+
crate::impl_client_v20__mock_scheduler!();
7377

7478
// == Mining ==
7579
crate::impl_client_v17__get_block_template!();

client/src/client_sync/v21/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ crate::impl_client_v17__estimate_raw_fee!();
7676
crate::impl_client_v17__wait_for_block!();
7777
crate::impl_client_v17__wait_for_block_height!();
7878
crate::impl_client_v17__wait_for_new_block!();
79+
crate::impl_client_v17__sync_with_validation_interface_queue!();
80+
crate::impl_client_v17__reconsider_block!();
81+
crate::impl_client_v20__mock_scheduler!();
7982

8083
// == Mining ==
8184
crate::impl_client_v17__get_block_template!();

client/src/client_sync/v22/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ crate::impl_client_v17__estimate_raw_fee!();
7676
crate::impl_client_v17__wait_for_block!();
7777
crate::impl_client_v17__wait_for_block_height!();
7878
crate::impl_client_v17__wait_for_new_block!();
79+
crate::impl_client_v17__sync_with_validation_interface_queue!();
80+
crate::impl_client_v17__reconsider_block!();
81+
crate::impl_client_v20__mock_scheduler!();
7982

8083
// == Mining ==
8184
crate::impl_client_v17__get_block_template!();

client/src/client_sync/v23/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ crate::impl_client_v17__estimate_raw_fee!();
7878
crate::impl_client_v17__wait_for_block!();
7979
crate::impl_client_v17__wait_for_block_height!();
8080
crate::impl_client_v17__wait_for_new_block!();
81+
crate::impl_client_v17__sync_with_validation_interface_queue!();
82+
crate::impl_client_v17__reconsider_block!();
83+
crate::impl_client_v20__mock_scheduler!();
8184

8285
// == Mining ==
8386
crate::impl_client_v17__get_block_template!();

client/src/client_sync/v24/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ crate::impl_client_v17__estimate_raw_fee!();
7979
crate::impl_client_v17__wait_for_block!();
8080
crate::impl_client_v17__wait_for_block_height!();
8181
crate::impl_client_v17__wait_for_new_block!();
82+
crate::impl_client_v17__sync_with_validation_interface_queue!();
83+
crate::impl_client_v17__reconsider_block!();
84+
crate::impl_client_v20__mock_scheduler!();
8285

8386
// == Mining ==
8487
crate::impl_client_v17__get_block_template!();

0 commit comments

Comments
 (0)