Skip to main content

AdvancedRpcClient

Struct AdvancedRpcClient 

Source
pub struct AdvancedRpcClient {
    pub config: AdvancedRpcConfig,
    /* private fields */
}
Expand description

Advanced Bitcoin Core RPC client.

Wraps reqwest::Client and handles JSON-RPC v1 authentication, request serialization, and error handling for advanced operations.

Fields§

§config: AdvancedRpcConfig

Client configuration

Implementations§

Source§

impl AdvancedRpcClient

Source

pub fn new(config: AdvancedRpcConfig) -> Self

Create a new AdvancedRpcClient from the given configuration.

Source

pub async fn import_descriptors( &self, requests: Vec<DescriptorImportRequest>, ) -> Result<Vec<Value>, BitcoinError>

Import one or more output descriptors into the wallet.

Calls importdescriptors (Bitcoin Core 0.21+).

Source

pub async fn list_descriptors( &self, private: bool, ) -> Result<Vec<DescriptorInfo>, BitcoinError>

List all descriptors in the wallet.

Calls listdescriptors. Set private to true to include private keys.

Source

pub async fn get_block_template(&self) -> Result<BlockTemplate, BitcoinError>

Retrieve a block template for mining.

Calls getblocktemplate with SegWit rules enabled.

Source

pub async fn submit_block( &self, hex_data: &str, ) -> Result<Option<String>, BitcoinError>

Submit a new block to the network.

Calls submitblock. Returns None on success, or an error string.

Source

pub async fn prioritise_transaction( &self, txid: &str, fee_delta: i64, ) -> Result<bool, BitcoinError>

Assign a higher or lower priority to a mempool transaction.

Calls prioritisetransaction. Returns true on success.

Source

pub async fn get_mempool_entry(&self, txid: &str) -> Result<Value, BitcoinError>

Retrieve detailed mempool information for a specific transaction.

Calls getmempoolentry.

Source

pub async fn get_block_height(&self) -> Result<u32, BitcoinError>

Retrieve the current block height.

Calls getblockcount.

Source

pub async fn get_peer_info(&self) -> Result<Vec<NetworkPeerInfo>, BitcoinError>

Get peer information from the node.

Calls getpeerinfo and returns a list of NetworkPeerInfo records.

Source

pub async fn add_node( &self, node: &str, command: &str, ) -> Result<(), BitcoinError>

Add or remove a node connection.

command must be one of "add", "remove", or "onetry". Calls addnode.

Source

pub async fn disconnect_node(&self, node: &str) -> Result<(), BitcoinError>

Disconnect from a peer by its network address or numeric node id.

Calls disconnectnode.

Source

pub async fn send_raw_message( &self, peer_id: u64, message_type: &str, data: Option<&str>, ) -> Result<SendMessageResult, BitcoinError>

Send a raw P2P message to a peer.

peer_id is the node id from getpeerinfo. message_type is the P2P message type (e.g. "ping", "mempool"). data is an optional hex-encoded payload.

Bitcoin Core does not expose a generic “sendmessage” RPC, so this method models the call as a ping for ping-type messages and as a no-op success for others, returning a SendMessageResult indicating outcome.

Source

pub async fn get_net_totals(&self) -> Result<Value, BitcoinError>

Get network traffic statistics.

Calls getnettotals and returns the raw JSON value.

Trait Implementations§

Source§

impl Debug for AdvancedRpcClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more