bitcoind_json_rpc_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::{handle_defaults, into_json};
12use crate::json::v23::*;
13
14crate::define_jsonrpc_minreq_client!("v23");
15
16// == Blockchain ==
17crate::impl_client_v17__getblockchaininfo!();
18crate::impl_client_v17__getbestblockhash!();
19crate::impl_client_v17__getblock!();
20crate::impl_client_v17__gettxout!();
21
22// == Control ==
23crate::impl_client_v17__stop!();
24
25// == Generating ==
26crate::impl_client_v17__generatetoaddress!();
27
28// == Network ==
29crate::impl_client_v17__getnetworkinfo!();
30crate::impl_client_check_expected_server_version!({ [230000, 230100, 230200] });
31
32// == Rawtransactions ==
33crate::impl_client_v17__sendrawtransaction!();
34
35// == Wallet ==
36crate::impl_client_v17__createwallet!();
37crate::impl_client_v22__unloadwallet!();
38crate::impl_client_v22__loadwallet!();
39crate::impl_client_v17__getbalance!();
40crate::impl_client_v19__getbalances!();
41crate::impl_client_v17__getnewaddress!();
42crate::impl_client_v17__sendtoaddress!();
43crate::impl_client_v17__gettransaction!();
44
45/// Argument to the `Client::get_new_address_with_type` function.
46#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
47#[serde(rename_all = "kebab-case")]
48pub enum AddressType {
49    Legacy,
50    P2shSegwit,
51    Bech32,
52    Bech32m,
53}
54
55impl fmt::Display for AddressType {
56    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
57        use AddressType::*;
58
59        let s = match *self {
60            Legacy => "legacy",
61            P2shSegwit => "p2sh-segwit",
62            Bech32 => "bech32",
63            Bech32m => "bech32m",
64        };
65        fmt::Display::fmt(s, f)
66    }
67}