diff --git a/client/src/client_sync/v17/mod.rs b/client/src/client_sync/v17/mod.rs index 8b9b63b4..84617b49 100644 --- a/client/src/client_sync/v17/mod.rs +++ b/client/src/client_sync/v17/mod.rs @@ -148,6 +148,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); crate::impl_client_v17__unload_wallet!(); diff --git a/client/src/client_sync/v17/wallet.rs b/client/src/client_sync/v17/wallet.rs index 17c27750..f0cadac4 100644 --- a/client/src/client_sync/v17/wallet.rs +++ b/client/src/client_sync/v17/wallet.rs @@ -592,6 +592,22 @@ macro_rules! impl_client_v17__send_to_address { }; } +/// Implements Bitcoin Core JSON-RPC API method `sethdseed`. +#[macro_export] +macro_rules! impl_client_v17__set_hd_seed { + () => { + impl Client { + pub fn set_hd_seed(&self) -> Result<()> { + match self.call("sethdseed", &[]) { + Ok(serde_json::Value::Null) => Ok(()), + Ok(res) => Err(Error::Returned(res.to_string())), + Err(err) => Err(err.into()), + } + } + } + }; +} + /// Implements Bitcoin Core JSON-RPC API method `signmessage`. #[macro_export] macro_rules! impl_client_v17__sign_message { diff --git a/client/src/client_sync/v18/mod.rs b/client/src/client_sync/v18/mod.rs index 79c9ab90..67e87e86 100644 --- a/client/src/client_sync/v18/mod.rs +++ b/client/src/client_sync/v18/mod.rs @@ -165,6 +165,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); crate::impl_client_v17__unload_wallet!(); diff --git a/client/src/client_sync/v19/mod.rs b/client/src/client_sync/v19/mod.rs index fc729c37..d27d9d87 100644 --- a/client/src/client_sync/v19/mod.rs +++ b/client/src/client_sync/v19/mod.rs @@ -161,6 +161,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v19__set_wallet_flag!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); diff --git a/client/src/client_sync/v20/mod.rs b/client/src/client_sync/v20/mod.rs index 4d55269f..8720c4c8 100644 --- a/client/src/client_sync/v20/mod.rs +++ b/client/src/client_sync/v20/mod.rs @@ -158,6 +158,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v19__set_wallet_flag!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); diff --git a/client/src/client_sync/v21/mod.rs b/client/src/client_sync/v21/mod.rs index 41e16c23..fe3eaf5f 100644 --- a/client/src/client_sync/v21/mod.rs +++ b/client/src/client_sync/v21/mod.rs @@ -160,6 +160,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v19__set_wallet_flag!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); diff --git a/client/src/client_sync/v22/mod.rs b/client/src/client_sync/v22/mod.rs index e1a2fd58..792df8f7 100644 --- a/client/src/client_sync/v22/mod.rs +++ b/client/src/client_sync/v22/mod.rs @@ -160,6 +160,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v19__set_wallet_flag!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); diff --git a/client/src/client_sync/v23/mod.rs b/client/src/client_sync/v23/mod.rs index 55ced71b..909a3dfe 100644 --- a/client/src/client_sync/v23/mod.rs +++ b/client/src/client_sync/v23/mod.rs @@ -162,6 +162,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v19__set_wallet_flag!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); diff --git a/client/src/client_sync/v24/mod.rs b/client/src/client_sync/v24/mod.rs index 7d91087d..48281b46 100644 --- a/client/src/client_sync/v24/mod.rs +++ b/client/src/client_sync/v24/mod.rs @@ -159,6 +159,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v19__set_wallet_flag!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); diff --git a/client/src/client_sync/v25/mod.rs b/client/src/client_sync/v25/mod.rs index 69314af3..0357e9fa 100644 --- a/client/src/client_sync/v25/mod.rs +++ b/client/src/client_sync/v25/mod.rs @@ -159,6 +159,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v19__set_wallet_flag!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); diff --git a/client/src/client_sync/v26/mod.rs b/client/src/client_sync/v26/mod.rs index 259f7f2b..780cd5b6 100644 --- a/client/src/client_sync/v26/mod.rs +++ b/client/src/client_sync/v26/mod.rs @@ -165,6 +165,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v19__set_wallet_flag!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); diff --git a/client/src/client_sync/v27/mod.rs b/client/src/client_sync/v27/mod.rs index fa02c30c..1d420efe 100644 --- a/client/src/client_sync/v27/mod.rs +++ b/client/src/client_sync/v27/mod.rs @@ -161,6 +161,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v19__set_wallet_flag!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); diff --git a/client/src/client_sync/v28/mod.rs b/client/src/client_sync/v28/mod.rs index bb2b8624..598f009d 100644 --- a/client/src/client_sync/v28/mod.rs +++ b/client/src/client_sync/v28/mod.rs @@ -163,6 +163,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v19__set_wallet_flag!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); diff --git a/client/src/client_sync/v29/mod.rs b/client/src/client_sync/v29/mod.rs index 41879436..c061fb2f 100644 --- a/client/src/client_sync/v29/mod.rs +++ b/client/src/client_sync/v29/mod.rs @@ -163,6 +163,7 @@ crate::impl_client_v17__remove_pruned_funds!(); crate::impl_client_v17__rescan_blockchain!(); crate::impl_client_v17__send_many!(); crate::impl_client_v17__send_to_address!(); +crate::impl_client_v17__set_hd_seed!(); crate::impl_client_v19__set_wallet_flag!(); crate::impl_client_v17__sign_message!(); crate::impl_client_v17__sign_raw_transaction_with_wallet!(); diff --git a/integration_test/tests/wallet.rs b/integration_test/tests/wallet.rs index 2ccda835..5dc3bef1 100644 --- a/integration_test/tests/wallet.rs +++ b/integration_test/tests/wallet.rs @@ -568,6 +568,24 @@ fn wallet__set_wallet_flag() { assert!(json.flag_state); } +#[test] +fn wallet__set_hd_seed() { + let node = match () { + #[cfg(feature = "v22_and_below")] + () => Node::with_wallet(Wallet::Default, &[]), + #[cfg(not(feature = "v22_and_below"))] + () => { + let node = Node::with_wallet(Wallet::None, &["-deprecatedrpc=create_bdb"]); + node.client.create_legacy_wallet("wallet_name").expect("createlegacywallet"); + node + } + }; + + node.fund_wallet(); + + let _: () = node.client.set_hd_seed().expect("sethdseed"); +} + #[test] fn wallet__sign_message__modelled() { let node = Node::with_wallet(Wallet::Default, &[]);