Skip to content

Commit fce63a5

Browse files
Implement scantxoutset method and test
The method is marked as experimental and was not implemented. Implement the method and all the changes up to v30. Co-authored-by: Jamil Lambert <jamil.lambert@proton.me>
1 parent 723faf4 commit fce63a5

57 files changed

Lines changed: 765 additions & 157 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

client/src/client_sync/v17/blockchain.rs

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,33 @@ macro_rules! impl_client_v17__save_mempool {
318318
};
319319
}
320320

321-
/// Implements Bitcoin Core JSON-RPC API method `verifychain`.
321+
/// Implements Bitcoin Core JSON-RPC API method `scantxoutset`
322+
#[macro_export]
323+
macro_rules! impl_client_v17__scan_tx_out_set {
324+
() => {
325+
impl Client {
326+
/// Aborts an ongoing `scantxoutset` scan.
327+
pub fn scan_tx_out_set_abort(&self) -> Result<ScanTxOutSetAbort> {
328+
self.call("scantxoutset", &[into_json("abort")?])
329+
}
330+
331+
/// Starts a scan of the UTXO set for specified descriptors.
332+
pub fn scan_tx_out_set_start(
333+
&self,
334+
scan_objects: &[&str],
335+
) -> Result<ScanTxOutSetStart> {
336+
self.call("scantxoutset", &[into_json("start")?, into_json(scan_objects)?])
337+
}
338+
339+
/// Checks the status of an ongoing `scantxoutset` scan.
340+
pub fn scan_tx_out_set_status(&self) -> Result<Option<ScanTxOutSetStatus>> {
341+
self.call("scantxoutset", &[into_json("status")?])
342+
}
343+
}
344+
};
345+
}
346+
347+
/// Implements Bitcoin Core JSON-RPC API method `verifychain`
322348
#[macro_export]
323349
macro_rules! impl_client_v17__verify_chain {
324350
() => {

client/src/client_sync/v17/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ crate::impl_client_v17__get_tx_out_set_info!();
5050
crate::impl_client_v17__precious_block!();
5151
crate::impl_client_v17__prune_blockchain!();
5252
crate::impl_client_v17__save_mempool!();
53+
crate::impl_client_v17__scan_tx_out_set!();
5354
crate::impl_client_v17__verify_chain!();
5455
crate::impl_client_v17__verify_tx_out_proof!();
5556

client/src/client_sync/v18/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ crate::impl_client_v17__get_tx_out_set_info!();
5454
crate::impl_client_v17__precious_block!();
5555
crate::impl_client_v17__prune_blockchain!();
5656
crate::impl_client_v17__save_mempool!();
57+
crate::impl_client_v17__scan_tx_out_set!();
5758
crate::impl_client_v17__verify_chain!();
5859
crate::impl_client_v17__verify_tx_out_proof!();
5960

client/src/client_sync/v19/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ crate::impl_client_v17__get_tx_out_set_info!();
5050
crate::impl_client_v17__precious_block!();
5151
crate::impl_client_v17__prune_blockchain!();
5252
crate::impl_client_v17__save_mempool!();
53+
crate::impl_client_v17__scan_tx_out_set!();
5354
crate::impl_client_v17__verify_chain!();
5455
crate::impl_client_v17__verify_tx_out_proof!();
5556

client/src/client_sync/v20/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ crate::impl_client_v17__get_tx_out_set_info!();
4949
crate::impl_client_v17__precious_block!();
5050
crate::impl_client_v17__prune_blockchain!();
5151
crate::impl_client_v17__save_mempool!();
52+
crate::impl_client_v17__scan_tx_out_set!();
5253
crate::impl_client_v17__verify_chain!();
5354
crate::impl_client_v17__verify_tx_out_proof!();
5455

client/src/client_sync/v21/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ crate::impl_client_v17__get_tx_out_set_info!();
5353
crate::impl_client_v17__precious_block!();
5454
crate::impl_client_v17__prune_blockchain!();
5555
crate::impl_client_v17__save_mempool!();
56+
crate::impl_client_v17__scan_tx_out_set!();
5657
crate::impl_client_v17__verify_chain!();
5758
crate::impl_client_v17__verify_tx_out_proof!();
5859

client/src/client_sync/v22/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ crate::impl_client_v17__get_tx_out_set_info!();
5252
crate::impl_client_v17__precious_block!();
5353
crate::impl_client_v17__prune_blockchain!();
5454
crate::impl_client_v17__save_mempool!();
55+
crate::impl_client_v17__scan_tx_out_set!();
5556
crate::impl_client_v17__verify_chain!();
5657
crate::impl_client_v17__verify_tx_out_proof!();
5758

client/src/client_sync/v23/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ crate::impl_client_v17__get_tx_out_set_info!();
5454
crate::impl_client_v17__precious_block!();
5555
crate::impl_client_v17__prune_blockchain!();
5656
crate::impl_client_v23__save_mempool!();
57+
crate::impl_client_v17__scan_tx_out_set!();
5758
crate::impl_client_v17__verify_chain!();
5859
crate::impl_client_v17__verify_tx_out_proof!();
5960

client/src/client_sync/v24/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ crate::impl_client_v24__get_tx_spending_prevout!();
5555
crate::impl_client_v17__precious_block!();
5656
crate::impl_client_v17__prune_blockchain!();
5757
crate::impl_client_v23__save_mempool!();
58+
crate::impl_client_v17__scan_tx_out_set!();
5859
crate::impl_client_v17__verify_chain!();
5960
crate::impl_client_v17__verify_tx_out_proof!();
6061

client/src/client_sync/v25/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ crate::impl_client_v17__precious_block!();
5656
crate::impl_client_v17__prune_blockchain!();
5757
crate::impl_client_v23__save_mempool!();
5858
crate::impl_client_v25__scan_blocks!();
59+
crate::impl_client_v17__scan_tx_out_set!();
5960
crate::impl_client_v17__verify_chain!();
6061
crate::impl_client_v17__verify_tx_out_proof!();
6162

0 commit comments

Comments
 (0)