diff --git a/client/src/client_sync/v22/mod.rs b/client/src/client_sync/v22/mod.rs index faba37b0..f58586de 100644 --- a/client/src/client_sync/v22/mod.rs +++ b/client/src/client_sync/v22/mod.rs @@ -4,6 +4,7 @@ //! //! We ignore option arguments unless they effect the shape of the returned JSON data. +mod signer; mod wallet; use std::collections::BTreeMap; @@ -110,6 +111,9 @@ crate::impl_client_v17__sign_raw_transaction_with_key!(); crate::impl_client_v17__test_mempool_accept!(); crate::impl_client_v18__utxo_update_psbt!(); +// == Signer == +crate::impl_client_v22__enumerate_signers!(); + // == Util == crate::impl_client_v17__create_multisig!(); crate::impl_client_v18__derive_addresses!(); @@ -151,6 +155,7 @@ crate::impl_client_v17__import_pubkey!(); crate::impl_client_v17__import_wallet!(); crate::impl_client_v17__key_pool_refill!(); crate::impl_client_v17__list_address_groupings!(); +crate::impl_client_v22__list_descriptors!(); crate::impl_client_v18__list_received_by_label!(); crate::impl_client_v17__list_labels!(); crate::impl_client_v17__list_lock_unspent!(); @@ -176,6 +181,7 @@ crate::impl_client_v17__sign_raw_transaction_with_wallet!(); crate::impl_client_v21__unload_wallet!(); crate::impl_client_v21__upgrade_wallet!(); crate::impl_client_v17__wallet_create_funded_psbt!(); +crate::impl_client_v22__wallet_display_address!(); crate::impl_client_v17__wallet_lock!(); crate::impl_client_v17__wallet_passphrase!(); crate::impl_client_v17__wallet_passphrase_change!(); diff --git a/client/src/client_sync/v22/signer.rs b/client/src/client_sync/v22/signer.rs new file mode 100644 index 00000000..384a2ea1 --- /dev/null +++ b/client/src/client_sync/v22/signer.rs @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: CC0-1.0 + +//! Macros for implementing JSON-RPC methods on a client. +//! +//! Specifically this is methods found under the `== Signer ==` section of the +//! API docs of Bitcoin Core `v22`. +//! +//! All macros require `Client` to be in scope. +//! +//! See or use the `define_jsonrpc_minreq_client!` macro to define a `Client`. + +/// Implements Bitcoin Core JSON-RPC API method `enumeratesigners` +#[macro_export] +macro_rules! impl_client_v22__enumerate_signers { + () => { + impl Client { + pub fn enumerate_signers(&self) -> Result { + self.call("enumeratesigners", &[]) + } + } + }; +} diff --git a/client/src/client_sync/v22/wallet.rs b/client/src/client_sync/v22/wallet.rs index 64c4583e..eb5f027a 100644 --- a/client/src/client_sync/v22/wallet.rs +++ b/client/src/client_sync/v22/wallet.rs @@ -9,6 +9,18 @@ //! //! See or use the `define_jsonrpc_minreq_client!` macro to define a `Client`. +/// Implements Bitcoin Core JSON-RPC API method `listdescriptors` +#[macro_export] +macro_rules! impl_client_v22__list_descriptors { + () => { + impl Client { + pub fn list_descriptors(&self) -> Result { + self.call("listdescriptors", &[]) + } + } + }; +} + /// Implements Bitcoin Core JSON-RPC API method `loadwallet` #[macro_export] macro_rules! impl_client_v22__load_wallet { @@ -20,3 +32,15 @@ macro_rules! impl_client_v22__load_wallet { } }; } + +/// Implements Bitcoin Core JSON-RPC API method `walletdisplayaddress` +#[macro_export] +macro_rules! impl_client_v22__wallet_display_address { + () => { + impl Client { + pub fn wallet_display_address(&self, address: &str) -> Result { + self.call("walletdisplayaddress", &[address.into()]) + } + } + }; +} diff --git a/client/src/client_sync/v23/mod.rs b/client/src/client_sync/v23/mod.rs index 78c6a95d..66f4b07c 100644 --- a/client/src/client_sync/v23/mod.rs +++ b/client/src/client_sync/v23/mod.rs @@ -112,6 +112,9 @@ crate::impl_client_v17__sign_raw_transaction_with_key!(); crate::impl_client_v17__test_mempool_accept!(); crate::impl_client_v18__utxo_update_psbt!(); +// == Signer == +crate::impl_client_v22__enumerate_signers!(); + // == Util == crate::impl_client_v17__create_multisig!(); crate::impl_client_v18__derive_addresses!(); @@ -153,6 +156,7 @@ crate::impl_client_v17__import_pubkey!(); crate::impl_client_v17__import_wallet!(); crate::impl_client_v17__key_pool_refill!(); crate::impl_client_v17__list_address_groupings!(); +crate::impl_client_v22__list_descriptors!(); crate::impl_client_v18__list_received_by_label!(); crate::impl_client_v17__list_labels!(); crate::impl_client_v17__list_lock_unspent!(); @@ -178,6 +182,7 @@ crate::impl_client_v17__sign_raw_transaction_with_wallet!(); crate::impl_client_v21__unload_wallet!(); crate::impl_client_v21__upgrade_wallet!(); crate::impl_client_v17__wallet_create_funded_psbt!(); +crate::impl_client_v22__wallet_display_address!(); crate::impl_client_v17__wallet_lock!(); crate::impl_client_v17__wallet_passphrase!(); crate::impl_client_v17__wallet_passphrase_change!(); diff --git a/client/src/client_sync/v24/mod.rs b/client/src/client_sync/v24/mod.rs index 5bdac03f..62663262 100644 --- a/client/src/client_sync/v24/mod.rs +++ b/client/src/client_sync/v24/mod.rs @@ -109,6 +109,9 @@ crate::impl_client_v17__sign_raw_transaction_with_key!(); crate::impl_client_v17__test_mempool_accept!(); crate::impl_client_v18__utxo_update_psbt!(); +// == Signer == +crate::impl_client_v22__enumerate_signers!(); + // == Util == crate::impl_client_v17__create_multisig!(); crate::impl_client_v18__derive_addresses!(); @@ -150,6 +153,7 @@ crate::impl_client_v17__import_pubkey!(); crate::impl_client_v17__import_wallet!(); crate::impl_client_v17__key_pool_refill!(); crate::impl_client_v17__list_address_groupings!(); +crate::impl_client_v22__list_descriptors!(); crate::impl_client_v18__list_received_by_label!(); crate::impl_client_v17__list_labels!(); crate::impl_client_v17__list_lock_unspent!(); @@ -175,6 +179,7 @@ crate::impl_client_v17__sign_raw_transaction_with_wallet!(); crate::impl_client_v21__unload_wallet!(); crate::impl_client_v21__upgrade_wallet!(); crate::impl_client_v17__wallet_create_funded_psbt!(); +crate::impl_client_v22__wallet_display_address!(); crate::impl_client_v17__wallet_lock!(); crate::impl_client_v17__wallet_passphrase!(); crate::impl_client_v17__wallet_passphrase_change!(); diff --git a/client/src/client_sync/v25/mod.rs b/client/src/client_sync/v25/mod.rs index 27f4260f..0c5f280f 100644 --- a/client/src/client_sync/v25/mod.rs +++ b/client/src/client_sync/v25/mod.rs @@ -111,6 +111,9 @@ crate::impl_client_v17__sign_raw_transaction_with_key!(); crate::impl_client_v17__test_mempool_accept!(); crate::impl_client_v18__utxo_update_psbt!(); +// == Signer == +crate::impl_client_v22__enumerate_signers!(); + // == Util == crate::impl_client_v17__create_multisig!(); crate::impl_client_v18__derive_addresses!(); @@ -152,6 +155,7 @@ crate::impl_client_v17__import_pubkey!(); crate::impl_client_v17__import_wallet!(); crate::impl_client_v17__key_pool_refill!(); crate::impl_client_v17__list_address_groupings!(); +crate::impl_client_v22__list_descriptors!(); crate::impl_client_v18__list_received_by_label!(); crate::impl_client_v17__list_labels!(); crate::impl_client_v17__list_lock_unspent!(); @@ -177,6 +181,7 @@ crate::impl_client_v17__sign_raw_transaction_with_wallet!(); crate::impl_client_v21__unload_wallet!(); crate::impl_client_v21__upgrade_wallet!(); crate::impl_client_v17__wallet_create_funded_psbt!(); +crate::impl_client_v22__wallet_display_address!(); crate::impl_client_v17__wallet_lock!(); crate::impl_client_v17__wallet_passphrase!(); crate::impl_client_v17__wallet_passphrase_change!(); diff --git a/client/src/client_sync/v26/mod.rs b/client/src/client_sync/v26/mod.rs index d901ac9c..e4eefd55 100644 --- a/client/src/client_sync/v26/mod.rs +++ b/client/src/client_sync/v26/mod.rs @@ -115,6 +115,9 @@ crate::impl_client_v26__submit_package!(); crate::impl_client_v17__test_mempool_accept!(); crate::impl_client_v18__utxo_update_psbt!(); +// == Signer == +crate::impl_client_v22__enumerate_signers!(); + // == Util == crate::impl_client_v17__create_multisig!(); crate::impl_client_v18__derive_addresses!(); @@ -156,6 +159,7 @@ crate::impl_client_v17__import_pubkey!(); crate::impl_client_v17__import_wallet!(); crate::impl_client_v17__key_pool_refill!(); crate::impl_client_v17__list_address_groupings!(); +crate::impl_client_v22__list_descriptors!(); crate::impl_client_v17__list_labels!(); crate::impl_client_v18__list_received_by_label!(); crate::impl_client_v17__list_lock_unspent!(); @@ -181,6 +185,7 @@ crate::impl_client_v17__sign_raw_transaction_with_wallet!(); crate::impl_client_v21__unload_wallet!(); crate::impl_client_v21__upgrade_wallet!(); crate::impl_client_v17__wallet_create_funded_psbt!(); +crate::impl_client_v22__wallet_display_address!(); crate::impl_client_v17__wallet_lock!(); crate::impl_client_v17__wallet_passphrase!(); crate::impl_client_v17__wallet_passphrase_change!(); diff --git a/client/src/client_sync/v27/mod.rs b/client/src/client_sync/v27/mod.rs index a0ba4881..3644deee 100644 --- a/client/src/client_sync/v27/mod.rs +++ b/client/src/client_sync/v27/mod.rs @@ -111,6 +111,9 @@ crate::impl_client_v26__submit_package!(); crate::impl_client_v17__test_mempool_accept!(); crate::impl_client_v18__utxo_update_psbt!(); +// == Signer == +crate::impl_client_v22__enumerate_signers!(); + // == Util == crate::impl_client_v17__create_multisig!(); crate::impl_client_v18__derive_addresses!(); @@ -152,6 +155,7 @@ crate::impl_client_v17__import_pubkey!(); crate::impl_client_v17__import_wallet!(); crate::impl_client_v17__key_pool_refill!(); crate::impl_client_v17__list_address_groupings!(); +crate::impl_client_v22__list_descriptors!(); crate::impl_client_v18__list_received_by_label!(); crate::impl_client_v17__list_labels!(); crate::impl_client_v17__list_lock_unspent!(); @@ -177,6 +181,7 @@ crate::impl_client_v17__sign_raw_transaction_with_wallet!(); crate::impl_client_v21__unload_wallet!(); crate::impl_client_v21__upgrade_wallet!(); crate::impl_client_v17__wallet_create_funded_psbt!(); +crate::impl_client_v22__wallet_display_address!(); crate::impl_client_v17__wallet_lock!(); crate::impl_client_v17__wallet_passphrase!(); crate::impl_client_v17__wallet_passphrase_change!(); diff --git a/client/src/client_sync/v28/mod.rs b/client/src/client_sync/v28/mod.rs index 4e9bf6b9..0f89523f 100644 --- a/client/src/client_sync/v28/mod.rs +++ b/client/src/client_sync/v28/mod.rs @@ -113,6 +113,9 @@ crate::impl_client_v28__submit_package!(); crate::impl_client_v17__test_mempool_accept!(); crate::impl_client_v18__utxo_update_psbt!(); +// == Signer == +crate::impl_client_v22__enumerate_signers!(); + // == Util == crate::impl_client_v17__create_multisig!(); crate::impl_client_v18__derive_addresses!(); @@ -154,6 +157,7 @@ crate::impl_client_v17__import_pubkey!(); crate::impl_client_v17__import_wallet!(); crate::impl_client_v17__key_pool_refill!(); crate::impl_client_v17__list_address_groupings!(); +crate::impl_client_v22__list_descriptors!(); crate::impl_client_v18__list_received_by_label!(); crate::impl_client_v17__list_labels!(); crate::impl_client_v17__list_lock_unspent!(); @@ -179,6 +183,7 @@ crate::impl_client_v17__sign_raw_transaction_with_wallet!(); crate::impl_client_v21__unload_wallet!(); crate::impl_client_v21__upgrade_wallet!(); crate::impl_client_v17__wallet_create_funded_psbt!(); +crate::impl_client_v22__wallet_display_address!(); crate::impl_client_v17__wallet_lock!(); crate::impl_client_v17__wallet_passphrase!(); crate::impl_client_v17__wallet_passphrase_change!(); diff --git a/client/src/client_sync/v29/mod.rs b/client/src/client_sync/v29/mod.rs index 60c09071..39e9055d 100644 --- a/client/src/client_sync/v29/mod.rs +++ b/client/src/client_sync/v29/mod.rs @@ -113,6 +113,9 @@ crate::impl_client_v28__submit_package!(); crate::impl_client_v17__test_mempool_accept!(); crate::impl_client_v18__utxo_update_psbt!(); +// == Signer == +crate::impl_client_v22__enumerate_signers!(); + // == Util == crate::impl_client_v17__create_multisig!(); crate::impl_client_v18__derive_addresses!(); @@ -154,6 +157,7 @@ crate::impl_client_v17__import_pubkey!(); crate::impl_client_v17__import_wallet!(); crate::impl_client_v17__key_pool_refill!(); crate::impl_client_v17__list_address_groupings!(); +crate::impl_client_v22__list_descriptors!(); crate::impl_client_v18__list_received_by_label!(); crate::impl_client_v17__list_labels!(); crate::impl_client_v17__list_lock_unspent!(); @@ -179,6 +183,7 @@ crate::impl_client_v17__sign_raw_transaction_with_wallet!(); crate::impl_client_v21__unload_wallet!(); crate::impl_client_v21__upgrade_wallet!(); crate::impl_client_v17__wallet_create_funded_psbt!(); +crate::impl_client_v22__wallet_display_address!(); crate::impl_client_v17__wallet_lock!(); crate::impl_client_v17__wallet_passphrase!(); crate::impl_client_v17__wallet_passphrase_change!(); diff --git a/integration_test/tests/wallet.rs b/integration_test/tests/wallet.rs index 5d4eeb67..0e2fcf69 100644 --- a/integration_test/tests/wallet.rs +++ b/integration_test/tests/wallet.rs @@ -495,6 +495,25 @@ fn wallet__import_pubkey() { let _: () = node.client.import_pubkey(&pubkey).expect("importpubkey"); } +#[test] +#[cfg(not(feature = "v21_and_below"))] +fn wallet__list_descriptors() { + let node = Node::with_wallet(Wallet::None, &[]); + let wallet_name = "desc_wallet"; + + #[cfg(feature = "v22_and_below")] + node.client.create_wallet_with_descriptors(wallet_name).expect("create descriptor wallet"); + + // v23 onwards uses descriptor wallets by default. + #[cfg(not(feature = "v22_and_below"))] + node.client.create_wallet(wallet_name).expect("create wallet"); + + let json: ListDescriptors = node.client.list_descriptors().expect("listdescriptors"); + + let has_descriptor = json.descriptors.iter().any(|desc_info| desc_info.descriptor.starts_with("wpkh(") || desc_info.descriptor.starts_with("pkh(")); + assert!(has_descriptor, "No standard descriptors found in listdescriptors result"); +} + #[test] fn wallet__list_unspent__modelled() { let node = match () { diff --git a/types/src/model/mod.rs b/types/src/model/mod.rs index 58fc3fc7..27d85b66 100644 --- a/types/src/model/mod.rs +++ b/types/src/model/mod.rs @@ -60,6 +60,7 @@ pub use self::{ ListReceivedByLabel, ListReceivedByLabelItem, ListSinceBlock, ListSinceBlockTransaction, ListTransactions, ListTransactionsItem, ListUnspent, ListUnspentItem, ListWallets, LoadWallet, PsbtBumpFee, RescanBlockchain, ScriptType, Send, SendMany, SendToAddress, - SignMessage, TransactionCategory, UnloadWallet, WalletCreateFundedPsbt, WalletProcessPsbt, + SignMessage, TransactionCategory, UnloadWallet, WalletCreateFundedPsbt, + WalletDisplayAddress, WalletProcessPsbt, }, }; diff --git a/types/src/model/wallet.rs b/types/src/model/wallet.rs index 257cbe9f..c511af05 100644 --- a/types/src/model/wallet.rs +++ b/types/src/model/wallet.rs @@ -790,6 +790,14 @@ pub struct WalletCreateFundedPsbt { pub change_pos: u32, } +/// Models the result of JSON-RPC method `walletdisplayaddress`. +#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +pub struct WalletDisplayAddress { + /// The address as confirmed by the signer + pub address: Address, +} + /// Models the result of JSON-RPC method `walletprocesspsbt`. #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] #[serde(deny_unknown_fields)] diff --git a/types/src/v22/mod.rs b/types/src/v22/mod.rs index 10efbccd..ccffa5a2 100644 --- a/types/src/v22/mod.rs +++ b/types/src/v22/mod.rs @@ -144,7 +144,7 @@ //! //! | JSON-RPC Method Name | Returns | Notes | //! |:-----------------------------------|:---------------:|:--------------------------------------:| -//! | enumeratesigners | version + model | TODO | +//! | enumeratesigners | version | UNTESTED | //! //! //! @@ -198,7 +198,7 @@ //! | importwallet | returns nothing | | //! | keypoolrefill | returns nothing | | //! | listaddressgroupings | version + model | UNTESTED | -//! | listdescriptors | version + model | TODO | +//! | listdescriptors | version | | //! | listlabels | version + model | UNTESTED | //! | listlockunspent | version + model | UNTESTED | //! | psbtbumpfee | version + model | | @@ -225,7 +225,7 @@ //! | unloadwallet | returns nothing | | //! | upgradewallet | version | | //! | walletcreatefundedpsbt | version + model | UNTESTED | -//! | walletdisplayaddress | version + model | TODO | +//! | walletdisplayaddress | version + model | UNTESTED | //! | walletlock | returns nothing | | //! | walletpassphrase | returns nothing | | //! | walletpassphrasechange | returns nothing | | @@ -247,6 +247,8 @@ mod blockchain; mod control; mod network; mod raw_transactions; +mod signer; +mod wallet; #[doc(inline)] pub use self::{ @@ -254,6 +256,8 @@ pub use self::{ control::Logging, network::{Banned, GetPeerInfo, ListBanned}, raw_transactions::{DecodeScript, DecodeScriptError}, + signer::EnumerateSigners, + wallet::{ListDescriptors, WalletDisplayAddress}, }; #[doc(inline)] pub use crate::{ diff --git a/types/src/v22/signer.rs b/types/src/v22/signer.rs new file mode 100644 index 00000000..80de88a8 --- /dev/null +++ b/types/src/v22/signer.rs @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: CC0-1.0 + +//! The JSON-RPC API for Bitcoin Core `v22` - signer. +//! +//! Types for methods found under the `== Signer ==` section of the API docs. + +use serde::{Deserialize, Serialize}; + +/// Result of JSON-RPC method `enumeratesigners`. +/// +/// > Returns a list of external signers from -signer. +#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +pub struct EnumerateSigners(pub Vec); + +/// An item from the list returned by the JSON-RPC method `enumeratesigners` +#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +pub struct Signers { + /// Master key fingerprint. + pub hex: String, + /// Device name. + #[serde(rename = "str")] + pub device_name: String, +} diff --git a/types/src/v22/wallet/into.rs b/types/src/v22/wallet/into.rs new file mode 100644 index 00000000..4dbf1687 --- /dev/null +++ b/types/src/v22/wallet/into.rs @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: CC0-1.0 + +use bitcoin::{address, Address}; + +use super::WalletDisplayAddress; +use crate::model; + +impl WalletDisplayAddress { + pub fn into_model(self) -> Result { + let address = self.address.parse::>()?; + Ok(model::WalletDisplayAddress { address }) + } +} diff --git a/types/src/v22/wallet/mod.rs b/types/src/v22/wallet/mod.rs new file mode 100644 index 00000000..6cd24729 --- /dev/null +++ b/types/src/v22/wallet/mod.rs @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: CC0-1.0 + +//! The JSON-RPC API for Bitcoin Core `v22` - wallet. +//! +//! Types for methods found under the `== Wallet ==` section of the API docs. + +mod into; + +use serde::{Deserialize, Serialize}; + +/// Result of JSON-RPC method `listdescriptors`. +/// +/// > List descriptors imported into a descriptor-enabled wallet. +#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +pub struct ListDescriptors { + /// Name of wallet this operation was performed on. + pub wallet_name: String, + /// Array of descriptor objects. + pub descriptors: Vec, +} + +/// A descriptor object from `listdescriptors`. +#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +pub struct DescriptorInfo { + /// Descriptor string representation. + #[serde(rename = "desc")] + pub descriptor: String, + /// The creation time of the descriptor. + pub timestamp: u64, + /// Activeness flag. + pub active: bool, + /// Whether this is an internal or external descriptor; defined only for active descriptors. + pub internal: Option, + /// Defined only for ranged descriptors. + pub range: Option<[u64; 2]>, + /// The next index to generate addresses from; defined only for ranged descriptors. + pub next: Option, +} + +/// Result of JSON-RPC method `walletdisplayaddress`. +/// +/// > Display address on an external signer for verification. +#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +pub struct WalletDisplayAddress { + /// The address as confirmed by the signer + pub address: String, +} diff --git a/types/src/v23/mod.rs b/types/src/v23/mod.rs index 8544c252..fa3a46ed 100644 --- a/types/src/v23/mod.rs +++ b/types/src/v23/mod.rs @@ -135,7 +135,7 @@ //! //! | JSON-RPC Method Name | Returns | Notes | //! |:-----------------------------------|:---------------:|:--------------------------------------:| -//! | enumeratesigners | version + model | TODO | +//! | enumeratesigners | version | UNTESTED | //! //! //! @@ -189,7 +189,7 @@ //! | importwallet | returns nothing | | //! | keypoolrefill | returns nothing | | //! | listaddressgroupings | version + model | UNTESTED | -//! | listdescriptors | version + model | TODO | +//! | listdescriptors | version | | //! | listlabels | version + model | UNTESTED | //! | listlockunspent | version + model | UNTESTED | //! | newkeypool | version + model | TODO | @@ -218,7 +218,7 @@ //! | unloadwallet | returns nothing | | //! | upgradewallet | version | | //! | walletcreatefundedpsbt | version + model | UNTESTED | -//! | walletdisplayaddress | version + model | TODO | +//! | walletdisplayaddress | version + model | UNTESTED | //! | walletlock | returns nothing | | //! | walletpassphrase | returns nothing | | //! | walletpassphrasechange | returns nothing | | @@ -310,5 +310,8 @@ pub use crate::{ ImportDescriptors, ImportDescriptorsResult, PsbtBumpFee, PsbtBumpFeeError, Send, SendError, UnloadWallet, UpgradeWallet, }, - v22::{Banned, GetMempoolInfo, ListBanned, ScriptPubkey}, + v22::{ + Banned, EnumerateSigners, GetMempoolInfo, ListBanned, ListDescriptors, ScriptPubkey, + WalletDisplayAddress, + }, }; diff --git a/types/src/v24/mod.rs b/types/src/v24/mod.rs index 53226872..edb25fab 100644 --- a/types/src/v24/mod.rs +++ b/types/src/v24/mod.rs @@ -136,7 +136,7 @@ //! //! | JSON-RPC Method Name | Returns | Notes | //! |:-----------------------------------|:---------------:|:--------------------------------------:| -//! | enumeratesigners | version + model | TODO | +//! | enumeratesigners | version | UNTESTED | //! //! //! @@ -190,7 +190,7 @@ //! | importwallet | returns nothing | | //! | keypoolrefill | returns nothing | | //! | listaddressgroupings | version + model | UNTESTED | -//! | listdescriptors | version + model | TODO | +//! | listdescriptors | version | | //! | listlabels | version + model | UNTESTED | //! | listlockunspent | version + model | UNTESTED | //! | migratewallet | version + model | TODO | @@ -222,7 +222,7 @@ //! | unloadwallet | returns nothing | | //! | upgradewallet | version | | //! | walletcreatefundedpsbt | version + model | UNTESTED | -//! | walletdisplayaddress | version + model | TODO | +//! | walletdisplayaddress | version + model | UNTESTED | //! | walletlock | returns nothing | | //! | walletpassphrase | returns nothing | | //! | walletpassphrasechange | returns nothing | | @@ -311,7 +311,9 @@ pub use crate::{ ImportDescriptors, ImportDescriptorsResult, PsbtBumpFee, PsbtBumpFeeError, Send, SendError, UnloadWallet, UpgradeWallet, }, - v22::{Banned, ListBanned, ScriptPubkey}, + v22::{ + Banned, EnumerateSigners, ListBanned, ListDescriptors, ScriptPubkey, WalletDisplayAddress, + }, v23::{ CreateMultisig, DecodeScript, DecodeScriptError, GetBlockchainInfo, Logging, SaveMempool, }, diff --git a/types/src/v25/mod.rs b/types/src/v25/mod.rs index c8f905d3..0f027ca5 100644 --- a/types/src/v25/mod.rs +++ b/types/src/v25/mod.rs @@ -137,7 +137,7 @@ //! //! | JSON-RPC Method Name | Returns | Notes | //! |:-----------------------------------|:---------------:|:--------------------------------------:| -//! | enumeratesigners | version + model | TODO | +//! | enumeratesigners | version | UNTESTED | //! //! //! @@ -191,7 +191,7 @@ //! | importwallet | returns nothing | | //! | keypoolrefill | returns nothing | | //! | listaddressgroupings | version + model | UNTESTED | -//! | listdescriptors | version + model | TODO | +//! | listdescriptors | version | | //! | listlabels | version + model | UNTESTED | //! | listlockunspent | version + model | UNTESTED | //! | migratewallet | version + model | TODO | @@ -223,7 +223,7 @@ //! | unloadwallet | returns nothing | | //! | upgradewallet | version | | //! | walletcreatefundedpsbt | version + model | UNTESTED | -//! | walletdisplayaddress | version + model | TODO | +//! | walletdisplayaddress | version + model | UNTESTED | //! | walletlock | returns nothing | | //! | walletpassphrase | returns nothing | | //! | walletpassphrasechange | returns nothing | | @@ -250,7 +250,7 @@ pub use self::{ blockchain::GetBlockStats, control::Logging, generating::{GenerateBlock, GenerateBlockError}, - wallet::{CreateWallet, LoadWallet, UnloadWallet}, + wallet::{CreateWallet, ListDescriptors, LoadWallet, UnloadWallet}, }; #[doc(inline)] pub use crate::{ @@ -305,7 +305,7 @@ pub use crate::{ GetIndexInfo, GetIndexInfoName, GetNetworkInfo, ImportDescriptors, ImportDescriptorsResult, PsbtBumpFee, PsbtBumpFeeError, Send, SendError, UpgradeWallet, }, - v22::{Banned, ListBanned, ScriptPubkey}, + v22::{Banned, EnumerateSigners, ListBanned, ScriptPubkey, WalletDisplayAddress}, v23::{CreateMultisig, DecodeScript, DecodeScriptError, GetBlockchainInfo, SaveMempool}, v24::{ DecodePsbt, DecodePsbtError, GetMempoolEntry, GetMempoolInfo, GetPeerInfo, GetTransaction, diff --git a/types/src/v25/wallet.rs b/types/src/v25/wallet.rs index b018bbc0..36a2df49 100644 --- a/types/src/v25/wallet.rs +++ b/types/src/v25/wallet.rs @@ -50,6 +50,38 @@ impl CreateWallet { /// Returns the created wallet name. pub fn name(self) -> String { self.into_model().name } } +/// Result of JSON-RPC method `listdescriptors`. +/// +/// > List descriptors imported into a descriptor-enabled wallet. +#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +pub struct ListDescriptors { + /// Name of wallet this operation was performed on. + pub wallet_name: String, + /// Array of descriptor objects. + pub descriptors: Vec, +} + +/// A descriptor object from `listdescriptors`. +#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +pub struct DescriptorInfo { + /// Descriptor string representation. + #[serde(rename = "desc")] + pub descriptor: String, + /// The creation time of the descriptor. + pub timestamp: u64, + /// Activeness flag. + pub active: bool, + /// Whether this is an internal or external descriptor; defined only for active descriptors. + pub internal: Option, + /// Defined only for ranged descriptors. + pub range: Option<[u64; 2]>, + /// Same as `next_index` field. Kept for compatibility reason. + pub next: Option, + /// The next index to generate addresses from; defined only for ranged descriptors. + pub next_index: Option, +} /// Result of the JSON-RPC method `loadwallet`. /// diff --git a/types/src/v26/mod.rs b/types/src/v26/mod.rs index 28fc8ac5..2704f883 100644 --- a/types/src/v26/mod.rs +++ b/types/src/v26/mod.rs @@ -145,7 +145,7 @@ //! //! | JSON-RPC Method Name | Returns | Notes | //! |:-----------------------------------|:---------------:|:--------------------------------------:| -//! | enumeratesigners | version + model | TODO | +//! | enumeratesigners | version | UNTESTED | //! //! //! @@ -199,7 +199,7 @@ //! | importwallet | returns nothing | | //! | keypoolrefill | returns nothing | | //! | listaddressgroupings | version + model | UNTESTED | -//! | listdescriptors | version + model | TODO | +//! | listdescriptors | version | | //! | listlabels | version + model | UNTESTED | //! | listlockunspent | version + model | UNTESTED | //! | migratewallet | version + model | TODO | @@ -231,7 +231,7 @@ //! | unloadwallet | returns nothing | | //! | upgradewallet | version | | //! | walletcreatefundedpsbt | version + model | UNTESTED | -//! | walletdisplayaddress | version + model | TODO | +//! | walletdisplayaddress | version + model | UNTESTED | //! | walletlock | returns nothing | | //! | walletpassphrase | returns nothing | | //! | walletpassphrasechange | returns nothing | | @@ -323,12 +323,12 @@ pub use crate::{ GetIndexInfo, GetIndexInfoName, GetNetworkInfo, ImportDescriptors, ImportDescriptorsResult, PsbtBumpFee, PsbtBumpFeeError, Send, SendError, UpgradeWallet, }, - v22::{Banned, ListBanned, ScriptPubkey}, + v22::{Banned, EnumerateSigners, ListBanned, ScriptPubkey, WalletDisplayAddress}, v23::{CreateMultisig, DecodeScript, DecodeScriptError, GetBlockchainInfo, SaveMempool}, v24::{ DecodePsbt, DecodePsbtError, GetMempoolEntry, GetMempoolInfo, GetTransactionDetail, GlobalXpub, ListUnspent, ListUnspentItem, Proprietary, PsbtInput, PsbtOutput, TaprootBip32Deriv, TaprootLeaf, TaprootScript, TaprootScriptPathSig, }, - v25::{GenerateBlock, GenerateBlockError, GetBlockStats}, + v25::{GenerateBlock, GenerateBlockError, GetBlockStats, ListDescriptors}, }; diff --git a/types/src/v27/mod.rs b/types/src/v27/mod.rs index 4845418d..f2b55928 100644 --- a/types/src/v27/mod.rs +++ b/types/src/v27/mod.rs @@ -145,7 +145,7 @@ //! //! | JSON-RPC Method Name | Returns | Notes | //! |:-----------------------------------|:---------------:|:--------------------------------------:| -//! | enumeratesigners | version + model | TODO | +//! | enumeratesigners | version | UNTESTED | //! //! //! @@ -199,7 +199,7 @@ //! | importwallet | returns nothing | | //! | keypoolrefill | returns nothing | | //! | listaddressgroupings | version + model | UNTESTED | -//! | listdescriptors | version + model | TODO | +//! | listdescriptors | version | | //! | listlabels | version + model | UNTESTED | //! | listlockunspent | version + model | UNTESTED | //! | migratewallet | version + model | TODO | @@ -231,7 +231,7 @@ //! | unloadwallet | returns nothing | | //! | upgradewallet | version | | //! | walletcreatefundedpsbt | version + model | UNTESTED | -//! | walletdisplayaddress | version + model | TODO | +//! | walletdisplayaddress | version + model | UNTESTED | //! | walletlock | returns nothing | | //! | walletpassphrase | returns nothing | | //! | walletpassphrasechange | returns nothing | | @@ -300,14 +300,14 @@ pub use crate::{ GetIndexInfo, GetIndexInfoName, GetNetworkInfo, ImportDescriptors, ImportDescriptorsResult, PsbtBumpFee, PsbtBumpFeeError, Send, SendError, UpgradeWallet, }, - v22::{Banned, ListBanned, ScriptPubkey}, + v22::{Banned, EnumerateSigners, ListBanned, ScriptPubkey, WalletDisplayAddress}, v23::{CreateMultisig, DecodeScript, DecodeScriptError, GetBlockchainInfo, SaveMempool}, v24::{ DecodePsbt, DecodePsbtError, GetMempoolEntry, GetMempoolInfo, GetTransactionDetail, GlobalXpub, ListUnspent, ListUnspentItem, Proprietary, PsbtInput, PsbtOutput, TaprootBip32Deriv, TaprootLeaf, TaprootScript, TaprootScriptPathSig, }, - v25::{GenerateBlock, GenerateBlockError, GetBlockStats}, + v25::{GenerateBlock, GenerateBlockError, GetBlockStats, ListDescriptors}, v26::{ CreateWallet, DescriptorProcessPsbt, DescriptorProcessPsbtError, GetBalances, GetBalancesError, GetPeerInfo, GetPrioritisedTransactions, GetTransaction, diff --git a/types/src/v28/mod.rs b/types/src/v28/mod.rs index 1d607769..be855ac5 100644 --- a/types/src/v28/mod.rs +++ b/types/src/v28/mod.rs @@ -145,7 +145,7 @@ //! //! | JSON-RPC Method Name | Returns | Notes | //! |:-----------------------------------|:---------------:|:--------------------------------------:| -//! | enumeratesigners | version + model | TODO | +//! | enumeratesigners | version | UNTESTED | //! //! //! @@ -201,7 +201,7 @@ //! | importwallet | returns nothing | | //! | keypoolrefill | returns nothing | | //! | listaddressgroupings | version + model | UNTESTED | -//! | listdescriptors | version + model | TODO | +//! | listdescriptors | version | | //! | listlabels | version + model | UNTESTED | //! | listlockunspent | version + model | UNTESTED | //! | migratewallet | version + model | TODO | @@ -233,7 +233,7 @@ //! | unloadwallet | returns nothing | | //! | upgradewallet | version | | //! | walletcreatefundedpsbt | version + model | UNTESTED | -//! | walletdisplayaddress | version + model | TODO | +//! | walletdisplayaddress | version + model | UNTESTED | //! | walletlock | returns nothing | | //! | walletpassphrase | returns nothing | | //! | walletpassphrasechange | returns nothing | | @@ -321,14 +321,14 @@ pub use crate::{ GetIndexInfo, GetIndexInfoName, ImportDescriptors, ImportDescriptorsResult, PsbtBumpFee, PsbtBumpFeeError, Send, SendError, UpgradeWallet, }, - v22::{Banned, ListBanned, ScriptPubkey}, + v22::{Banned, EnumerateSigners, ListBanned, ScriptPubkey, WalletDisplayAddress}, v23::{CreateMultisig, DecodeScript, DecodeScriptError, SaveMempool}, v24::{ DecodePsbt, DecodePsbtError, GetMempoolEntry, GetMempoolInfo, GetTransactionDetail, GlobalXpub, ListUnspent, ListUnspentItem, Proprietary, PsbtInput, PsbtOutput, TaprootBip32Deriv, TaprootLeaf, TaprootScript, TaprootScriptPathSig, }, - v25::{GenerateBlock, GenerateBlockError, GetBlockStats}, + v25::{GenerateBlock, GenerateBlockError, GetBlockStats, ListDescriptors}, v26::{ CreateWallet, DescriptorProcessPsbt, DescriptorProcessPsbtError, GetBalances, GetBalancesError, GetPeerInfo, GetPrioritisedTransactions, GetTransactionError, diff --git a/types/src/v29/mod.rs b/types/src/v29/mod.rs index 68005170..e6a52f0c 100644 --- a/types/src/v29/mod.rs +++ b/types/src/v29/mod.rs @@ -146,7 +146,7 @@ //! //! | JSON-RPC Method Name | Returns | Notes | //! |:-----------------------------------|:---------------:|:--------------------------------------:| -//! | enumeratesigners | version + model | TODO | +//! | enumeratesigners | version | UNTESTED | //! //! //! @@ -202,7 +202,7 @@ //! | importwallet | returns nothing | | //! | keypoolrefill | returns nothing | | //! | listaddressgroupings | version + model | UNTESTED | -//! | listdescriptors | version + model | TODO | +//! | listdescriptors | version | | //! | listlabels | version + model | UNTESTED | //! | listlockunspent | version + model | UNTESTED | //! | migratewallet | version + model | TODO | @@ -234,7 +234,7 @@ //! | unloadwallet | returns nothing | | //! | upgradewallet | version | | //! | walletcreatefundedpsbt | version + model | UNTESTED | -//! | walletdisplayaddress | version + model | TODO | +//! | walletdisplayaddress | version + model | UNTESTED | //! | walletlock | returns nothing | | //! | walletpassphrase | returns nothing | | //! | walletpassphrasechange | returns nothing | | @@ -319,14 +319,14 @@ pub use crate::{ GetIndexInfo, GetIndexInfoName, ImportDescriptors, ImportDescriptorsResult, PsbtBumpFee, PsbtBumpFeeError, Send, SendError, UpgradeWallet, }, - v22::{Banned, ListBanned, ScriptPubkey}, + v22::{Banned, EnumerateSigners, ListBanned, ScriptPubkey, WalletDisplayAddress}, v23::{CreateMultisig, DecodeScript, DecodeScriptError, SaveMempool}, v24::{ DecodePsbt, DecodePsbtError, GetMempoolEntry, GetMempoolInfo, GetTransactionDetail, GlobalXpub, ListUnspent, ListUnspentItem, Proprietary, PsbtInput, PsbtOutput, TaprootBip32Deriv, TaprootLeaf, TaprootScript, TaprootScriptPathSig, }, - v25::{GenerateBlock, GenerateBlockError, GetBlockStats}, + v25::{GenerateBlock, GenerateBlockError, GetBlockStats, ListDescriptors}, v26::{ CreateWallet, DescriptorProcessPsbt, DescriptorProcessPsbtError, GetBalances, GetBalancesError, GetPrioritisedTransactions, GetTransactionError, GetTxOutSetInfo, diff --git a/verify/src/method/v22.rs b/verify/src/method/v22.rs index 0372bfed..c4a54e09 100644 --- a/verify/src/method/v22.rs +++ b/verify/src/method/v22.rs @@ -87,7 +87,7 @@ pub const METHODS: &[Method] = &[ Method::new_nothing("testmempoolaccept", "test_mempool_accept"), Method::new_modelled("utxoupdatepsbt", "UtxoUpdatePsbt", "utxo_update_psbt"), // signer - Method::new_modelled("enumeratesigners", "EnumerateSigners", "enumerate_signers"), + Method::new_no_model("enumeratesigners", "EnumerateSigners", "enumerate_signers"), // util Method::new_modelled("createmultisig", "CreateMultisig", "create_multisig"), Method::new_modelled("deriveaddresses", "DeriveAddresses", "derive_addresses"), @@ -131,7 +131,7 @@ pub const METHODS: &[Method] = &[ Method::new_nothing("importwallet", "import_walet"), Method::new_nothing("keypoolrefill", "keypool_refill"), Method::new_modelled("listaddressgroupings", "ListAddressGroupings", "list_address_groupings"), - Method::new_modelled("listdescriptors", "ListDescriptors", "list_descriptors"), + Method::new_no_model("listdescriptors", "ListDescriptors", "list_descriptors"), Method::new_modelled("listlabels", "ListLabels", "list_labels"), Method::new_modelled("listlockunspent", "ListLockUnspent", "list_lock_unspent"), Method::new_modelled("psbtbumpfee", "PsbtBumpFee", "psbt_bump_fee"), diff --git a/verify/src/method/v23.rs b/verify/src/method/v23.rs index 81a33c63..6b7d3548 100644 --- a/verify/src/method/v23.rs +++ b/verify/src/method/v23.rs @@ -93,6 +93,8 @@ pub const METHODS: &[Method] = &[ Method::new_string("signmessagewithprivkey", "sign_message_with_priv_key"), Method::new_modelled("validateaddress", "ValidateAddress", "validate_address"), Method::new_bool("verifymessage", "verify_message"), + // signer + Method::new_no_model("enumeratesigners", "EnumerateSigners", "enumerate_signers"), // wallet Method::new_nothing("abandontransaction", "abandon_transaction"), Method::new_no_model("abortrescan", "AbortRescan", "abort_rescan"), @@ -127,7 +129,7 @@ pub const METHODS: &[Method] = &[ Method::new_nothing("importwallet", "import_walet"), Method::new_nothing("keypoolrefill", "keypool_refill"), Method::new_modelled("listaddressgroupings", "ListAddressGroupings", "list_address_groupings"), - Method::new_modelled("listdescriptors", "ListDescriptors", "list_descriptors"), + Method::new_no_model("listdescriptors", "ListDescriptors", "list_descriptors"), Method::new_modelled("listlabels", "ListLabels", "list_labels"), Method::new_modelled("listlockunspent", "ListLockUnspent", "list_lock_unspent"), Method::new_modelled("newkeypool", "NewKeyPool", "new_key_pool"), diff --git a/verify/src/method/v24.rs b/verify/src/method/v24.rs index 90801ea6..c227af33 100644 --- a/verify/src/method/v24.rs +++ b/verify/src/method/v24.rs @@ -94,6 +94,8 @@ pub const METHODS: &[Method] = &[ Method::new_string("signmessagewithprivkey", "sign_message_with_priv_key"), Method::new_modelled("validateaddress", "ValidateAddress", "validate_address"), Method::new_bool("verifymessage", "verify_message"), + // signer + Method::new_no_model("enumeratesigners", "EnumerateSigners", "enumerate_signers"), // wallet Method::new_nothing("abandontransaction", "abandon_transaction"), Method::new_no_model("abortrescan", "AbortRescan", "abort_rescan"), @@ -128,7 +130,7 @@ pub const METHODS: &[Method] = &[ Method::new_nothing("importwallet", "import_walet"), Method::new_nothing("keypoolrefill", "keypool_refill"), Method::new_modelled("listaddressgroupings", "ListAddressGroupings", "list_address_groupings"), - Method::new_modelled("listdescriptors", "ListDescriptors", "list_descriptors"), + Method::new_no_model("listdescriptors", "ListDescriptors", "list_descriptors"), Method::new_modelled("listlabels", "ListLabels", "list_labels"), Method::new_modelled("listlockunspent", "ListLockUnspent", "list_lock_unspent"), Method::new_modelled("migratewallet", "MigrateWallet", "migrate_wallet"), diff --git a/verify/src/method/v25.rs b/verify/src/method/v25.rs index 1956d3a4..9ce49d85 100644 --- a/verify/src/method/v25.rs +++ b/verify/src/method/v25.rs @@ -96,6 +96,8 @@ pub const METHODS: &[Method] = &[ Method::new_modelled("validateaddress", "ValidateAddress", "validate_address"), Method::new_bool("verifymessage", "verify_message"), Method::new_nothing("abandontransaction", "abandon_transaction"), + // signer + Method::new_no_model("enumeratesigners", "EnumerateSigners", "enumerate_signers"), // wallet Method::new_no_model("abortrescan", "AbortRescan", "abort_rescan"), Method::new_modelled("addmultisigaddress", "AddMultisigAddress", "add_multisig_address"), @@ -129,7 +131,7 @@ pub const METHODS: &[Method] = &[ Method::new_nothing("importwallet", "import_walet"), Method::new_nothing("keypoolrefill", "keypool_refill"), Method::new_modelled("listaddressgroupings", "ListAddressGroupings", "list_address_groupings"), - Method::new_modelled("listdescriptors", "ListDescriptors", "list_descriptors"), + Method::new_no_model("listdescriptors", "ListDescriptors", "list_descriptors"), Method::new_modelled("listlabels", "ListLabels", "list_labels"), Method::new_modelled("listlockunspent", "ListLockUnspent", "list_lock_unspent"), Method::new_modelled("migratewallet", "MigrateWallet", "migrate_wallet"), diff --git a/verify/src/method/v26.rs b/verify/src/method/v26.rs index 1b72bf77..c8758e3e 100644 --- a/verify/src/method/v26.rs +++ b/verify/src/method/v26.rs @@ -74,6 +74,7 @@ pub const METHODS: &[Method] = &[ Method::new_nothing("ping", "ping"), Method::new_nothing("setban", "set_ban"), Method::new_no_model("setnetworkactive", "SetNetworkActive", "set_network_active"), + // raw transactions Method::new_modelled("analyzepsbt", "AnalyzePsbt", "analyze_psbt"), Method::new_nothing("combinepsbt", "combine_psbt"), Method::new_nothing("combinerawtransaction", "combine_raw_transaction"), @@ -102,6 +103,8 @@ pub const METHODS: &[Method] = &[ Method::new_string("signmessagewithprivkey", "sign_message_with_priv_key"), Method::new_modelled("validateaddress", "ValidateAddress", "validate_address"), Method::new_bool("verifymessage", "verify_message"), + // signer + Method::new_no_model("enumeratesigners", "EnumerateSigners", "enumerate_signers"), // wallet Method::new_nothing("abandontransaction", "abandon_transaction"), Method::new_no_model("abortrescan", "AbortRescan", "abort_rescan"), @@ -136,7 +139,7 @@ pub const METHODS: &[Method] = &[ Method::new_nothing("importwallet", "import_walet"), Method::new_nothing("keypoolrefill", "keypool_refill"), Method::new_modelled("listaddressgroupings", "ListAddressGroupings", "list_address_groupings"), - Method::new_modelled("listdescriptors", "ListDescriptors", "list_descriptors"), + Method::new_no_model("listdescriptors", "ListDescriptors", "list_descriptors"), Method::new_modelled("listlabels", "ListLabels", "list_labels"), Method::new_modelled("listlockunspent", "ListLockUnspent", "list_lock_unspent"), Method::new_modelled("migratewallet", "MigrateWallet", "migrate_wallet"), diff --git a/verify/src/method/v27.rs b/verify/src/method/v27.rs index ca7e18ac..1691c984 100644 --- a/verify/src/method/v27.rs +++ b/verify/src/method/v27.rs @@ -105,6 +105,8 @@ pub const METHODS: &[Method] = &[ Method::new_string("signmessagewithprivkey", "sign_message_with_priv_key"), Method::new_modelled("validateaddress", "ValidateAddress", "validate_address"), Method::new_bool("verifymessage", "verify_message"), + // signer + Method::new_no_model("enumeratesigners", "EnumerateSigners", "enumerate_signers"), // wallet Method::new_nothing("abandontransaction", "abandon_transaction"), Method::new_no_model("abortrescan", "AbortRescan", "abort_rescan"), @@ -139,7 +141,7 @@ pub const METHODS: &[Method] = &[ Method::new_nothing("importwallet", "import_walet"), Method::new_nothing("keypoolrefill", "keypool_refill"), Method::new_modelled("listaddressgroupings", "ListAddressGroupings", "list_address_groupings"), - Method::new_modelled("listdescriptors", "ListDescriptors", "list_descriptors"), + Method::new_no_model("listdescriptors", "ListDescriptors", "list_descriptors"), Method::new_modelled("listlabels", "ListLabels", "list_labels"), Method::new_modelled("listlockunspent", "ListLockUnspent", "list_lock_unspent"), Method::new_modelled("migratewallet", "MigrateWallet", "migrate_wallet"), diff --git a/verify/src/method/v28.rs b/verify/src/method/v28.rs index 0e6a08fa..4cfb5866 100644 --- a/verify/src/method/v28.rs +++ b/verify/src/method/v28.rs @@ -105,6 +105,8 @@ pub const METHODS: &[Method] = &[ Method::new_string("signmessagewithprivkey", "sign_message_with_priv_key"), Method::new_modelled("validateaddress", "ValidateAddress", "validate_address"), Method::new_bool("verifymessage", "verify_message"), + // signer + Method::new_no_model("enumeratesigners", "EnumerateSigners", "enumerate_signers"), // wallet Method::new_nothing("abandontransaction", "abandon_transaction"), Method::new_no_model("abortrescan", "AbortRescan", "abort_rescan"), @@ -141,7 +143,7 @@ pub const METHODS: &[Method] = &[ Method::new_nothing("importwallet", "import_walet"), Method::new_nothing("keypoolrefill", "keypool_refill"), Method::new_modelled("listaddressgroupings", "ListAddressGroupings", "list_address_groupings"), - Method::new_modelled("listdescriptors", "ListDescriptors", "list_descriptors"), + Method::new_no_model("listdescriptors", "ListDescriptors", "list_descriptors"), Method::new_modelled("listlabels", "ListLabels", "list_labels"), Method::new_modelled("listlockunspent", "ListLockUnspent", "list_lock_unspent"), Method::new_modelled("migratewallet", "MigrateWallet", "migrate_wallet"), diff --git a/verify/src/method/v29.rs b/verify/src/method/v29.rs index dc834e09..e5e8c356 100644 --- a/verify/src/method/v29.rs +++ b/verify/src/method/v29.rs @@ -106,6 +106,8 @@ pub const METHODS: &[Method] = &[ Method::new_string("signmessagewithprivkey", "sign_message_with_priv_key"), Method::new_modelled("validateaddress", "ValidateAddress", "validate_address"), Method::new_bool("verifymessage", "verify_message"), + // signer + Method::new_no_model("enumeratesigners", "EnumerateSigners", "enumerate_signers"), // wallet Method::new_nothing("abandontransaction", "abandon_transaction"), Method::new_no_model("abortrescan", "AbortRescan", "abort_rescan"), @@ -142,7 +144,7 @@ pub const METHODS: &[Method] = &[ Method::new_nothing("importwallet", "import_walet"), Method::new_nothing("keypoolrefill", "keypool_refill"), Method::new_modelled("listaddressgroupings", "ListAddressGroupings", "list_address_groupings"), - Method::new_modelled("listdescriptors", "ListDescriptors", "list_descriptors"), + Method::new_no_model("listdescriptors", "ListDescriptors", "list_descriptors"), Method::new_modelled("listlabels", "ListLabels", "list_labels"), Method::new_modelled("listlockunspent", "ListLockUnspent", "list_lock_unspent"), Method::new_modelled("migratewallet", "MigrateWallet", "migrate_wallet"),