File tree Expand file tree Collapse file tree 26 files changed +67
-13
lines changed
Expand file tree Collapse file tree 26 files changed +67
-13
lines changed Original file line number Diff line number Diff line change 1+ // SPDX-License-Identifier: CC0-1.0
2+
3+ //! Macros for implementing JSON-RPC methods on a client.
4+ //!
5+ //! Specifically this is methods found under the `== Mining ==` section of the
6+ //! API docs of Bitcoin Core `v0.18`.
7+ //!
8+ //! All macros require `Client` to be in scope.
9+ //!
10+ //! See or use the `define_jsonrpc_minreq_client!` macro to define a `Client`.
11+
12+ /// Implements Bitcoin Core JSON-RPC API method `submitheader`.
13+ #[ macro_export]
14+ macro_rules! impl_client_v18__submit_header {
15+ ( ) => {
16+ impl Client {
17+ pub fn submit_header( & self , header: & bitcoin:: block:: Header ) -> Result <( ) > {
18+ let hexdata = bitcoin:: consensus:: encode:: serialize_hex( header) ;
19+ match self . call( "submitheader" , & [ hexdata. into( ) ] ) {
20+ Ok ( serde_json:: Value :: Null ) => Ok ( ( ) ) ,
21+ Ok ( res) => Err ( Error :: Returned ( res. to_string( ) ) ) ,
22+ Err ( err) => Err ( err. into( ) ) ,
23+ }
24+ }
25+ }
26+ } ;
27+ }
Original file line number Diff line number Diff line change 55//! We ignore option arguments unless they effect the shape of the returned JSON data.
66
77pub mod control;
8+ pub mod mining;
89pub mod network;
910pub mod raw_transactions;
1011pub mod util;
@@ -74,6 +75,7 @@ crate::impl_client_v17__get_mining_info!();
7475crate :: impl_client_v17__get_network_hashes_per_second!( ) ;
7576crate :: impl_client_v17__prioritise_transaction!( ) ;
7677crate :: impl_client_v17__submit_block!( ) ;
78+ crate :: impl_client_v18__submit_header!( ) ;
7779
7880// == Network ==
7981crate :: impl_client_v17__add_node!( ) ;
Original file line number Diff line number Diff line change @@ -71,6 +71,7 @@ crate::impl_client_v17__get_mining_info!();
7171crate :: impl_client_v17__get_network_hashes_per_second!( ) ;
7272crate :: impl_client_v17__prioritise_transaction!( ) ;
7373crate :: impl_client_v17__submit_block!( ) ;
74+ crate :: impl_client_v18__submit_header!( ) ;
7475
7576// == Network ==
7677crate :: impl_client_v17__add_node!( ) ;
Original file line number Diff line number Diff line change @@ -68,6 +68,7 @@ crate::impl_client_v17__get_mining_info!();
6868crate :: impl_client_v17__get_network_hashes_per_second!( ) ;
6969crate :: impl_client_v17__prioritise_transaction!( ) ;
7070crate :: impl_client_v17__submit_block!( ) ;
71+ crate :: impl_client_v18__submit_header!( ) ;
7172
7273// == Network ==
7374crate :: impl_client_v17__add_node!( ) ;
Original file line number Diff line number Diff line change @@ -70,6 +70,7 @@ crate::impl_client_v17__get_mining_info!();
7070crate :: impl_client_v17__get_network_hashes_per_second!( ) ;
7171crate :: impl_client_v17__prioritise_transaction!( ) ;
7272crate :: impl_client_v17__submit_block!( ) ;
73+ crate :: impl_client_v18__submit_header!( ) ;
7374
7475// == Network ==
7576crate :: impl_client_v17__add_node!( ) ;
Original file line number Diff line number Diff line change @@ -70,6 +70,7 @@ crate::impl_client_v17__get_mining_info!();
7070crate :: impl_client_v17__get_network_hashes_per_second!( ) ;
7171crate :: impl_client_v17__prioritise_transaction!( ) ;
7272crate :: impl_client_v17__submit_block!( ) ;
73+ crate :: impl_client_v18__submit_header!( ) ;
7374
7475// == Network ==
7576crate :: impl_client_v17__add_node!( ) ;
Original file line number Diff line number Diff line change @@ -72,6 +72,7 @@ crate::impl_client_v17__get_mining_info!();
7272crate :: impl_client_v17__get_network_hashes_per_second!( ) ;
7373crate :: impl_client_v17__prioritise_transaction!( ) ;
7474crate :: impl_client_v17__submit_block!( ) ;
75+ crate :: impl_client_v18__submit_header!( ) ;
7576
7677// == Network ==
7778crate :: impl_client_v17__add_node!( ) ;
Original file line number Diff line number Diff line change @@ -69,6 +69,7 @@ crate::impl_client_v17__get_mining_info!();
6969crate :: impl_client_v17__get_network_hashes_per_second!( ) ;
7070crate :: impl_client_v17__prioritise_transaction!( ) ;
7171crate :: impl_client_v17__submit_block!( ) ;
72+ crate :: impl_client_v18__submit_header!( ) ;
7273
7374// == Network ==
7475crate :: impl_client_v17__add_node!( ) ;
Original file line number Diff line number Diff line change @@ -69,6 +69,7 @@ crate::impl_client_v17__get_mining_info!();
6969crate :: impl_client_v17__get_network_hashes_per_second!( ) ;
7070crate :: impl_client_v17__prioritise_transaction!( ) ;
7171crate :: impl_client_v17__submit_block!( ) ;
72+ crate :: impl_client_v18__submit_header!( ) ;
7273
7374// == Network ==
7475crate :: impl_client_v17__add_node!( ) ;
Original file line number Diff line number Diff line change @@ -74,6 +74,7 @@ crate::impl_client_v17__get_network_hashes_per_second!();
7474crate :: impl_client_v26__get_prioritised_transactions!( ) ;
7575crate :: impl_client_v17__prioritise_transaction!( ) ;
7676crate :: impl_client_v17__submit_block!( ) ;
77+ crate :: impl_client_v18__submit_header!( ) ;
7778
7879// == Network ==
7980crate :: impl_client_v17__add_node!( ) ;
You can’t perform that action at this time.
0 commit comments