Struct bitcoin::BitcoinCore

source ·
pub struct BitcoinCore { /* private fields */ }

Implementations§

source§

impl BitcoinCore

source

pub async fn sync(&self) -> Result<(), Error>

Wait indefinitely for the node to sync.

source

pub async fn wallet_has_public_key( &self, public_key: PublicKey ) -> Result<bool, Error>

source

pub async fn import_private_key(&self, privkey: PrivateKey) -> Result<(), Error>

source

pub async fn wait_for_rescan(&self) -> Result<(), Error>

Trait Implementations§

source§

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,

Wait for a specified height to return a BlockHash or exit on error.

Arguments
  • height - block height to fetch
  • num_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,

Get the tip of the main chain as reported by Bitcoin core.

source§

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>

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,

Get the raw transaction identified by Txid and stored in the specified block.

Arguments
  • txid - transaction ID
  • block_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,

Get the raw transaction identified by Txid and stored in the specified block.

Arguments
  • txid - transaction ID
  • block_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,

Get the merkle proof which can be used to validate transaction inclusion.

Arguments
  • txid - transaction ID
  • block_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,

Get the block hash for a given height.

Arguments
  • height - block height
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,

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,

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,

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,

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,

Waits for the required number of confirmations, and collects data about the transaction

Arguments
  • txid - transaction ID
  • num_confirmations - how many confirmations we need to wait for
  • block_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,

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 fund
  • sat - number of Satoshis to transfer
  • fee_rate - fee rate in sat/vbyte
  • request_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,

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 fund
  • sat - number of Satoshis to transfer
  • request_id - the issue/redeem/replace id for which this transfer is being made
  • fee_rate - fee rate in sat/vbyte
  • num_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,

Create or load a wallet on Bitcoin Core.

source§

fn get_utxo_count(&self) -> Result<usize, Error>

Get the number of unspent transaction outputs.

source§

fn network(&self) -> Network

source§

fn dump_derivation_key( &self, public_key: &PublicKey ) -> Result<PrivateKey, Error>

source§

fn import_derivation_key(&self, private_key: &PrivateKey) -> Result<(), Error>

source§

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,

source§

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,

source§

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,

source§

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,

source§

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,

source§

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,

source§

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,

source§

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,

source§

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,

source§

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,

source§

fn is_full_node(&self) -> bool

source§

impl Clone for BitcoinCore

source§

fn clone(&self) -> BitcoinCore

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> Twhere Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> DynClone for Twhere T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

const: unstable · 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 Twhere U: From<T>,

const: unstable · 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.

§

impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,

§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

§

impl<T> Pipe for Twhere T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,

Borrows 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,

Mutably borrows 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,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>(&'a mut self, func: impl FnOnce(&'a mut T) -> R) -> Rwhere Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,

Immutable access to the 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,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,

Immutable access to the 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,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .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,

Calls .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,

Calls .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,

Calls .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,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
§

impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

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

§

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
§

impl<T> JsonSchemaMaybe for T