Struct bitcoin::BitcoinCore
source · pub struct BitcoinCore { /* private fields */ }
Implementations§
source§impl BitcoinCore
impl BitcoinCore
pub async fn wallet_has_public_key( &self, public_key: PublicKey ) -> Result<bool, Error>
pub async fn import_private_key(&self, privkey: PrivateKey) -> Result<(), Error>
pub async fn wait_for_rescan(&self) -> Result<(), Error>
Trait Implementations§
source§impl BitcoinCoreApi for BitcoinCore
impl BitcoinCoreApi for BitcoinCore
source§fn wait_for_block<'life0, 'async_trait>(
&'life0 self,
height: u32,
num_confirmations: u32
) -> Pin<Box<dyn Future<Output = Result<Block, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn wait_for_block<'life0, 'async_trait>( &'life0 self, height: u32, num_confirmations: u32 ) -> Pin<Box<dyn Future<Output = Result<Block, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Wait for a specified height to return a BlockHash
or
exit on error.
Arguments
height
- block height to fetchnum_confirmations
- minimum for a block to be accepted
source§fn get_block_count<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_block_count<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get the tip of the main chain as reported by Bitcoin core.
source§fn get_balance(&self, min_confirmations: Option<u32>) -> Result<Amount, Error>
fn get_balance(&self, min_confirmations: Option<u32>) -> Result<Amount, Error>
Get wallet balance.
source§fn list_transactions(
&self,
max_count: Option<usize>
) -> Result<Vec<ListTransactionResult>, Error>
fn list_transactions( &self, max_count: Option<usize> ) -> Result<Vec<ListTransactionResult>, Error>
List the transaction in the wallet. max_count
sets a limit on the amount of transactions returned.
If none is provided, DEFAULT_MAX_TX_COUNT
is used, which is an arbitrarily picked big number to
effectively return all transactions.
source§fn get_raw_tx<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
txid: &'life1 Txid,
block_hash: &'life2 BlockHash
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_raw_tx<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, txid: &'life1 Txid, block_hash: &'life2 BlockHash ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,
Get the raw transaction identified by Txid
and stored
in the specified block.
Arguments
txid
- transaction IDblock_hash
- hash of the block tx is stored in
source§fn get_transaction<'life0, 'life1, 'async_trait>(
&'life0 self,
txid: &'life1 Txid,
block_hash: Option<BlockHash>
) -> Pin<Box<dyn Future<Output = Result<Transaction, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_transaction<'life0, 'life1, 'async_trait>( &'life0 self, txid: &'life1 Txid, block_hash: Option<BlockHash> ) -> Pin<Box<dyn Future<Output = Result<Transaction, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Get the raw transaction identified by Txid
and stored
in the specified block.
Arguments
txid
- transaction IDblock_hash
- hash of the block tx is stored in
source§fn get_proof<'life0, 'life1, 'async_trait>(
&'life0 self,
txid: Txid,
block_hash: &'life1 BlockHash
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_proof<'life0, 'life1, 'async_trait>( &'life0 self, txid: Txid, block_hash: &'life1 BlockHash ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Get the merkle proof which can be used to validate transaction inclusion.
Arguments
txid
- transaction IDblock_hash
- hash of the block tx is stored in
source§fn get_block_hash<'life0, 'async_trait>(
&'life0 self,
height: u32
) -> Pin<Box<dyn Future<Output = Result<BlockHash, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_block_hash<'life0, 'async_trait>( &'life0 self, height: u32 ) -> Pin<Box<dyn Future<Output = Result<BlockHash, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
source§fn get_new_address<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<Address, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_new_address<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<Address, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Gets a new address from the wallet
source§fn get_new_public_key<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<PublicKey, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_new_public_key<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<PublicKey, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Gets a new public key for an address in the wallet
source§fn add_new_deposit_key<'life0, 'async_trait>(
&'life0 self,
public_key: PublicKey,
secret_key: Vec<u8>
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn add_new_deposit_key<'life0, 'async_trait>( &'life0 self, public_key: PublicKey, secret_key: Vec<u8> ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Derive and import the private key for the master public key and public secret
source§fn get_mempool_transactions<'a, 'async_trait>(
&'a self
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Iterator<Item = Result<Transaction, Error>> + Send + 'a>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
fn get_mempool_transactions<'a, 'async_trait>( &'a self ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Iterator<Item = Result<Transaction, Error>> + Send + 'a>, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'a: 'async_trait,
Get the transactions that are currently in the mempool. Since impl trait
is not
allowed within trait method, we have to use trait objects.
source§fn wait_for_transaction_metadata<'life0, 'async_trait>(
&'life0 self,
txid: Txid,
num_confirmations: u32,
block_hash: Option<BlockHash>,
is_wallet: bool
) -> Pin<Box<dyn Future<Output = Result<TransactionMetadata, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn wait_for_transaction_metadata<'life0, 'async_trait>( &'life0 self, txid: Txid, num_confirmations: u32, block_hash: Option<BlockHash>, is_wallet: bool ) -> Pin<Box<dyn Future<Output = Result<TransactionMetadata, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Waits for the required number of confirmations, and collects data about the transaction
Arguments
txid
- transaction IDnum_confirmations
- how many confirmations we need to wait forblock_hash
- optional block hash
source§fn create_and_send_transaction<'life0, 'async_trait>(
&'life0 self,
address: Address,
sat: u64,
fee_rate: SatPerVbyte,
request_id: Option<H256>
) -> Pin<Box<dyn Future<Output = Result<Txid, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_and_send_transaction<'life0, 'async_trait>( &'life0 self, address: Address, sat: u64, fee_rate: SatPerVbyte, request_id: Option<H256> ) -> Pin<Box<dyn Future<Output = Result<Txid, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Send an amount of Bitcoin to an address, but only submit the transaction to the mempool; this method does not wait until the block is included in the blockchain.
Arguments
address
- Bitcoin address to fundsat
- number of Satoshis to transferfee_rate
- fee rate in sat/vbyterequest_id
- the issue/redeem/replace id for which this transfer is being made
source§fn send_to_address<'life0, 'async_trait>(
&'life0 self,
address: Address,
sat: u64,
request_id: Option<H256>,
fee_rate: SatPerVbyte,
num_confirmations: u32
) -> Pin<Box<dyn Future<Output = Result<TransactionMetadata, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn send_to_address<'life0, 'async_trait>( &'life0 self, address: Address, sat: u64, request_id: Option<H256>, fee_rate: SatPerVbyte, num_confirmations: u32 ) -> Pin<Box<dyn Future<Output = Result<TransactionMetadata, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Send an amount of Bitcoin to an address and wait until it is included in the blockchain with the requested number of confirmations.
Arguments
address
- Bitcoin address to fundsat
- number of Satoshis to transferrequest_id
- the issue/redeem/replace id for which this transfer is being madefee_rate
- fee rate in sat/vbytenum_confirmations
- how many confirmations we need to wait for
source§fn create_or_load_wallet<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_or_load_wallet<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Create or load a wallet on Bitcoin Core.
source§fn get_utxo_count(&self) -> Result<usize, Error>
fn get_utxo_count(&self) -> Result<usize, Error>
Get the number of unspent transaction outputs.
fn network(&self) -> Network
fn dump_derivation_key( &self, public_key: &PublicKey ) -> Result<PrivateKey, Error>
fn import_derivation_key(&self, private_key: &PrivateKey) -> Result<(), Error>
fn get_best_block_hash<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<BlockHash, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
fn get_pruned_height<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
fn get_block<'life0, 'life1, 'async_trait>( &'life0 self, hash: &'life1 BlockHash ) -> Pin<Box<dyn Future<Output = Result<Block, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
fn get_block_header<'life0, 'life1, 'async_trait>( &'life0 self, hash: &'life1 BlockHash ) -> Pin<Box<dyn Future<Output = Result<BlockHeader, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
fn bump_fee<'life0, 'life1, 'async_trait>( &'life0 self, txid: &'life1 Txid, address: Address, fee_rate: SatPerVbyte ) -> Pin<Box<dyn Future<Output = Result<Txid, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
fn rescan_blockchain<'life0, 'async_trait>( &'life0 self, start_height: usize, end_height: usize ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
fn rescan_electrs_for_addresses<'life0, 'async_trait>( &'life0 self, addresses: Vec<Address> ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
fn is_in_mempool<'life0, 'async_trait>( &'life0 self, txid: Txid ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
fn fee_rate<'life0, 'async_trait>( &'life0 self, txid: Txid ) -> Pin<Box<dyn Future<Output = Result<SatPerVbyte, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
fn get_tx_for_op_return<'life0, 'async_trait>( &'life0 self, _address: Address, _amount: u128, _data: H256 ) -> Pin<Box<dyn Future<Output = Result<Option<Txid>, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
fn is_full_node(&self) -> bool
source§impl Clone for BitcoinCore
impl Clone for BitcoinCore
source§fn clone(&self) -> BitcoinCore
fn clone(&self) -> BitcoinCore
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for BitcoinCore
impl Send for BitcoinCore
impl Sync for BitcoinCore
impl Unpin for BitcoinCore
impl !UnwindSafe for BitcoinCore
Blanket Implementations§
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where &'a Self: for<'a> IntoIterator,
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> ⓘ
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> Rwhere Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere Self: AsMut<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_mut()
into the pipe
function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.