bitcoind_json_rpc_client/client_sync/v17/
mod.rs

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