corepc_client/client_sync/
v23.rs

1// SPDX-License-Identifier: CC0-1.0
2
3//! A JSON-RPC client for testing against Bitcoin Core `v23`.
4//!
5//! We ignore option arguments unless they effect the shape of the returned JSON data.
6
7use bitcoin::address::{Address, NetworkChecked};
8use bitcoin::{Amount, Block, BlockHash, Txid};
9use serde::{Deserialize, Serialize};
10
11use crate::client_sync::into_json;
12use crate::types::v23::*;
13
14crate::define_jsonrpc_minreq_client!("v23");
15
16// == Blockchain ==
17crate::impl_client_v17__getbestblockhash!();
18crate::impl_client_v17__getblock!();
19crate::impl_client_v17__getblockchaininfo!();
20crate::impl_client_v17__getblockcount!();
21crate::impl_client_v17__getblockhash!();
22crate::impl_client_v17__getblockheader!();
23crate::impl_client_v17__getblockstats!();
24crate::impl_client_v17__getchaintips!();
25crate::impl_client_v17__getchaintxstats!();
26crate::impl_client_v17__getdifficulty!();
27crate::impl_client_v19__getmempoolancestors!();
28crate::impl_client_v19__getmempooldescendants!();
29crate::impl_client_v19__getmempoolentry!();
30crate::impl_client_v17__getmempoolinfo!();
31crate::impl_client_v17__getrawmempool!();
32crate::impl_client_v22__gettxout!();
33crate::impl_client_v17__gettxoutproof!();
34crate::impl_client_v17__gettxoutsetinfo!();
35crate::impl_client_v17__verifytxoutproof!();
36
37// == Control ==
38crate::impl_client_v17__stop!();
39
40// == Generating ==
41crate::impl_client_v17__generatetoaddress!();
42crate::impl_client_v17__invalidateblock!();
43
44// == Network ==
45crate::impl_client_v17__getnetworkinfo!();
46crate::impl_client_check_expected_server_version!({ [230000, 230100, 230200] });
47
48// == Rawtransactions ==
49crate::impl_client_v17__sendrawtransaction!();
50
51// == Wallet ==
52crate::impl_client_v17__createwallet!();
53crate::impl_client_v22__unloadwallet!();
54crate::impl_client_v22__loadwallet!();
55crate::impl_client_v17__getbalance!();
56crate::impl_client_v19__getbalances!();
57crate::impl_client_v17__getnewaddress!();
58crate::impl_client_v17__sendtoaddress!();
59crate::impl_client_v17__gettransaction!();
60
61/// Argument to the `Client::get_new_address_with_type` function.
62///
63/// For Core v23 and onwards. For earlier versions use `v17::AddressType`.
64#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
65#[serde(rename_all = "kebab-case")]
66pub enum AddressType {
67    Legacy,
68    P2shSegwit,
69    Bech32,
70    Bech32m, // Field added in Core v23
71}
72
73impl fmt::Display for AddressType {
74    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
75        use AddressType::*;
76
77        let s = match *self {
78            Legacy => "legacy",
79            P2shSegwit => "p2sh-segwit",
80            Bech32 => "bech32",
81            Bech32m => "bech32m",
82        };
83        fmt::Display::fmt(s, f)
84    }
85}