|
| 1 | +// SPDX-License-Identifier: CC0-1.0 |
| 2 | + |
| 3 | +//! A JSON-RPC client for testing against Bitcoin Core `v30`. |
| 4 | +//! |
| 5 | +//! We ignore option arguments unless they effect the shape of the returned JSON data. |
| 6 | +
|
| 7 | +use std::collections::BTreeMap; |
| 8 | +use std::path::Path; |
| 9 | + |
| 10 | +use bitcoin::address::{Address, NetworkChecked}; |
| 11 | +use bitcoin::{sign_message, Amount, Block, BlockHash, PublicKey, Txid}; |
| 12 | +use serde_json::json; |
| 13 | + |
| 14 | +use crate::client_sync::into_json; |
| 15 | +use crate::types::v30::*; |
| 16 | + |
| 17 | +#[rustfmt::skip] // Keep public re-exports separate. |
| 18 | +pub use crate::client_sync::{ |
| 19 | + v17::{AddNodeCommand, ImportMultiRequest, ImportMultiScriptPubKey, ImportMultiTimestamp, Input, Output, SetBanCommand, WalletCreateFundedPsbtInput,}, |
| 20 | + v21::ImportDescriptorsRequest, |
| 21 | + v23::AddressType, |
| 22 | + v29::{TemplateRequest, TemplateRules} |
| 23 | +}; |
| 24 | + |
| 25 | +crate::define_jsonrpc_minreq_client!("v30"); |
| 26 | +crate::impl_client_check_expected_server_version!({ [300000] }); |
| 27 | + |
| 28 | +// == Blockchain == |
| 29 | +crate::impl_client_v29__dump_tx_out_set!(); |
| 30 | +crate::impl_client_v17__get_best_block_hash!(); |
| 31 | +crate::impl_client_v17__get_block!(); |
| 32 | +crate::impl_client_v17__get_blockchain_info!(); |
| 33 | +crate::impl_client_v17__get_block_count!(); |
| 34 | +crate::impl_client_v19__get_block_filter!(); |
| 35 | +crate::impl_client_v23__get_block_from_peer!(); |
| 36 | +crate::impl_client_v17__get_block_hash!(); |
| 37 | +crate::impl_client_v17__get_block_header!(); |
| 38 | +crate::impl_client_v17__get_block_stats!(); |
| 39 | +crate::impl_client_v26__get_chain_states!(); |
| 40 | +crate::impl_client_v17__get_chain_tips!(); |
| 41 | +crate::impl_client_v17__get_chain_tx_stats!(); |
| 42 | +crate::impl_client_v23__get_deployment_info!(); |
| 43 | +crate::impl_client_v29__get_descriptor_activity!(); |
| 44 | +crate::impl_client_v17__get_difficulty!(); |
| 45 | +crate::impl_client_v17__get_mempool_ancestors!(); |
| 46 | +crate::impl_client_v17__get_mempool_descendants!(); |
| 47 | +crate::impl_client_v17__get_mempool_entry!(); |
| 48 | +crate::impl_client_v17__get_mempool_info!(); |
| 49 | +crate::impl_client_v17__get_raw_mempool!(); |
| 50 | +crate::impl_client_v17__get_tx_out!(); |
| 51 | +crate::impl_client_v17__get_tx_out_proof!(); |
| 52 | +crate::impl_client_v26__get_tx_out_set_info!(); |
| 53 | +crate::impl_client_v24__get_tx_spending_prevout!(); |
| 54 | +crate::impl_client_v26__import_mempool!(); |
| 55 | +crate::impl_client_v17__precious_block!(); |
| 56 | +crate::impl_client_v17__prune_blockchain!(); |
| 57 | +crate::impl_client_v23__save_mempool!(); |
| 58 | +crate::impl_client_v25__scan_blocks!(); |
| 59 | +crate::impl_client_v17__verify_chain!(); |
| 60 | +crate::impl_client_v17__verify_tx_out_proof!(); |
| 61 | + |
| 62 | +// == Control == |
| 63 | +crate::impl_client_v17__get_memory_info!(); |
| 64 | +crate::impl_client_v18__get_rpc_info!(); |
| 65 | +crate::impl_client_v17__help!(); |
| 66 | +crate::impl_client_v17__logging!(); |
| 67 | +crate::impl_client_v17__stop!(); |
| 68 | +crate::impl_client_v17__uptime!(); |
| 69 | + |
| 70 | +// == Generating == |
| 71 | +crate::impl_client_v25__generate_block!(); |
| 72 | +crate::impl_client_v17__generate_to_address!(); |
| 73 | +crate::impl_client_v20__generate_to_descriptor!(); |
| 74 | +crate::impl_client_v17__invalidate_block!(); |
| 75 | + |
| 76 | +// == Hidden == |
| 77 | +crate::impl_client_v21__add_peer_address!(); |
| 78 | + |
| 79 | +// == Mining == |
| 80 | +crate::impl_client_v17__get_block_template!(); |
| 81 | +crate::impl_client_v17__get_mining_info!(); |
| 82 | +crate::impl_client_v17__get_network_hashes_per_second!(); |
| 83 | +crate::impl_client_v26__get_prioritised_transactions!(); |
| 84 | +crate::impl_client_v17__prioritise_transaction!(); |
| 85 | +crate::impl_client_v17__submit_block!(); |
| 86 | +crate::impl_client_v18__submit_header!(); |
| 87 | + |
| 88 | +// == Network == |
| 89 | +crate::impl_client_v17__add_node!(); |
| 90 | +crate::impl_client_v17__clear_banned!(); |
| 91 | +crate::impl_client_v17__disconnect_node!(); |
| 92 | +crate::impl_client_v17__get_added_node_info!(); |
| 93 | +crate::impl_client_v26__get_addr_man_info!(); |
| 94 | +crate::impl_client_v17__get_connection_count!(); |
| 95 | +crate::impl_client_v17__get_net_totals!(); |
| 96 | +crate::impl_client_v17__get_network_info!(); |
| 97 | +crate::impl_client_v18__get_node_addresses!(); |
| 98 | +crate::impl_client_v17__get_peer_info!(); |
| 99 | +crate::impl_client_v17__list_banned!(); |
| 100 | +crate::impl_client_v17__ping!(); |
| 101 | +crate::impl_client_v17__set_ban!(); |
| 102 | +crate::impl_client_v17__set_network_active!(); |
| 103 | + |
| 104 | +// == Rawtransactions == |
| 105 | +crate::impl_client_v18__analyze_psbt!(); |
| 106 | +crate::impl_client_v17__combine_psbt!(); |
| 107 | +crate::impl_client_v17__combine_raw_transaction!(); |
| 108 | +crate::impl_client_v17__convert_to_psbt!(); |
| 109 | +crate::impl_client_v17__create_psbt!(); |
| 110 | +crate::impl_client_v17__create_raw_transaction!(); |
| 111 | +crate::impl_client_v17__decode_psbt!(); |
| 112 | +crate::impl_client_v17__decode_raw_transaction!(); |
| 113 | +crate::impl_client_v17__decode_script!(); |
| 114 | +crate::impl_client_v17__finalize_psbt!(); |
| 115 | +crate::impl_client_v17__fund_raw_transaction!(); |
| 116 | +crate::impl_client_v17__get_raw_transaction!(); |
| 117 | +crate::impl_client_v18__join_psbts!(); |
| 118 | +crate::impl_client_v17__send_raw_transaction!(); |
| 119 | +crate::impl_client_v17__sign_raw_transaction!(); |
| 120 | +crate::impl_client_v17__sign_raw_transaction_with_key!(); |
| 121 | +crate::impl_client_v28__submit_package!(); |
| 122 | +crate::impl_client_v17__test_mempool_accept!(); |
| 123 | +crate::impl_client_v18__utxo_update_psbt!(); |
| 124 | + |
| 125 | +// == Signer == |
| 126 | +crate::impl_client_v22__enumerate_signers!(); |
| 127 | + |
| 128 | +// == Util == |
| 129 | +crate::impl_client_v17__create_multisig!(); |
| 130 | +crate::impl_client_v29__derive_addresses!(); |
| 131 | +crate::impl_client_v17__estimate_smart_fee!(); |
| 132 | +crate::impl_client_v18__get_descriptor_info!(); |
| 133 | +crate::impl_client_v21__get_index_info!(); |
| 134 | +crate::impl_client_v17__sign_message_with_priv_key!(); |
| 135 | +crate::impl_client_v17__validate_address!(); |
| 136 | +crate::impl_client_v17__verify_message!(); |
| 137 | + |
| 138 | +// == Wallet == |
| 139 | +crate::impl_client_v17__abandon_transaction!(); |
| 140 | +crate::impl_client_v17__abort_rescan!(); |
| 141 | +crate::impl_client_v17__add_multisig_address!(); |
| 142 | +crate::impl_client_v17__backup_wallet!(); |
| 143 | +crate::impl_client_v17__bump_fee!(); |
| 144 | +crate::impl_client_v23__create_wallet!(); |
| 145 | +crate::impl_client_v28__create_wallet_descriptor!(); |
| 146 | +crate::impl_client_v17__dump_priv_key!(); |
| 147 | +crate::impl_client_v17__dump_wallet!(); |
| 148 | +crate::impl_client_v17__encrypt_wallet!(); |
| 149 | +crate::impl_client_v17__get_addresses_by_label!(); |
| 150 | +crate::impl_client_v17__get_address_info!(); |
| 151 | +crate::impl_client_v17__get_balance!(); |
| 152 | +crate::impl_client_v19__get_balances!(); |
| 153 | +crate::impl_client_v28__get_hd_keys!(); |
| 154 | +crate::impl_client_v18__get_received_by_label!(); |
| 155 | +crate::impl_client_v17__get_new_address!(); |
| 156 | +crate::impl_client_v17__get_raw_change_address!(); |
| 157 | +crate::impl_client_v17__get_received_by_address!(); |
| 158 | +crate::impl_client_v17__get_transaction!(); |
| 159 | +crate::impl_client_v17__get_unconfirmed_balance!(); |
| 160 | +crate::impl_client_v17__get_wallet_info!(); |
| 161 | +crate::impl_client_v17__import_address!(); |
| 162 | +crate::impl_client_v21__import_descriptors!(); |
| 163 | +crate::impl_client_v17__import_multi!(); |
| 164 | +crate::impl_client_v17__import_privkey!(); |
| 165 | +crate::impl_client_v17__import_pruned_funds!(); |
| 166 | +crate::impl_client_v17__import_pubkey!(); |
| 167 | +crate::impl_client_v17__import_wallet!(); |
| 168 | +crate::impl_client_v17__key_pool_refill!(); |
| 169 | +crate::impl_client_v17__list_address_groupings!(); |
| 170 | +crate::impl_client_v22__list_descriptors!(); |
| 171 | +crate::impl_client_v18__list_received_by_label!(); |
| 172 | +crate::impl_client_v17__list_labels!(); |
| 173 | +crate::impl_client_v17__list_lock_unspent!(); |
| 174 | +crate::impl_client_v17__list_received_by_address!(); |
| 175 | +crate::impl_client_v17__list_since_block!(); |
| 176 | +crate::impl_client_v17__list_transactions!(); |
| 177 | +crate::impl_client_v17__list_unspent!(); |
| 178 | +crate::impl_client_v18__list_wallet_dir!(); |
| 179 | +crate::impl_client_v17__list_wallets!(); |
| 180 | +crate::impl_client_v22__load_wallet!(); |
| 181 | +crate::impl_client_v17__lock_unspent!(); |
| 182 | +crate::impl_client_v24__migrate_wallet!(); |
| 183 | +crate::impl_client_v23__new_keypool!(); |
| 184 | +crate::impl_client_v21__psbt_bump_fee!(); |
| 185 | +crate::impl_client_v17__remove_pruned_funds!(); |
| 186 | +crate::impl_client_v17__rescan_blockchain!(); |
| 187 | +crate::impl_client_v23__restore_wallet!(); |
| 188 | +crate::impl_client_v21__send!(); |
| 189 | +crate::impl_client_v24__send_all!(); |
| 190 | +crate::impl_client_v17__send_many!(); |
| 191 | +crate::impl_client_v21__send_many_verbose!(); |
| 192 | +crate::impl_client_v17__send_to_address!(); |
| 193 | +crate::impl_client_v17__set_hd_seed!(); |
| 194 | +crate::impl_client_v17__set_tx_fee!(); |
| 195 | +crate::impl_client_v19__set_wallet_flag!(); |
| 196 | +crate::impl_client_v17__sign_message!(); |
| 197 | +crate::impl_client_v17__sign_raw_transaction_with_wallet!(); |
| 198 | +crate::impl_client_v24__simulate_raw_transaction!(); |
| 199 | +crate::impl_client_v21__unload_wallet!(); |
| 200 | +crate::impl_client_v21__upgrade_wallet!(); |
| 201 | +crate::impl_client_v17__wallet_create_funded_psbt!(); |
| 202 | +crate::impl_client_v22__wallet_display_address!(); |
| 203 | +crate::impl_client_v17__wallet_lock!(); |
| 204 | +crate::impl_client_v17__wallet_passphrase!(); |
| 205 | +crate::impl_client_v17__wallet_passphrase_change!(); |
| 206 | +crate::impl_client_v17__wallet_process_psbt!(); |
| 207 | + |
| 208 | +// == Zmq == |
| 209 | +crate::impl_client_v17__get_zmq_notifications!(); |
0 commit comments