Skip to content

Commit c6c9372

Browse files
authored
Merge pull request rust-bitcoin#85 from tcharding/03-10-control
Add support for all control methods
2 parents c6a073c + 6c285d0 commit c6c9372

File tree

48 files changed

+573
-326
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+573
-326
lines changed

client/src/client_sync/v17/control.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
//!
1010
//! See or use the `define_jsonrpc_minreq_client!` macro to define a `Client`.
1111
12-
/// Implements Bitcoin Core JSON-RPC API method `getmemory`
12+
/// Implements Bitcoin Core JSON-RPC API method `getmemoryinfo`.
1313
#[macro_export]
1414
macro_rules! impl_client_v17__getmemoryinfo {
1515
() => {
@@ -21,7 +21,17 @@ macro_rules! impl_client_v17__getmemoryinfo {
2121
};
2222
}
2323

24-
/// Implements Bitcoin Core JSON-RPC API method `logging`
24+
/// Implements Bitcoin Core JSON-RPC API method `help`.
25+
#[macro_export]
26+
macro_rules! impl_client_v17__help {
27+
() => {
28+
impl Client {
29+
pub fn help(&self) -> Result<String> { self.call("help", &[]) }
30+
}
31+
};
32+
}
33+
34+
/// Implements Bitcoin Core JSON-RPC API method `logging`.
2535
#[macro_export]
2636
macro_rules! impl_client_v17__logging {
2737
() => {
@@ -31,7 +41,7 @@ macro_rules! impl_client_v17__logging {
3141
};
3242
}
3343

34-
/// Implements Bitcoin Core JSON-RPC API method `stop`
44+
/// Implements Bitcoin Core JSON-RPC API method `stop`.
3545
#[macro_export]
3646
macro_rules! impl_client_v17__stop {
3747
() => {
@@ -41,7 +51,7 @@ macro_rules! impl_client_v17__stop {
4151
};
4252
}
4353

44-
/// Implements Bitcoin Core JSON-RPC API method `uptime`
54+
/// Implements Bitcoin Core JSON-RPC API method `uptime`.
4555
#[macro_export]
4656
macro_rules! impl_client_v17__uptime {
4757
() => {

client/src/client_sync/v17/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ crate::impl_client_v17__verifytxoutproof!();
7878

7979
// == Control ==
8080
crate::impl_client_v17__getmemoryinfo!();
81+
crate::impl_client_v17__help!();
8182
crate::impl_client_v17__logging!();
8283
crate::impl_client_v17__stop!();
8384
crate::impl_client_v17__uptime!();
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//! Macros for implementing JSON-RPC methods on a client.
2+
//!
3+
//! Specifically this is methods found under the `== Control ==` section of the
4+
//! API docs of Bitcoin Core `v0.18`.
5+
//!
6+
//! All macros require `Client` to be in scope.
7+
//!
8+
//! See or use the `define_jsonrpc_minreq_client!` macro to define a `Client`.
9+
10+
/// Implements Bitcoin Core JSON-RPC API method `getrpcinfo`.
11+
#[macro_export]
12+
macro_rules! impl_client_v18__getrpcinfo {
13+
() => {
14+
impl Client {
15+
pub fn get_rpc_info(&self) -> Result<GetRpcInfo> { self.call("getrpcinfo", &[]) }
16+
}
17+
};
18+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
//!
55
//! We ignore option arguments unless they effect the shape of the returned JSON data.
66
7+
pub mod control;
8+
79
use std::path::Path;
810

911
use bitcoin::address::{Address, NetworkChecked};
@@ -41,6 +43,8 @@ crate::impl_client_v17__verifytxoutproof!();
4143

4244
// == Control ==
4345
crate::impl_client_v17__getmemoryinfo!();
46+
crate::impl_client_v18__getrpcinfo!();
47+
crate::impl_client_v17__help!();
4448
crate::impl_client_v17__logging!();
4549
crate::impl_client_v17__stop!();
4650
crate::impl_client_v17__uptime!();

client/src/client_sync/v19/mod.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ crate::impl_client_v17__gettxoutsetinfo!();
3737
crate::impl_client_v17__verifytxoutproof!();
3838

3939
// == Control ==
40+
crate::impl_client_v17__getmemoryinfo!();
41+
crate::impl_client_v18__getrpcinfo!();
42+
crate::impl_client_v17__help!();
43+
crate::impl_client_v17__logging!();
4044
crate::impl_client_v17__stop!();
45+
crate::impl_client_v17__uptime!();
4146

4247
// == Generating ==
4348
crate::impl_client_v17__generatetoaddress!();

client/src/client_sync/v20.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ crate::impl_client_v17__gettxoutsetinfo!();
3737
crate::impl_client_v17__verifytxoutproof!();
3838

3939
// == Control ==
40+
crate::impl_client_v17__getmemoryinfo!();
41+
crate::impl_client_v18__getrpcinfo!();
42+
crate::impl_client_v17__help!();
43+
crate::impl_client_v17__logging!();
4044
crate::impl_client_v17__stop!();
45+
crate::impl_client_v17__uptime!();
4146

4247
// == Generating ==
4348
crate::impl_client_v17__generatetoaddress!();

client/src/client_sync/v21.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ crate::impl_client_v17__gettxoutsetinfo!();
3737
crate::impl_client_v17__verifytxoutproof!();
3838

3939
// == Control ==
40+
crate::impl_client_v17__getmemoryinfo!();
41+
crate::impl_client_v18__getrpcinfo!();
42+
crate::impl_client_v17__help!();
43+
crate::impl_client_v17__logging!();
4044
crate::impl_client_v17__stop!();
45+
crate::impl_client_v17__uptime!();
4146

4247
// == Generating ==
4348
crate::impl_client_v17__generatetoaddress!();

client/src/client_sync/v22/mod.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ crate::impl_client_v17__gettxoutsetinfo!();
3737
crate::impl_client_v17__verifytxoutproof!();
3838

3939
// == Control ==
40+
crate::impl_client_v17__getmemoryinfo!();
41+
crate::impl_client_v18__getrpcinfo!();
42+
crate::impl_client_v17__help!();
43+
crate::impl_client_v17__logging!();
4044
crate::impl_client_v17__stop!();
45+
crate::impl_client_v17__uptime!();
4146

4247
// == Generating ==
4348
crate::impl_client_v17__generatetoaddress!();

client/src/client_sync/v23.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,12 @@ crate::impl_client_v17__gettxoutsetinfo!();
3535
crate::impl_client_v17__verifytxoutproof!();
3636

3737
// == Control ==
38+
crate::impl_client_v17__getmemoryinfo!();
39+
crate::impl_client_v18__getrpcinfo!();
40+
crate::impl_client_v17__help!();
41+
crate::impl_client_v17__logging!();
3842
crate::impl_client_v17__stop!();
43+
crate::impl_client_v17__uptime!();
3944

4045
// == Generating ==
4146
crate::impl_client_v17__generatetoaddress!();

client/src/client_sync/v24.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ crate::impl_client_v17__gettxoutsetinfo!();
3737
crate::impl_client_v17__verifytxoutproof!();
3838

3939
// == Control ==
40+
crate::impl_client_v17__getmemoryinfo!();
41+
crate::impl_client_v18__getrpcinfo!();
42+
crate::impl_client_v17__help!();
43+
crate::impl_client_v17__logging!();
4044
crate::impl_client_v17__stop!();
45+
crate::impl_client_v17__uptime!();
4146

4247
// == Generating ==
4348
crate::impl_client_v17__generatetoaddress!();

0 commit comments

Comments
 (0)