corepc_client/client_sync/v29/
mod.rs1pub mod blockchain;
8pub mod hidden;
9pub mod util;
10
11use std::collections::BTreeMap;
12use std::path::Path;
13
14use bitcoin::address::{Address, NetworkChecked};
15use bitcoin::{sign_message, Amount, Block, BlockHash, PublicKey, Txid};
16use serde::{Deserialize, Serialize};
17use serde_json::json;
18
19use crate::client_sync::into_json;
20use crate::types::v29::*;
21
22#[rustfmt::skip] pub use crate::client_sync::{
24 v17::{
25 AddNodeCommand, ImportMultiRequest, ImportMultiScriptPubKey, ImportMultiTimestamp, Input, Output, SetBanCommand, WalletCreateFundedPsbtInput,
26 FeeEstimateMode,
27 },
28 v21::ImportDescriptorsRequest,
29 v23::AddressType,
30};
31
32crate::define_jsonrpc_bitreq_client!("v29");
33crate::impl_client_check_expected_server_version!({ [290000] });
34
35crate::impl_client_v29__dump_tx_out_set!();
37crate::impl_client_v17__get_best_block_hash!();
38crate::impl_client_v29__get_block!();
39crate::impl_client_v17__get_blockchain_info!();
40crate::impl_client_v17__get_block_count!();
41crate::impl_client_v19__get_block_filter!();
42crate::impl_client_v23__get_block_from_peer!();
43crate::impl_client_v17__get_block_hash!();
44crate::impl_client_v17__get_block_header!();
45crate::impl_client_v17__get_block_stats!();
46crate::impl_client_v26__get_chain_states!();
47crate::impl_client_v17__get_chain_tips!();
48crate::impl_client_v17__get_chain_tx_stats!();
49crate::impl_client_v23__get_deployment_info!();
50crate::impl_client_v29__get_descriptor_activity!();
51crate::impl_client_v17__get_difficulty!();
52crate::impl_client_v17__get_mempool_ancestors!();
53crate::impl_client_v17__get_mempool_descendants!();
54crate::impl_client_v17__get_mempool_entry!();
55crate::impl_client_v17__get_mempool_info!();
56crate::impl_client_v21__get_raw_mempool!();
57crate::impl_client_v17__get_tx_out!();
58crate::impl_client_v17__get_tx_out_proof!();
59crate::impl_client_v26__get_tx_out_set_info!();
60crate::impl_client_v24__get_tx_spending_prevout!();
61crate::impl_client_v26__import_mempool!();
62crate::impl_client_v26__load_tx_out_set!();
63crate::impl_client_v17__precious_block!();
64crate::impl_client_v17__prune_blockchain!();
65crate::impl_client_v23__save_mempool!();
66crate::impl_client_v25__scan_blocks!();
67crate::impl_client_v17__scan_tx_out_set!();
68crate::impl_client_v17__verify_chain!();
69crate::impl_client_v17__verify_tx_out_proof!();
70
71crate::impl_client_v17__get_memory_info!();
73crate::impl_client_v18__get_rpc_info!();
74crate::impl_client_v17__help!();
75crate::impl_client_v17__logging!();
76crate::impl_client_v17__stop!();
77crate::impl_client_v17__uptime!();
78
79crate::impl_client_v25__generate_block!();
81crate::impl_client_v17__generate_to_address!();
82crate::impl_client_v20__generate_to_descriptor!();
83crate::impl_client_v17__invalidate_block!();
84
85crate::impl_client_v27__add_connection!();
87crate::impl_client_v21__add_peer_address!();
88crate::impl_client_v17__estimate_raw_fee!();
89crate::impl_client_v29__get_orphan_txs!();
90crate::impl_client_v29__get_orphan_txs_verbosity_1!();
91crate::impl_client_v29__get_orphan_txs_verbosity_2!();
92crate::impl_client_v26__get_raw_addrman!();
93crate::impl_client_v20__mock_scheduler!();
94crate::impl_client_v17__reconsider_block!();
95crate::impl_client_v17__sync_with_validation_interface_queue!();
96crate::impl_client_v17__wait_for_block!();
97crate::impl_client_v17__wait_for_block_height!();
98crate::impl_client_v17__wait_for_new_block!();
99
100crate::impl_client_v17__get_block_template!();
102crate::impl_client_v17__get_mining_info!();
103crate::impl_client_v17__get_network_hashes_per_second!();
104crate::impl_client_v26__get_prioritised_transactions!();
105crate::impl_client_v17__prioritise_transaction!();
106crate::impl_client_v17__submit_block!();
107crate::impl_client_v18__submit_header!();
108
109crate::impl_client_v17__add_node!();
111crate::impl_client_v17__clear_banned!();
112crate::impl_client_v17__disconnect_node!();
113crate::impl_client_v17__get_added_node_info!();
114crate::impl_client_v26__get_addr_man_info!();
115crate::impl_client_v17__get_connection_count!();
116crate::impl_client_v17__get_net_totals!();
117crate::impl_client_v17__get_network_info!();
118crate::impl_client_v18__get_node_addresses!();
119crate::impl_client_v17__get_peer_info!();
120crate::impl_client_v17__list_banned!();
121crate::impl_client_v17__ping!();
122crate::impl_client_v17__set_ban!();
123crate::impl_client_v17__set_network_active!();
124
125crate::impl_client_v18__analyze_psbt!();
127crate::impl_client_v17__combine_psbt!();
128crate::impl_client_v17__combine_raw_transaction!();
129crate::impl_client_v17__convert_to_psbt!();
130crate::impl_client_v17__create_psbt!();
131crate::impl_client_v17__create_raw_transaction!();
132crate::impl_client_v17__decode_psbt!();
133crate::impl_client_v17__decode_raw_transaction!();
134crate::impl_client_v17__decode_script!();
135crate::impl_client_v17__finalize_psbt!();
136crate::impl_client_v17__fund_raw_transaction!();
137crate::impl_client_v17__get_raw_transaction!();
138crate::impl_client_v18__join_psbts!();
139crate::impl_client_v17__send_raw_transaction!();
140crate::impl_client_v17__sign_raw_transaction!();
141crate::impl_client_v17__sign_raw_transaction_with_key!();
142crate::impl_client_v28__submit_package!();
143crate::impl_client_v17__test_mempool_accept!();
144crate::impl_client_v18__utxo_update_psbt!();
145
146crate::impl_client_v22__enumerate_signers!();
148
149crate::impl_client_v17__create_multisig!();
151crate::impl_client_v29__derive_addresses!();
152crate::impl_client_v17__estimate_smart_fee!();
153crate::impl_client_v18__get_descriptor_info!();
154crate::impl_client_v21__get_index_info!();
155crate::impl_client_v17__sign_message_with_priv_key!();
156crate::impl_client_v17__validate_address!();
157crate::impl_client_v17__verify_message!();
158
159crate::impl_client_v17__abandon_transaction!();
161crate::impl_client_v17__abort_rescan!();
162crate::impl_client_v17__add_multisig_address!();
163crate::impl_client_v17__backup_wallet!();
164crate::impl_client_v17__bump_fee!();
165crate::impl_client_v22__create_wallet!();
166crate::impl_client_v23__create_wallet!();
167crate::impl_client_v28__create_wallet_descriptor!();
168crate::impl_client_v17__dump_priv_key!();
169crate::impl_client_v17__dump_wallet!();
170crate::impl_client_v17__encrypt_wallet!();
171crate::impl_client_v17__get_addresses_by_label!();
172crate::impl_client_v17__get_address_info!();
173crate::impl_client_v17__get_balance!();
174crate::impl_client_v19__get_balances!();
175crate::impl_client_v28__get_hd_keys!();
176crate::impl_client_v18__get_received_by_label!();
177crate::impl_client_v17__get_new_address!();
178crate::impl_client_v17__get_raw_change_address!();
179crate::impl_client_v17__get_received_by_address!();
180crate::impl_client_v17__get_transaction!();
181crate::impl_client_v17__get_unconfirmed_balance!();
182crate::impl_client_v17__get_wallet_info!();
183crate::impl_client_v17__import_address!();
184crate::impl_client_v21__import_descriptors!();
185crate::impl_client_v17__import_multi!();
186crate::impl_client_v17__import_privkey!();
187crate::impl_client_v17__import_pruned_funds!();
188crate::impl_client_v17__import_pubkey!();
189crate::impl_client_v17__import_wallet!();
190crate::impl_client_v17__key_pool_refill!();
191crate::impl_client_v17__list_address_groupings!();
192crate::impl_client_v22__list_descriptors!();
193crate::impl_client_v18__list_received_by_label!();
194crate::impl_client_v17__list_labels!();
195crate::impl_client_v17__list_lock_unspent!();
196crate::impl_client_v17__list_received_by_address!();
197crate::impl_client_v17__list_since_block!();
198crate::impl_client_v17__list_transactions!();
199crate::impl_client_v17__list_unspent!();
200crate::impl_client_v18__list_wallet_dir!();
201crate::impl_client_v17__list_wallets!();
202crate::impl_client_v22__load_wallet!();
203crate::impl_client_v17__lock_unspent!();
204crate::impl_client_v24__migrate_wallet!();
205crate::impl_client_v23__new_keypool!();
206crate::impl_client_v21__psbt_bump_fee!();
207crate::impl_client_v17__remove_pruned_funds!();
208crate::impl_client_v17__rescan_blockchain!();
209crate::impl_client_v23__restore_wallet!();
210crate::impl_client_v21__send!();
211crate::impl_client_v24__send_all!();
212crate::impl_client_v17__send_many!();
213crate::impl_client_v21__send_many_verbose!();
214crate::impl_client_v17__send_to_address!();
215crate::impl_client_v17__set_hd_seed!();
216crate::impl_client_v17__set_tx_fee!();
217crate::impl_client_v19__set_wallet_flag!();
218crate::impl_client_v17__sign_message!();
219crate::impl_client_v17__sign_raw_transaction_with_wallet!();
220crate::impl_client_v24__simulate_raw_transaction!();
221crate::impl_client_v21__unload_wallet!();
222crate::impl_client_v21__upgrade_wallet!();
223crate::impl_client_v17__wallet_create_funded_psbt!();
224crate::impl_client_v22__wallet_display_address!();
225crate::impl_client_v17__wallet_lock!();
226crate::impl_client_v17__wallet_passphrase!();
227crate::impl_client_v17__wallet_passphrase_change!();
228crate::impl_client_v17__wallet_process_psbt!();
229
230crate::impl_client_v17__get_zmq_notifications!();
232
233#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Default)]
235pub struct TemplateRequest {
236 #[serde(skip_serializing_if = "Option::is_none")]
237 pub mode: Option<String>,
238 #[serde(default, skip_serializing_if = "Vec::is_empty")]
239 pub capabilities: Vec<String>,
240 #[serde(default, skip_serializing_if = "Vec::is_empty")]
241 pub rules: Vec<TemplateRules>,
242 #[serde(skip_serializing_if = "Option::is_none")]
243 pub longpollid: Option<String>,
244 #[serde(skip_serializing_if = "Option::is_none")]
245 pub data: Option<String>,
246}
247
248#[derive(Copy, Clone, PartialEq, Eq, Debug, Deserialize, Serialize)]
250#[serde(rename_all = "lowercase")]
251pub enum TemplateRules {
252 Segwit,
254 Signet,
256 Csv,
258 Taproot,
260}