pub struct Client(/* private fields */);Expand description
Bitcoin Core RPC client. Thread-safe and cheap to clone.
Implementations§
Source§impl Client
impl Client
Sourcepub fn get_block_count(&self) -> Result<u64, Error>
pub fn get_block_count(&self) -> Result<u64, Error>
Returns the numbers of block in the longest chain.
Sourcepub fn get_last_height(&self) -> Result<Height, Error>
pub fn get_last_height(&self) -> Result<Height, Error>
Returns the numbers of block in the longest chain.
pub fn get_block<'a, H>(&self, hash: &'a H) -> Result<Block, Error>
pub fn get_block_info<'a, H>( &self, hash: &'a H, ) -> Result<GetBlockVerboseOne, Error>
pub fn get_block_header<'a, H>(&self, hash: &'a H) -> Result<Header, Error>
pub fn get_block_header_info<'a, H>( &self, hash: &'a H, ) -> Result<GetBlockHeaderVerbose, Error>
pub fn get_block_hash<H>(&self, height: H) -> Result<BlockHash, Error>
Sourcepub fn get_block_hashes_range<H1, H2>(
&self,
start: H1,
end: H2,
) -> Result<Vec<BlockHash>, Error>
pub fn get_block_hashes_range<H1, H2>( &self, start: H1, end: H2, ) -> Result<Vec<BlockHash>, Error>
Get every canonical block hash for the inclusive height range
start..=end in a single JSON-RPC batch request. Returns hashes
in canonical order (start, start+1, …, end). Use this
whenever resolving more than ~2 heights — one HTTP round-trip
beats N sequential get_block_hash calls once the per-call
overhead dominates.
pub fn get_tx_out( &self, txid: &Txid, vout: Vout, include_mempool: Option<bool>, ) -> Result<Option<GetTxOut>, Error>
pub fn get_raw_mempool(&self) -> Result<Vec<Txid>, Error>
pub fn get_raw_transaction<'a, T>( &self, txid: &'a T, ) -> Result<Transaction, Error>
pub fn get_raw_transaction_from<'a, T, H>( &self, txid: &'a T, block_hash: &'a H, ) -> Result<Transaction, Error>
pub fn get_raw_transaction_hex<'a, T>( &self, txid: &'a T, ) -> Result<String, Error>
pub fn get_raw_transaction_hex_from<'a, T, H>( &self, txid: &'a T, block_hash: &'a H, ) -> Result<String, Error>
pub fn get_mempool_raw_tx(&self, txid: &Txid) -> Result<Transaction, Error>
Sourcepub fn get_raw_transactions(
&self,
txids: &[Txid],
) -> Result<HashMap<Txid, Transaction, FxBuildHasher>, Error>
pub fn get_raw_transactions( &self, txids: &[Txid], ) -> Result<HashMap<Txid, Transaction, FxBuildHasher>, Error>
Batched getrawtransaction over a slice of txids. Returns a map keyed
by txid containing the deserialized tx. Individual failures (e.g. a
tx that evicted between the listing and this call) are logged and
dropped so a single bad entry doesn’t kill the batch.
Chunked at BATCH_CHUNK requests per round-trip.
pub fn send_raw_transaction(&self, hex: &str) -> Result<Txid, Error>
Sourcepub fn fetch_mempool_state(
&self,
) -> Result<(MempoolState, Vec<BlockTemplateTx>), Error>
pub fn fetch_mempool_state( &self, ) -> Result<(MempoolState, Vec<BlockTemplateTx>), Error>
Core’s projected next block + live mempool txid set +
mempoolminfee, fetched in a single bitcoind round-trip. GBT
carries each tx’s full body and stats, so block 0 is exact even
when a tx vanishes from the mempool listing between the GBT and
getrawmempool calls; no follow-up entry fetch can race it.
Returns the passthrough MempoolState and the raw
block_template (consumed downstream by GBT synthesis), in one
batched round-trip: getblocktemplate + getrawmempool false
getmempoolinfo.
Sourcepub fn fetch_new_pool_data(
&self,
txids: &[Txid],
) -> Result<(Vec<MempoolEntryInfo>, HashMap<Txid, Transaction, FxBuildHasher>), Error>
pub fn fetch_new_pool_data( &self, txids: &[Txid], ) -> Result<(Vec<MempoolEntryInfo>, HashMap<Txid, Transaction, FxBuildHasher>), Error>
Mixed batch of getmempoolentry + getrawtransaction for the
same txid set in one round-trip. Returns the entries vec and the
raw-tx map keyed by txid. Per-item -5 (NOT_FOUND — tx evicted
between the listing and this call) drops silently for either leg;
transport-level failures still propagate. Chunked at BATCH_CHUNK
txids per round-trip (2× that on the wire).
pub fn get_closest_valid_height( &self, hash: BlockHash, ) -> Result<(Height, BlockHash), Error>
pub fn get_blockchain_info(&self) -> Result<GetBlockchainInfo, Error>
Sourcepub fn get_network(&self) -> Result<Network, Error>
pub fn get_network(&self) -> Result<Network, Error>
Bitcoin network the connected node is running on, derived from
getblockchaininfo.chain.
pub fn wait_for_synced_node(&self) -> Result<(), Error>
Source§impl Client
impl Client
pub fn new(url: &str, auth: Auth) -> Result<Client, Error>
pub fn new_with( url: &str, auth: Auth, max_retries: usize, retry_delay: Duration, ) -> Result<Client, Error>
pub fn default_url() -> &'static str
pub fn default_bitcoin_path() -> PathBuf
pub fn default_linux_bitcoin_path() -> PathBuf
pub fn default_mac_bitcoin_path() -> PathBuf
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Client
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnsafeUnpin for Client
impl !UnwindSafe for Client
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more