diff --git a/client/src/client_sync/v17/blockchain.rs b/client/src/client_sync/v17/blockchain.rs index 45393c43..6b0103fc 100644 --- a/client/src/client_sync/v17/blockchain.rs +++ b/client/src/client_sync/v17/blockchain.rs @@ -289,6 +289,19 @@ macro_rules! impl_client_v17__preciousblock { }; } +/// Implements Bitcoin Core JSON-RPC API method `pruneblockchain` +#[macro_export] +macro_rules! impl_client_v17__pruneblockchain { + () => { + impl Client { + /// Instructs the node to prune the blockchain up to a specified height or timestamp. + pub fn prune_blockchain(&self, target: u64) -> Result { + self.call("pruneblockchain", &[target.into()]) + } + } + }; +} + /// Implements Bitcoin Core JSON-RPC API method `verifytxoutproof` #[macro_export] macro_rules! impl_client_v17__verifytxoutproof { diff --git a/client/src/client_sync/v17/mod.rs b/client/src/client_sync/v17/mod.rs index e4f98fd8..82d533c4 100644 --- a/client/src/client_sync/v17/mod.rs +++ b/client/src/client_sync/v17/mod.rs @@ -48,6 +48,7 @@ crate::impl_client_v17__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v17__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/client/src/client_sync/v18/mod.rs b/client/src/client_sync/v18/mod.rs index 79c731bf..b38bb052 100644 --- a/client/src/client_sync/v18/mod.rs +++ b/client/src/client_sync/v18/mod.rs @@ -41,6 +41,7 @@ crate::impl_client_v17__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v17__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/client/src/client_sync/v19/mod.rs b/client/src/client_sync/v19/mod.rs index 5c2ed9d9..ebedf459 100644 --- a/client/src/client_sync/v19/mod.rs +++ b/client/src/client_sync/v19/mod.rs @@ -43,6 +43,7 @@ crate::impl_client_v17__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v17__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/client/src/client_sync/v20.rs b/client/src/client_sync/v20.rs index 488ea744..005ef177 100644 --- a/client/src/client_sync/v20.rs +++ b/client/src/client_sync/v20.rs @@ -40,6 +40,7 @@ crate::impl_client_v17__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v17__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/client/src/client_sync/v21/mod.rs b/client/src/client_sync/v21/mod.rs index 6c1bd42a..60c03882 100644 --- a/client/src/client_sync/v21/mod.rs +++ b/client/src/client_sync/v21/mod.rs @@ -42,6 +42,7 @@ crate::impl_client_v17__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v17__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/client/src/client_sync/v22/mod.rs b/client/src/client_sync/v22/mod.rs index 3ad79a4b..80300162 100644 --- a/client/src/client_sync/v22/mod.rs +++ b/client/src/client_sync/v22/mod.rs @@ -43,6 +43,7 @@ crate::impl_client_v22__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v17__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/client/src/client_sync/v23/mod.rs b/client/src/client_sync/v23/mod.rs index f500d8c0..b767fbbc 100644 --- a/client/src/client_sync/v23/mod.rs +++ b/client/src/client_sync/v23/mod.rs @@ -43,6 +43,7 @@ crate::impl_client_v22__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v17__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/client/src/client_sync/v24.rs b/client/src/client_sync/v24.rs index 026583a0..c7228e41 100644 --- a/client/src/client_sync/v24.rs +++ b/client/src/client_sync/v24.rs @@ -40,6 +40,7 @@ crate::impl_client_v22__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v17__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/client/src/client_sync/v25.rs b/client/src/client_sync/v25.rs index f9e3cd6d..1d077dc9 100644 --- a/client/src/client_sync/v25.rs +++ b/client/src/client_sync/v25.rs @@ -40,6 +40,7 @@ crate::impl_client_v22__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v17__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/client/src/client_sync/v26/mod.rs b/client/src/client_sync/v26/mod.rs index b0c5e2c0..e27b76f9 100644 --- a/client/src/client_sync/v26/mod.rs +++ b/client/src/client_sync/v26/mod.rs @@ -43,6 +43,7 @@ crate::impl_client_v22__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v26__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/client/src/client_sync/v27.rs b/client/src/client_sync/v27.rs index d9901e72..45559dff 100644 --- a/client/src/client_sync/v27.rs +++ b/client/src/client_sync/v27.rs @@ -40,6 +40,7 @@ crate::impl_client_v22__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v26__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/client/src/client_sync/v28/mod.rs b/client/src/client_sync/v28/mod.rs index ce8ce37f..d922eb4b 100644 --- a/client/src/client_sync/v28/mod.rs +++ b/client/src/client_sync/v28/mod.rs @@ -42,6 +42,7 @@ crate::impl_client_v22__gettxout!(); crate::impl_client_v17__gettxoutproof!(); crate::impl_client_v26__gettxoutsetinfo!(); crate::impl_client_v17__preciousblock!(); +crate::impl_client_v17__pruneblockchain!(); crate::impl_client_v17__verifytxoutproof!(); // == Control == diff --git a/integration_test/tests/blockchain.rs b/integration_test/tests/blockchain.rs index 28c90bbf..b4d9c04c 100644 --- a/integration_test/tests/blockchain.rs +++ b/integration_test/tests/blockchain.rs @@ -6,8 +6,8 @@ use integration_test::{Node, NodeExt as _, Wallet}; use node::client::client_sync; -use node::vtype::*; // All the version specific types. use node::mtype; +use node::vtype::*; // All the version specific types. #[test] fn blockchain__get_best_block_hash__modelled() { @@ -27,7 +27,8 @@ fn blockchain__get_block__modelled() { let model: Result = json.into_model(); model.expect("GetBlock into model"); - let json: GetBlockVerboseOne = node.client.get_block_verbose_one(block_hash).expect("getblock verbose=1"); + let json: GetBlockVerboseOne = + node.client.get_block_verbose_one(block_hash).expect("getblock verbose=1"); let model: Result = json.into_model(); model.expect("GetBlockVerbose into model"); @@ -86,7 +87,8 @@ fn blockchain__get_block_header__modelled() { model.unwrap(); // verbose = true - let json:GetBlockHeaderVerbose = node.client.get_block_header_verbose(&block_hash).expect("getblockheader"); + let json: GetBlockHeaderVerbose = + node.client.get_block_header_verbose(&block_hash).expect("getblockheader"); let model: Result = json.into_model(); model.unwrap(); } @@ -290,3 +292,25 @@ fn verify_tx_out_proof(node: &Node) -> Result<(), client_sync::Error> { Ok(()) } + +#[test] +fn blockchain__prune_blockchain() { + const NBLOCKS: usize = 1; + + let node = Node::with_wallet(Wallet::Default, &["-prune=550"]); + let address = node.client.new_address().expect("Failed to get new address"); + + let gen_result = node + .client + .generate_to_address(NBLOCKS, &address) + .expect("generate_to_address RPC call failed"); + assert_eq!( + gen_result.0.len(), + NBLOCKS, + "generate_to_address did not return the expected number of block hashes" + ); + + let target_height: u64 = 500; + + let _: Result = node.client.prune_blockchain(target_height); +} diff --git a/integration_test/tests/control.rs b/integration_test/tests/control.rs index d324ef09..559e6e98 100644 --- a/integration_test/tests/control.rs +++ b/integration_test/tests/control.rs @@ -5,7 +5,7 @@ #![allow(non_snake_case)] // Test names intentionally use double underscore. use integration_test::{Node, NodeExt as _, Wallet}; -use node::vtype::*; // All the version specific types. +use node::vtype::*; // All the version specific types. #[test] fn control__get_memory_info() { diff --git a/integration_test/tests/generating.rs b/integration_test/tests/generating.rs index 5e8d7ce6..8bc9e761 100644 --- a/integration_test/tests/generating.rs +++ b/integration_test/tests/generating.rs @@ -5,8 +5,8 @@ #![allow(non_snake_case)] // Test names intentionally use double underscore. use integration_test::{Node, NodeExt as _, Wallet}; -use node::vtype::*; // All the version specific types. use node::mtype; +use node::vtype::*; // All the version specific types. #[test] // The `generate` method was deprecated in Core v18 and was removed in v19. @@ -28,9 +28,10 @@ fn generating__generate_to_address__modelled() { let node = Node::with_wallet(Wallet::Default, &[]); let address = node.client.new_address().expect("failed to get new address"); - let json: GenerateToAddress = node.client.generate_to_address(NBLOCKS, &address).expect("generatetoaddress"); + let json: GenerateToAddress = + node.client.generate_to_address(NBLOCKS, &address).expect("generatetoaddress"); - let model: Result = json.into_model(); + let model: Result = json.into_model(); let _ = model.unwrap(); } diff --git a/integration_test/tests/mining.rs b/integration_test/tests/mining.rs index a5b83abb..232ceab7 100644 --- a/integration_test/tests/mining.rs +++ b/integration_test/tests/mining.rs @@ -7,8 +7,8 @@ use bitcoin::SignedAmount; use integration_test::{Node, NodeExt as _, Wallet}; use node::client::client_sync::{TemplateRequest, TemplateRules}; -use node::vtype::*; // All the version specific types. use node::mtype; +use node::vtype::*; // All the version specific types. #[test] fn mining__get_block_template__modelled() { @@ -72,7 +72,7 @@ fn mining__prioritise_transaction() { } #[test] -#[cfg(feature = "TODO")] // This test is flaky - no clue why. +#[cfg(feature = "TODO")] // This test is flaky - no clue why. fn mining__submit_block() { // Requires connected nodes otherwise the RPC call errors. let (node1, node2, node3) = integration_test::three_node_network(); @@ -96,8 +96,8 @@ fn mining__submit_block() { fn submit_empty_block(node: &Node, bt: &mtype::GetBlockTemplate) { use bitcoin::hashes::Hash as _; use bitcoin::{ - absolute, block, transaction, Amount, Block, OutPoint, ScriptBuf, Sequence, - Transaction, TxIn, TxOut, Witness, ScriptHash, TxMerkleNode, + absolute, block, transaction, Amount, Block, OutPoint, ScriptBuf, ScriptHash, Sequence, + Transaction, TxIn, TxMerkleNode, TxOut, Witness, }; let txdata = vec![Transaction { @@ -124,7 +124,10 @@ fn submit_empty_block(node: &Node, bt: &mtype::GetBlockTemplate) { version: block::Version::default(), prev_blockhash: bt.previous_block_hash, merkle_root: TxMerkleNode::all_zeros(), - time: Ord::max(bt.min_time, std::time::UNIX_EPOCH.elapsed().expect("elapsed").as_secs() as u32) as u32, + time: Ord::max( + bt.min_time, + std::time::UNIX_EPOCH.elapsed().expect("elapsed").as_secs() as u32, + ) as u32, bits: bt.bits, nonce: 0, }, @@ -148,8 +151,8 @@ fn submit_empty_block(node: &Node, bt: &mtype::GetBlockTemplate) { fn mining__submit_block_with_dummy_coinbase(node: &Node, bt: &mtype::GetBlockTemplate) { use bitcoin::hashes::Hash as _; use bitcoin::{ - absolute, block, transaction, Amount, Block, OutPoint, ScriptBuf, Sequence, - Transaction, TxIn, TxOut, Witness, TxMerkleNode, + absolute, block, transaction, Amount, Block, OutPoint, ScriptBuf, Sequence, Transaction, + TxIn, TxMerkleNode, TxOut, Witness, }; let address = node.client.new_address().expect("failed to get new address"); diff --git a/integration_test/tests/network.rs b/integration_test/tests/network.rs index c0ba298b..64c8539d 100644 --- a/integration_test/tests/network.rs +++ b/integration_test/tests/network.rs @@ -5,8 +5,8 @@ #![allow(non_snake_case)] // Test names intentionally use double underscore. use integration_test::{Node, NodeExt as _, Wallet}; -use node::vtype::*; // All the version specific types. use node::mtype; +use node::vtype::*; // All the version specific types. #[test] fn network__get_added_node_info() { diff --git a/integration_test/tests/raw_transactions.rs b/integration_test/tests/raw_transactions.rs index 52a89876..c0937576 100644 --- a/integration_test/tests/raw_transactions.rs +++ b/integration_test/tests/raw_transactions.rs @@ -6,9 +6,9 @@ use std::collections::BTreeMap; -use bitcoin::{Amount, Sequence}; #[cfg(feature = "TODO")] -use bitcoin::{absolute, transaction, consensus, TxOut, Transaction}; +use bitcoin::{absolute, consensus, transaction, Transaction, TxOut}; +use bitcoin::{Amount, Sequence}; use integration_test::{Node, NodeExt as _, Wallet}; use node::client::client_sync::Input; diff --git a/integration_test/tests/wallet.rs b/integration_test/tests/wallet.rs index 59182219..024ad26d 100644 --- a/integration_test/tests/wallet.rs +++ b/integration_test/tests/wallet.rs @@ -8,9 +8,8 @@ use bitcoin::address::{Address, NetworkChecked}; use bitcoin::Amount; use integration_test::{Node, NodeExt as _, Wallet}; -use node::AddressType; -use node::vtype::*; // All the version specific types. -use node::mtype; +use node::vtype::*; // All the version specific types. +use node::{mtype, AddressType}; #[test] #[cfg(feature = "TODO")] @@ -59,16 +58,15 @@ fn wallet__create_wallet__modelled() { fn wallet__dump_priv_key__modelled() { // As of Core v23 the default wallet is an native descriptor wallet which does not // support dumping private keys. Legacy wallets are supported upto v25 it seems. - #[cfg(any( - feature = "v23", - feature = "v24", - feature = "v25", - ))] + #[cfg(any(feature = "v23", feature = "v24", feature = "v25",))] { let node = Node::with_wallet(Wallet::None, &[]); node.client.create_legacy_wallet("legacy_wallet").expect("legacy create_wallet"); - let address = node.client.get_new_address(Some("label"), Some(AddressType::Legacy)).expect("legacy get_new_address"); + let address = node + .client + .get_new_address(Some("label"), Some(AddressType::Legacy)) + .expect("legacy get_new_address"); let address = address.into_model().unwrap().0.assume_checked(); let json: DumpPrivKey = node.client.dump_priv_key(&address).expect("dumpprivkey"); @@ -98,11 +96,7 @@ fn wallet__dump_priv_key__modelled() { fn wallet__dump_wallet__modelled() { // As of Core v23 the default wallet is an native descriptor wallet which does not // support dumping private keys. Legacy wallets are supported upto v25 it seems. - #[cfg(any( - feature = "v23", - feature = "v24", - feature = "v25", - ))] + #[cfg(any(feature = "v23", feature = "v24", feature = "v25",))] { let node = Node::with_wallet(Wallet::None, &[]); @@ -136,7 +130,8 @@ fn wallet__get_addresses_by_label__modelled() { let label = "some-label"; let addr = node.client.new_address_with_label(label).expect("failed to get new address"); - let json: GetAddressesByLabel = node.client.get_addresses_by_label(label).expect("getaddressesbylabel"); + let json: GetAddressesByLabel = + node.client.get_addresses_by_label(label).expect("getaddressesbylabel"); let model: Result = json.into_model(); let map = model.unwrap(); @@ -146,8 +141,8 @@ fn wallet__get_addresses_by_label__modelled() { } #[test] -#[cfg(feature = "TODO")] // FIXME: The types are broken. -// TODO: Consider testing a few different address types. +#[cfg(feature = "TODO")] // FIXME: The types are broken. + // TODO: Consider testing a few different address types. fn wallet__get_address_info__modelled() { let node = Node::with_wallet(Wallet::Default, &[]); let address = node.client.new_address().expect("failed to create new address"); @@ -171,7 +166,6 @@ fn wallet__get_balance__modelled() { json.into_model().unwrap(); } - #[test] #[cfg(all(not(feature = "v17"), not(feature = "v18")))] fn wallet__get_balances() { @@ -199,7 +193,8 @@ fn wallet__get_new_address__modelled() { #[test] fn wallet__get_raw_change_address__modelled() { let node = Node::with_wallet(Wallet::Default, &[]); - let json: GetRawChangeAddress = node.client.get_raw_change_address().expect("getrawchangeaddress"); + let json: GetRawChangeAddress = + node.client.get_raw_change_address().expect("getrawchangeaddress"); let model: Result = json.into_model(); model.unwrap(); } @@ -216,7 +211,8 @@ fn wallet__get_received_by_address__modelled() { node.client.send_to_address(&address, amount).expect("sendtoaddress").txid().unwrap(); node.mine_a_block(); - let json: GetReceivedByAddress = node.client.get_received_by_address(&address).expect("getreceivedbyaddress"); + let json: GetReceivedByAddress = + node.client.get_received_by_address(&address).expect("getreceivedbyaddress"); let model: Result = json.into_model(); let model = model.unwrap(); @@ -242,14 +238,10 @@ fn wallet__get_transaction__modelled() { } #[test] -fn wallet__load_wallet__modelled() { - create_load_unload_wallet(); -} +fn wallet__load_wallet__modelled() { create_load_unload_wallet(); } #[test] -fn wallet__unload_wallet() { - create_load_unload_wallet(); -} +fn wallet__unload_wallet() { create_load_unload_wallet(); } #[test] fn wallet__send_to_address__modelled() { @@ -274,7 +266,12 @@ fn create_load_unload_wallet() { let _ = node.client.unload_wallet(&wallet).expect("unloadwallet"); // From version 21 Core returns warnings for `unloadwallet`. - #[cfg(all(not(feature = "v17"), not(feature = "v18"), not(feature = "v19"), not(feature = "v20")))] + #[cfg(all( + not(feature = "v17"), + not(feature = "v18"), + not(feature = "v19"), + not(feature = "v20") + ))] { let json: UnloadWallet = node.client.unload_wallet(&wallet).expect("unloadwallet"); let _: mtype::UnloadWallet = json.into_model(); diff --git a/types/src/v17/blockchain/mod.rs b/types/src/v17/blockchain/mod.rs index 81056d10..69b55377 100644 --- a/types/src/v17/blockchain/mod.rs +++ b/types/src/v17/blockchain/mod.rs @@ -666,3 +666,16 @@ pub struct GetTxOutSetInfo { /// Inner field is the txid(s) which the proof commits to, or empty array if the proof can not be validated. #[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] pub struct VerifyTxOutProof(pub Vec); + +/// Result of JSON-RPC method `pruneblockchain`. +/// +/// > pruneblockchain height +/// > +/// > Arguments: +/// > 1. "height" (numeric, required) The block height to prune up to. May be set to a discrete height, or a unix timestamp +/// > to prune blocks whose block time is at least 2 hours older than the provided timestamp. +#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] +pub struct PruneBlockchain( + /// The height of the last block pruned. + pub i64, +); diff --git a/types/src/v17/mod.rs b/types/src/v17/mod.rs index 02c7ceef..511b2dd9 100644 --- a/types/src/v17/mod.rs +++ b/types/src/v17/mod.rs @@ -36,7 +36,7 @@ //! | gettxoutproof | done | //! | gettxoutsetinfo | done | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scantxoutset | omitted | //! | verifychain | omitted | @@ -234,8 +234,8 @@ pub use self::{ GetMempoolDescendantsVerbose, GetMempoolEntry, GetMempoolInfo, GetMempoolInfoError, GetRawMempool, GetRawMempoolVerbose, GetTxOut, GetTxOutError, GetTxOutSetInfo, GetTxOutSetInfoError, MapMempoolEntryError, MempoolEntry, MempoolEntryError, - MempoolEntryFees, MempoolEntryFeesError, ScriptPubkey, Softfork, SoftforkReject, - VerifyTxOutProof, + MempoolEntryFees, MempoolEntryFeesError, PruneBlockchain, ScriptPubkey, Softfork, + SoftforkReject, VerifyTxOutProof, }, control::{GetMemoryInfoStats, Locked, Logging}, generating::{Generate, GenerateToAddress}, diff --git a/types/src/v18/mod.rs b/types/src/v18/mod.rs index b3f2b31c..c398a877 100644 --- a/types/src/v18/mod.rs +++ b/types/src/v18/mod.rs @@ -41,7 +41,7 @@ //! | gettxoutproof | done | //! | gettxoutsetinfo | done | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scantxoutset | omitted | //! | verifychain | omitted | @@ -256,9 +256,9 @@ pub use crate::v17::{ ListSinceBlockTransactionError, ListTransactions, ListTransactionsItem, ListTransactionsItemError, ListUnspent, ListUnspentItem, ListUnspentItemError, ListWallets, LoadWallet, Locked, Logging, MapMempoolEntryError, MempoolEntry, MempoolEntryError, - MempoolEntryFees, MempoolEntryFeesError, PeerInfo, RescanBlockchain, ScriptPubkey, SendMany, - SendRawTransaction, SendToAddress, SignErrorData, SignErrorDataError, SignMessage, - SignRawTransactionWithWallet, SignRawTransactionWithWalletError, Softfork, SoftforkReject, - TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, + MempoolEntryFees, MempoolEntryFeesError, PeerInfo, PruneBlockchain, RescanBlockchain, + ScriptPubkey, SendMany, SendRawTransaction, SendToAddress, SignErrorData, SignErrorDataError, + SignMessage, SignRawTransactionWithWallet, SignRawTransactionWithWalletError, Softfork, + SoftforkReject, TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, WalletCreateFundedPsbtError, WalletProcessPsbt, }; diff --git a/types/src/v19/mod.rs b/types/src/v19/mod.rs index f462a836..ec417df3 100644 --- a/types/src/v19/mod.rs +++ b/types/src/v19/mod.rs @@ -37,7 +37,7 @@ //! | gettxoutproof | done | //! | gettxoutsetinfo | done | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scantxoutset | omitted | //! | verifychain | omitted | @@ -260,8 +260,8 @@ pub use crate::v17::{ ListSinceBlockError, ListSinceBlockTransaction, ListSinceBlockTransactionError, ListTransactions, ListTransactionsItem, ListTransactionsItemError, ListUnspent, ListUnspentItem, ListUnspentItemError, ListWallets, LoadWallet, Locked, Logging, PeerInfo, - RescanBlockchain, ScriptPubkey, SendMany, SendRawTransaction, SendToAddress, SignErrorData, - SignErrorDataError, SignMessage, SignRawTransactionWithWallet, + PruneBlockchain, RescanBlockchain, ScriptPubkey, SendMany, SendRawTransaction, SendToAddress, + SignErrorData, SignErrorDataError, SignMessage, SignRawTransactionWithWallet, SignRawTransactionWithWalletError, SoftforkReject, TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, WalletCreateFundedPsbtError, WalletProcessPsbt, }; diff --git a/types/src/v20/mod.rs b/types/src/v20/mod.rs index 293399b6..dffb7602 100644 --- a/types/src/v20/mod.rs +++ b/types/src/v20/mod.rs @@ -37,7 +37,7 @@ //! | gettxoutproof | done | //! | gettxoutsetinfo | done | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scantxoutset | omitted | //! | verifychain | omitted | @@ -250,8 +250,8 @@ pub use crate::{ ListLabels, ListLockUnspent, ListLockUnspentItem, ListReceivedByAddress, ListReceivedByAddressItem, ListSinceBlock, ListSinceBlockTransaction, ListTransactions, ListTransactionsItem, ListUnspent, ListUnspentItem, ListWallets, LoadWallet, Locked, - PeerInfo, RescanBlockchain, ScriptPubkey, SendMany, SendRawTransaction, SendToAddress, - SignErrorData, SignMessage, SignRawTransactionWithWallet, SoftforkReject, + PeerInfo, PruneBlockchain, RescanBlockchain, ScriptPubkey, SendMany, SendRawTransaction, + SendToAddress, SignErrorData, SignMessage, SignRawTransactionWithWallet, SoftforkReject, TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, WalletProcessPsbt, }, diff --git a/types/src/v21/mod.rs b/types/src/v21/mod.rs index 8f6adb01..8015414f 100644 --- a/types/src/v21/mod.rs +++ b/types/src/v21/mod.rs @@ -37,7 +37,7 @@ //! | gettxoutproof | done | //! | gettxoutsetinfo | done | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scantxoutset | omitted | //! | verifychain | omitted | @@ -256,8 +256,8 @@ pub use crate::{ ListLabels, ListLockUnspent, ListLockUnspentItem, ListReceivedByAddress, ListReceivedByAddressItem, ListSinceBlock, ListSinceBlockTransaction, ListTransactions, ListTransactionsItem, ListUnspent, ListUnspentItem, ListWallets, LoadWallet, Locked, - PeerInfo, RescanBlockchain, ScriptPubkey, SendMany, SendRawTransaction, SendToAddress, - SignErrorData, SignMessage, SignRawTransactionWithWallet, SoftforkReject, + PeerInfo, PruneBlockchain, RescanBlockchain, ScriptPubkey, SendMany, SendRawTransaction, + SendToAddress, SignErrorData, SignMessage, SignRawTransactionWithWallet, SoftforkReject, TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, WalletProcessPsbt, }, diff --git a/types/src/v22/mod.rs b/types/src/v22/mod.rs index 28f572af..4e8605ca 100644 --- a/types/src/v22/mod.rs +++ b/types/src/v22/mod.rs @@ -37,7 +37,7 @@ //! | gettxoutproof | done | //! | gettxoutsetinfo | done | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scantxoutset | omitted | //! | verifychain | omitted | @@ -270,8 +270,8 @@ pub use crate::{ ListAddressGroupings, ListAddressGroupingsItem, ListBanned, ListLabels, ListLockUnspent, ListLockUnspentItem, ListReceivedByAddress, ListReceivedByAddressItem, ListSinceBlock, ListSinceBlockTransaction, ListTransactions, ListTransactionsItem, ListUnspent, - ListUnspentItem, ListWallets, LoadWallet, Locked, PeerInfo, RescanBlockchain, SendMany, - SendRawTransaction, SendToAddress, SignErrorData, SignMessage, + ListUnspentItem, ListWallets, LoadWallet, Locked, PeerInfo, PruneBlockchain, + RescanBlockchain, SendMany, SendRawTransaction, SendToAddress, SignErrorData, SignMessage, SignRawTransactionWithWallet, SoftforkReject, TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, WalletProcessPsbt, }, diff --git a/types/src/v23/mod.rs b/types/src/v23/mod.rs index b0bc177c..99694d95 100644 --- a/types/src/v23/mod.rs +++ b/types/src/v23/mod.rs @@ -39,7 +39,7 @@ //! | gettxoutproof | done | //! | gettxoutsetinfo | done | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scantxoutset | omitted | //! | verifychain | omitted | @@ -254,8 +254,8 @@ pub use crate::{ ListAddressGroupings, ListAddressGroupingsItem, ListBanned, ListLabels, ListLockUnspent, ListLockUnspentItem, ListReceivedByAddress, ListReceivedByAddressItem, ListSinceBlock, ListSinceBlockTransaction, ListTransactions, ListTransactionsItem, ListUnspent, - ListUnspentItem, ListWallets, LoadWallet, Locked, PeerInfo, RescanBlockchain, SendMany, - SendRawTransaction, SendToAddress, SignErrorData, SignMessage, + ListUnspentItem, ListWallets, LoadWallet, Locked, PeerInfo, PruneBlockchain, + RescanBlockchain, SendMany, SendRawTransaction, SendToAddress, SignErrorData, SignMessage, SignRawTransactionWithWallet, SoftforkReject, TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, WalletProcessPsbt, }, diff --git a/types/src/v24/mod.rs b/types/src/v24/mod.rs index 63488831..2ca78ae9 100644 --- a/types/src/v24/mod.rs +++ b/types/src/v24/mod.rs @@ -40,7 +40,7 @@ //! | gettxoutsetinfo | done | //! | gettxspendingprevout | todo | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scantxoutset | omitted | //! | verifychain | omitted | @@ -258,8 +258,8 @@ pub use crate::{ ListAddressGroupings, ListAddressGroupingsItem, ListBanned, ListLabels, ListLockUnspent, ListLockUnspentItem, ListReceivedByAddress, ListReceivedByAddressItem, ListSinceBlock, ListSinceBlockTransaction, ListTransactions, ListTransactionsItem, ListUnspent, - ListUnspentItem, ListWallets, LoadWallet, Locked, PeerInfo, RescanBlockchain, SendMany, - SendRawTransaction, SendToAddress, SignErrorData, SignMessage, + ListUnspentItem, ListWallets, LoadWallet, Locked, PeerInfo, PruneBlockchain, + RescanBlockchain, SendMany, SendRawTransaction, SendToAddress, SignErrorData, SignMessage, SignRawTransactionWithWallet, SoftforkReject, TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, WalletProcessPsbt, }, diff --git a/types/src/v25/mod.rs b/types/src/v25/mod.rs index 9d029430..9646cf8d 100644 --- a/types/src/v25/mod.rs +++ b/types/src/v25/mod.rs @@ -40,7 +40,7 @@ //! | gettxoutsetinfo | done | //! | gettxspendingprevout | todo | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scanblocks | todo | //! | scantxoutset | omitted | @@ -263,8 +263,8 @@ pub use crate::{ ListAddressGroupings, ListAddressGroupingsItem, ListBanned, ListLabels, ListLockUnspent, ListLockUnspentItem, ListReceivedByAddress, ListReceivedByAddressItem, ListSinceBlock, ListSinceBlockTransaction, ListTransactions, ListTransactionsItem, ListUnspent, - ListUnspentItem, ListWallets, Locked, PeerInfo, RescanBlockchain, SendMany, - SendRawTransaction, SendToAddress, SignErrorData, SignMessage, + ListUnspentItem, ListWallets, Locked, PeerInfo, PruneBlockchain, RescanBlockchain, + SendMany, SendRawTransaction, SendToAddress, SignErrorData, SignMessage, SignRawTransactionWithWallet, SoftforkReject, TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, WalletProcessPsbt, }, diff --git a/types/src/v26/mod.rs b/types/src/v26/mod.rs index ad5b9f51..72502b20 100644 --- a/types/src/v26/mod.rs +++ b/types/src/v26/mod.rs @@ -44,7 +44,7 @@ //! | importmempool | todo | //! | loadtxoutset | todo | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scanblocks | todo | //! | scantxoutset | omitted | @@ -277,9 +277,10 @@ pub use crate::{ ListBanned, ListLabels, ListLockUnspent, ListLockUnspentItem, ListReceivedByAddress, ListReceivedByAddressItem, ListSinceBlock, ListSinceBlockTransaction, ListTransactions, ListTransactionsItem, ListUnspent, ListUnspentItem, ListWallets, Locked, PeerInfo, - RescanBlockchain, SendMany, SendRawTransaction, SendToAddress, SignErrorData, SignMessage, - SignRawTransactionWithWallet, SoftforkReject, TransactionCategory, UploadTarget, - VerifyTxOutProof, WalletCreateFundedPsbt, WalletProcessPsbt, + PruneBlockchain, RescanBlockchain, SendMany, SendRawTransaction, SendToAddress, + SignErrorData, SignMessage, SignRawTransactionWithWallet, SoftforkReject, + TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, + WalletProcessPsbt, }, v18::{ActiveCommand, GetRpcInfo}, v19::{ diff --git a/types/src/v27/mod.rs b/types/src/v27/mod.rs index 0a5d56cd..099501dc 100644 --- a/types/src/v27/mod.rs +++ b/types/src/v27/mod.rs @@ -44,7 +44,7 @@ //! | importmempool | todo | //! | loadtxoutset | todo | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scanblocks | todo | //! | scantxoutset | omitted | @@ -267,9 +267,10 @@ pub use crate::{ ListBanned, ListLabels, ListLockUnspent, ListLockUnspentItem, ListReceivedByAddress, ListReceivedByAddressItem, ListSinceBlock, ListSinceBlockTransaction, ListTransactions, ListTransactionsItem, ListUnspent, ListUnspentItem, ListWallets, Locked, PeerInfo, - RescanBlockchain, SendMany, SendRawTransaction, SendToAddress, SignErrorData, SignMessage, - SignRawTransactionWithWallet, SoftforkReject, TransactionCategory, UploadTarget, - VerifyTxOutProof, WalletCreateFundedPsbt, WalletProcessPsbt, + PruneBlockchain, RescanBlockchain, SendMany, SendRawTransaction, SendToAddress, + SignErrorData, SignMessage, SignRawTransactionWithWallet, SoftforkReject, + TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, + WalletProcessPsbt, }, v18::{ActiveCommand, GetRpcInfo}, v19::{ diff --git a/types/src/v28/mod.rs b/types/src/v28/mod.rs index b49ff179..9adbbe1f 100644 --- a/types/src/v28/mod.rs +++ b/types/src/v28/mod.rs @@ -44,7 +44,7 @@ //! | importmempool | todo | //! | loadtxoutset | todo | //! | preciousblock | done | -//! | pruneblockchain | omitted | +//! | pruneblockchain | done | //! | savemempool | omitted | //! | scanblocks | todo | //! | scantxoutset | omitted | @@ -280,8 +280,8 @@ pub use crate::{ ListAddressGroupings, ListAddressGroupingsItem, ListBanned, ListLabels, ListLockUnspent, ListLockUnspentItem, ListReceivedByAddress, ListReceivedByAddressItem, ListSinceBlock, ListSinceBlockTransaction, ListTransactions, ListTransactionsItem, ListUnspent, - ListUnspentItem, ListWallets, Locked, PeerInfo, RescanBlockchain, SendMany, - SendRawTransaction, SendToAddress, SignErrorData, SignMessage, + ListUnspentItem, ListWallets, Locked, PeerInfo, PruneBlockchain, RescanBlockchain, + SendMany, SendRawTransaction, SendToAddress, SignErrorData, SignMessage, SignRawTransactionWithWallet, SoftforkReject, TransactionCategory, UploadTarget, VerifyTxOutProof, WalletCreateFundedPsbt, WalletProcessPsbt, }, diff --git a/verify/src/method/v17.rs b/verify/src/method/v17.rs index 303ae2f2..8b3d9502 100644 --- a/verify/src/method/v17.rs +++ b/verify/src/method/v17.rs @@ -30,7 +30,7 @@ pub const METHODS: &[Method] = &[ Method::new_string("gettxoutproof", "get_tx_out_proof"), Method::new_modelled("gettxoutsetinfo", "GetTxOutSetInfo", "get_tx_out_set_info"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"), Method::new_bool("verifychain", "verify_chain"), diff --git a/verify/src/method/v18.rs b/verify/src/method/v18.rs index 0aa49696..525be4f8 100644 --- a/verify/src/method/v18.rs +++ b/verify/src/method/v18.rs @@ -29,7 +29,7 @@ pub const METHODS: &[Method] = &[ Method::new_string("gettxoutproof", "get_tx_out_proof"), Method::new_modelled("gettxoutsetinfo", "GetTxOutSetInfo", "get_tx_out_set_info"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"), Method::new_bool("verifychain", "verify_chain"), diff --git a/verify/src/method/v19.rs b/verify/src/method/v19.rs index 6cb27897..d13681eb 100644 --- a/verify/src/method/v19.rs +++ b/verify/src/method/v19.rs @@ -30,7 +30,7 @@ pub const METHODS: &[Method] = &[ Method::new_string("gettxoutproof", "get_tx_out_proof"), Method::new_modelled("gettxoutsetinfo", "GetTxOutSetInfo", "get_tx_out_set_info"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"), Method::new_bool("verifychain", "verify_chain"), diff --git a/verify/src/method/v20.rs b/verify/src/method/v20.rs index 0783ead3..f4971b04 100644 --- a/verify/src/method/v20.rs +++ b/verify/src/method/v20.rs @@ -30,7 +30,7 @@ pub const METHODS: &[Method] = &[ Method::new_string("gettxoutproof", "get_tx_out_proof"), Method::new_modelled("gettxoutsetinfo", "GetTxOutSetInfo", "get_tx_out_set_info"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"), Method::new_bool("verifychain", "verify_chain"), diff --git a/verify/src/method/v21.rs b/verify/src/method/v21.rs index e0fd0601..ddba3fd6 100644 --- a/verify/src/method/v21.rs +++ b/verify/src/method/v21.rs @@ -30,7 +30,7 @@ pub const METHODS: &[Method] = &[ Method::new_string("gettxoutproof", "get_tx_out_proof"), Method::new_modelled("gettxoutsetinfo", "GetTxOutSetInfo", "get_tx_out_set_info"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"), Method::new_bool("verifychain", "verify_chain"), diff --git a/verify/src/method/v22.rs b/verify/src/method/v22.rs index 207599a4..1aefed3c 100644 --- a/verify/src/method/v22.rs +++ b/verify/src/method/v22.rs @@ -30,7 +30,7 @@ pub const METHODS: &[Method] = &[ Method::new_string("gettxoutproof", "get_tx_out_proof"), Method::new_modelled("gettxoutsetinfo", "GetTxOutSetInfo", "get_tx_out_set_info"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"), Method::new_bool("verifychain", "verify_chain"), diff --git a/verify/src/method/v23.rs b/verify/src/method/v23.rs index 0b2d06b4..819c196d 100644 --- a/verify/src/method/v23.rs +++ b/verify/src/method/v23.rs @@ -32,7 +32,7 @@ pub const METHODS: &[Method] = &[ Method::new_string("gettxoutproof", "get_tx_out_proof"), Method::new_modelled("gettxoutsetinfo", "GetTxOutSetInfo", "get_tx_out_set_info"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"), Method::new_bool("verifychain", "verify_chain"), diff --git a/verify/src/method/v24.rs b/verify/src/method/v24.rs index bb16af93..2f56259b 100644 --- a/verify/src/method/v24.rs +++ b/verify/src/method/v24.rs @@ -33,7 +33,7 @@ pub const METHODS: &[Method] = &[ Method::new_modelled("gettxoutsetinfo", "GetTxOutSetInfo", "get_tx_out_set_info"), Method::new_modelled("gettxspendingprevout", "GetTxSpendingPrevout", "get_tx_spending_prevout"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"), Method::new_bool("verifychain", "verify_chain"), diff --git a/verify/src/method/v25.rs b/verify/src/method/v25.rs index 2c5ea011..1f4e25f8 100644 --- a/verify/src/method/v25.rs +++ b/verify/src/method/v25.rs @@ -33,7 +33,7 @@ pub const METHODS: &[Method] = &[ Method::new_modelled("gettxoutsetinfo", "GetTxOutSetInfo", "get_tx_out_set_info"), Method::new_modelled("gettxspendingprevout", "GetTxSpendingPrevout", "get_tx_spending_prevout"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scanblocks", "ScanBlocks", "scan_blocks"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"), diff --git a/verify/src/method/v26.rs b/verify/src/method/v26.rs index db26e8c8..333a2b74 100644 --- a/verify/src/method/v26.rs +++ b/verify/src/method/v26.rs @@ -37,7 +37,7 @@ pub const METHODS: &[Method] = &[ Method::new_modelled("importmempool", "ImportMempool", "import_mempool"), Method::new_no_model("loadtxoutset", "LoadTxOutSet", "load_tx_out_set"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scanblocks", "ScanBlocks", "scan_blocks"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"), diff --git a/verify/src/method/v27.rs b/verify/src/method/v27.rs index 2dfb3cb3..12464cee 100644 --- a/verify/src/method/v27.rs +++ b/verify/src/method/v27.rs @@ -37,7 +37,7 @@ pub const METHODS: &[Method] = &[ Method::new_modelled("importmempool", "ImportMempool", "import_mempool"), Method::new_no_model("loadtxoutset", "LoadTxOutSet", "load_tx_out_set"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scanblocks", "ScanBlocks", "scan_blocks"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"), diff --git a/verify/src/method/v28.rs b/verify/src/method/v28.rs index e757f65a..44a6cdc2 100644 --- a/verify/src/method/v28.rs +++ b/verify/src/method/v28.rs @@ -37,7 +37,7 @@ pub const METHODS: &[Method] = &[ Method::new_modelled("importmempool", "ImportMempool", "import_mempool"), Method::new_no_model("loadtxoutset", "LoadTxOutSet", "load_tx_out_set"), Method::new_nothing("preciousblock", "precious_block"), - Method::new_numeric("pruneblockchain", "prune_blockchain"), + Method::new_no_model("pruneblockchain", "PruneBlockchain", "prune_blockchain"), Method::new_nothing("savemempool", "save_mempool"), Method::new_modelled("scanblocks", "ScanBlocks", "scan_blocks"), Method::new_modelled("scantxoutset", "ScanTxOutSet", "scan_tx_out_set"),