Struct ExtendedBitcoinRpc

pub struct ExtendedBitcoinRpc {
    url: String,
    client: Arc<Client>,
    retry_config: RetryConfig,
    cached_mining_address: Arc<RwLock<Option<String>>>,
}
Expand description

Bitcoin RPC wrapper with retry logic.

Provides useful wrapper functions for common operations, as well as direct access to Bitcoin RPC through the RpcApi trait.

Fields§

§url: String§client: Arc<Client>§retry_config: RetryConfig§cached_mining_address: Arc<RwLock<Option<String>>>

Implementations§

§

impl ExtendedBitcoinRpc

pub async fn connect( url: String, user: SecretBox<str>, password: SecretBox<str>, retry_config: Option<RetryConfig>, ) -> Result<ExtendedBitcoinRpc, BitcoinRPCError>

Connects to Bitcoin RPC server with built-in retry mechanism.

This method attempts to connect to the Bitcoin RPC server and creates a new ExtendedBitcoinRpc instance. It includes retry logic that will retry connection attempts for retryable errors using exponential backoff.

§Parameters
  • url - The RPC server URL
  • user - Username for RPC authentication
  • password - Password for RPC authentication
  • retry_config - Optional retry configuration. If None, uses default config.
§Returns
  • [Result<ExtendedBitcoinRpc>]: A new ExtendedBitcoinRpc instance on success
§Errors
  • BitcoinRPCError: If connection fails after all retry attempts or ping fails

pub fn url(&self) -> &str

Returns the URL of the RPC server.

pub fn retry_config(&self) -> &RetryConfig

Returns a reference to the retry configuration.

pub fn client(&self) -> &Client

Returns a reference to the inner client.

pub async fn get_new_wallet_address(&self) -> Result<Address, BitcoinRPCError>

Generates a new Bitcoin address for the wallet.

pub async fn confirmation_blocks( &self, txid: &Txid, ) -> Result<u32, BitcoinRPCError>

Returns the number of confirmations for a transaction.

§Parameters
  • txid: TXID of the transaction to check.
§Returns
  • u32: The number of confirmations for the transaction.
§Errors
  • BitcoinRPCError: If the transaction is not confirmed (0) or if there was an error retrieving the transaction info.

pub async fn get_current_chain_height(&self) -> Result<u32, BitcoinRPCError>

Retrieves the current blockchain height (number of blocks).

§Returns
  • u32: Current block height

pub async fn get_blockhash_of_tx( &self, txid: &Txid, ) -> Result<BlockHash, BitcoinRPCError>

Returns block hash of a transaction, if confirmed.

§Parameters
  • txid: TXID of the transaction to check.
§Returns
  • [bitcoin::BlockHash]: Block hash of the block that the transaction is in.
§Errors
  • BitcoinRPCError: If the transaction is not confirmed (0) or if there was an error retrieving the transaction info.

pub async fn get_block_info_by_height( &self, height: u64, ) -> Result<(BlockHash, Header), BitcoinRPCError>

Retrieves the block header and hash for a given block height.

§Arguments
  • height: Target block height.
§Returns
  • ([bitcoin::BlockHash], [bitcoin::block::Header]): A tuple containing the block hash and header.

pub async fn get_prevout_txs( &self, tx: &Transaction, ) -> Result<Vec<Transaction>, BitcoinRPCError>

Gets the transactions that created the inputs of a given transaction.

§Arguments
  • tx - The transaction to get the previous transactions for
§Returns

A vector of transactions that created the inputs of the given transaction.

pub async fn get_tx_of_txid( &self, txid: &Txid, ) -> Result<Transaction, BitcoinRPCError>

Gets the transaction data for a given transaction ID.

§Parameters
  • txid: TXID of the transaction to check.
§Returns
  • [bitcoin::Transaction]: Transaction itself.

pub async fn is_tx_on_chain(&self, txid: &Txid) -> Result<bool, BitcoinRPCError>

Checks if a transaction is on-chain.

§Parameters
  • txid: TXID of the transaction to check.
§Returns
  • bool: true if the transaction is on-chain, false otherwise.

pub async fn check_utxo_address_and_amount( &self, outpoint: &OutPoint, address: &ScriptBuf, amount_sats: Amount, ) -> Result<bool, BitcoinRPCError>

Checks if a transaction UTXO has expected address and amount.

§Parameters
  • outpoint - The outpoint to check
  • address - Expected script pubkey
  • amount_sats - Expected amount in satoshis
§Returns
  • bool: true if the UTXO has the expected address and amount, false otherwise.

pub async fn is_utxo_spent( &self, outpoint: &OutPoint, ) -> Result<bool, BitcoinRPCError>

Checks if an UTXO is spent.

§Parameters
  • outpoint: The outpoint to check
§Returns
  • bool: true if the UTXO is spent, false otherwise.
§Errors
  • BitcoinRPCError: If the transaction is not confirmed or if there was an error retrieving the transaction output.

pub async fn mine_blocks( &self, block_num: u64, ) -> Result<Vec<BlockHash>, BitcoinRPCError>

Attempts to mine the specified number of blocks and returns their hashes.

This test-only async function will mine block_num blocks on the Bitcoin regtest network using a cached mining address or a newly generated one. It retries up to 5 times on failure with exponential backoff.

§Parameters
  • block_num: The number of blocks to mine.
§Returns
  • Ok(Vec<BlockHash>): A vector of block hashes for the mined blocks.
  • Err: If mining fails after all retry attempts.

pub async fn mempool_size(&self) -> Result<usize, BitcoinRPCError>

Gets the number of transactions in the mempool.

§Returns
  • usize: The number of transactions in the mempool.

pub async fn send_to_address( &self, address: &Address, amount_sats: Amount, ) -> Result<OutPoint, BitcoinRPCError>

Sends a specified amount of Bitcoins to the given address.

§Parameters
  • address - The recipient address
  • amount_sats - The amount to send in satoshis
§Returns
  • [OutPoint]: The outpoint (txid and vout) of the newly created output.

pub async fn get_txout_from_outpoint( &self, outpoint: &OutPoint, ) -> Result<TxOut, BitcoinRPCError>

Retrieves the transaction output for a given outpoint.

§Arguments
  • outpoint - The outpoint (txid and vout) to retrieve
§Returns
  • [TxOut]: The transaction output at the specified outpoint.

pub async fn bump_fee_with_fee_rate( &self, txid: Txid, fee_rate: FeeRate, ) -> Result<Txid, BitcoinRPCError>

Bumps the fee of a transaction to meet or exceed a target fee rate. Does nothing if the transaction is already confirmed. Returns the original txid if no bump was needed.

This function implements Replace-By-Fee (RBF) to increase the fee of an unconfirmed transaction. It works as follows:

  1. If the transaction is already confirmed, returns Err(TransactionAlreadyInBlock)
  2. If the current fee rate is already >= the requested fee rate, returns the original txid
  3. Otherwise, increases the fee rate by adding the node’s incremental fee to the current fee rate, then bump_fees the transaction

Note: This function currently only supports fee payer TXs.

§Arguments
  • txid - The transaction ID to bump
  • fee_rate - The target fee rate to achieve
§Returns
  • [Txid]: The txid of the bumped transaction (which may be the same as the input txid if no bump was needed).
§Errors
  • TransactionAlreadyInBlock - If the transaction is already confirmed
  • BumpFeeUTXOSpent - If the UTXO being spent by the transaction is already spent
  • BumpFeeError - For other errors with fee bumping

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

Creates a new instance of the ExtendedBitcoinRpc with a new client connection for cloning. This is needed when you need a separate connection to the Bitcoin RPC server.

§Returns

pub async fn get_block_by_height( &self, height: u64, ) -> Result<Block, BitcoinRPCError>

Retrieves the block for a given height.

§Arguments
  • height - The target block height.
§Returns
  • [bitcoin::Block]: The block at the specified height.

pub async fn get_fee_rate( &self, network: Network, mempool_api_host: &Option<String>, mempool_api_endpoint: &Option<String>, mempool_fee_rate_multiplier: u64, mempool_fee_rate_offset_sat_kvb: u64, fee_rate_hard_cap: u64, ) -> Result<FeeRate, BitcoinRPCError>

Gets the current recommended fee rate in sat/vb from Mempool Space and Bitcoin Core and selects the minimum. For Regtest and Signet, it uses a fixed fee rate of 1 sat/vB.

§Logic
  • Regtest: Uses a fixed fee rate of 1 sat/vB for simplicity.
  • Mainnet, Testnet4 and Signet: Fetches fee rates from both Mempool Space API and Bitcoin Core RPC and takes the minimum.
  • Hard Cap: Applies a hard cap from configuration to prevent excessive fees.
§Fallbacks
  • If one source fails, it uses the other.
  • If both fail, it falls back to a default of 1 sat/vB.

Trait Implementations§

Source§

impl BridgeRpcQueries for ExtendedBitcoinRpc

Source§

fn collateral_check<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, operator_data: &'life1 OperatorData, kickoff_wpks: &'life2 KickoffWinternitzKeys, paramset: &'static ProtocolParamset, ) -> Pin<Box<dyn Future<Output = Result<bool, BridgeError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Checks if an operator’s collateral is valid and available for use. Read more
§

impl Clone for ExtendedBitcoinRpc

§

fn clone(&self) -> ExtendedBitcoinRpc

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
§

impl Debug for ExtendedBitcoinRpc

§

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

Formats the value using the given formatter. Read more
§

impl RpcApi for ExtendedBitcoinRpc

Implementation of RpcApi with retry logic for all calls.

§

fn call<'life0, 'life1, 'life2, 'async_trait, T>( &'life0 self, cmd: &'life1 str, args: &'life2 [Value], ) -> Pin<Box<dyn Future<Output = Result<T, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, T: 'async_trait + for<'a> Deserialize<'a>, ExtendedBitcoinRpc: 'async_trait,

Call a cmd rpc with given args list
§

fn get_by_id<'life0, 'life1, 'async_trait, T>( &'life0 self, id: &'life1 <T as Queryable<Self>>::Id, ) -> Pin<Box<dyn Future<Output = Result<T, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, T: 'async_trait + Queryable<Self> + Sync + Send, Self: Sync + 'async_trait,

Query an object implementing Querable type
§

fn get_network_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<GetNetworkInfoResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn get_index_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<GetIndexInfoResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn version<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<usize, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn add_multisig_address<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, nrequired: usize, keys: &'life1 [PubKeyOrAddress<'_>], label: Option<&'life2 str>, address_type: Option<AddressType>, ) -> Pin<Box<dyn Future<Output = Result<AddMultiSigAddressResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn bump_fee<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, txid: &'life1 Txid, options: Option<&'life2 BumpFeeOptions>, ) -> Pin<Box<dyn Future<Output = Result<BumpFeeResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn psbt_bump_fee<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, txid: &'life1 Txid, options: Option<&'life2 BumpFeeOptions>, ) -> Pin<Box<dyn Future<Output = Result<BumpFeeResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn load_wallet<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<LoadWalletResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn unload_wallet<'life0, 'life1, 'async_trait>( &'life0 self, wallet: Option<&'life1 str>, ) -> Pin<Box<dyn Future<Output = Result<Option<UnloadWalletResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn create_wallet<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, wallet: &'life1 str, disable_private_keys: Option<bool>, blank: Option<bool>, passphrase: Option<&'life2 str>, avoid_reuse: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<LoadWalletResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn list_wallets<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn list_wallet_dir<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn get_wallet_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<GetWalletInfoResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn backup_wallet<'life0, 'life1, 'async_trait>( &'life0 self, destination: Option<&'life1 str>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn dump_private_key<'life0, 'life1, 'async_trait>( &'life0 self, address: &'life1 Address, ) -> Pin<Box<dyn Future<Output = Result<PrivateKey, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn encrypt_wallet<'life0, 'life1, 'async_trait>( &'life0 self, passphrase: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_difficulty<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<f64, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn get_connection_count<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<usize, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + '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 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_block_hex<'life0, 'life1, 'async_trait>( &'life0 self, hash: &'life1 BlockHash, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_block_info<'life0, 'life1, 'async_trait>( &'life0 self, hash: &'life1 BlockHash, ) -> Pin<Box<dyn Future<Output = Result<GetBlockResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_block_verbose<'life0, 'life1, 'async_trait>( &'life0 self, hash: &'life1 BlockHash, ) -> Pin<Box<dyn Future<Output = Result<GetBlockVerboseResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_block_header<'life0, 'life1, 'async_trait>( &'life0 self, hash: &'life1 BlockHash, ) -> Pin<Box<dyn Future<Output = Result<Header, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_block_header_info<'life0, 'life1, 'async_trait>( &'life0 self, hash: &'life1 BlockHash, ) -> Pin<Box<dyn Future<Output = Result<GetBlockHeaderResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_mining_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<GetMiningInfoResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn get_block_template<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, mode: GetBlockTemplateModes, rules: &'life1 [GetBlockTemplateRules], capabilities: &'life2 [GetBlockTemplateCapabilities], ) -> Pin<Box<dyn Future<Output = Result<GetBlockTemplateResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn get_blockchain_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<GetBlockchainInfoResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns a data structure containing various state info regarding blockchain processing.
§

fn get_block_count<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns the numbers of block in the longest chain.
§

fn get_best_block_hash<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<BlockHash, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns the hash of the best (tip) block in the longest blockchain.
§

fn get_block_hash<'life0, 'async_trait>( &'life0 self, height: u64, ) -> Pin<Box<dyn Future<Output = Result<BlockHash, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Get block hash at a given height
§

fn get_block_stats<'life0, 'async_trait>( &'life0 self, height: u64, ) -> Pin<Box<dyn Future<Output = Result<GetBlockStatsResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn get_block_stats_fields<'life0, 'life1, 'async_trait>( &'life0 self, height: u64, fields: &'life1 [BlockStatsFields], ) -> Pin<Box<dyn Future<Output = Result<GetBlockStatsResultPartial, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_raw_transaction<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, txid: &'life1 Txid, block_hash: Option<&'life2 BlockHash>, ) -> Pin<Box<dyn Future<Output = Result<Transaction, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn get_raw_transaction_hex<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, txid: &'life1 Txid, block_hash: Option<&'life2 BlockHash>, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn get_raw_transaction_info<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, txid: &'life1 Txid, block_hash: Option<&'life2 BlockHash>, ) -> Pin<Box<dyn Future<Output = Result<GetRawTransactionResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn get_block_filter<'life0, 'life1, 'async_trait>( &'life0 self, block_hash: &'life1 BlockHash, ) -> Pin<Box<dyn Future<Output = Result<GetBlockFilterResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_balance<'life0, 'async_trait>( &'life0 self, minconf: Option<usize>, include_watchonly: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<Amount, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn get_balances<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<GetBalancesResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn get_received_by_address<'life0, 'life1, 'async_trait>( &'life0 self, address: &'life1 Address, minconf: Option<u32>, ) -> Pin<Box<dyn Future<Output = Result<Amount, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_transaction<'life0, 'life1, 'async_trait>( &'life0 self, txid: &'life1 Txid, include_watchonly: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<GetTransactionResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn list_transactions<'life0, 'life1, 'async_trait>( &'life0 self, label: Option<&'life1 str>, count: Option<usize>, skip: Option<usize>, include_watchonly: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<Vec<ListTransactionResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn list_since_block<'life0, 'life1, 'async_trait>( &'life0 self, blockhash: Option<&'life1 BlockHash>, target_confirmations: Option<usize>, include_watchonly: Option<bool>, include_removed: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<ListSinceBlockResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_tx_out<'life0, 'life1, 'async_trait>( &'life0 self, txid: &'life1 Txid, vout: u32, include_mempool: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<Option<GetTxOutResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_tx_out_proof<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, txids: &'life1 [Txid], block_hash: Option<&'life2 BlockHash>, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn import_public_key<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, pubkey: &'life1 PublicKey, label: Option<&'life2 str>, rescan: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn import_private_key<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, privkey: &'life1 PrivateKey, label: Option<&'life2 str>, rescan: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn import_address<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, address: &'life1 Address, label: Option<&'life2 str>, rescan: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn import_address_script<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, script: &'life1 Script, label: Option<&'life2 str>, rescan: Option<bool>, p2sh: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn import_multi<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, requests: &'life1 [ImportMultiRequest<'_>], options: Option<&'life2 ImportMultiOptions>, ) -> Pin<Box<dyn Future<Output = Result<Vec<ImportMultiResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn import_descriptors<'life0, 'async_trait>( &'life0 self, req: ImportDescriptors, ) -> Pin<Box<dyn Future<Output = Result<Vec<ImportMultiResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn set_label<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, address: &'life1 Address, label: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn key_pool_refill<'life0, 'async_trait>( &'life0 self, new_size: Option<usize>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn list_unspent<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, minconf: Option<usize>, maxconf: Option<usize>, addresses: Option<&'life1 [&'life2 Address]>, include_unsafe: Option<bool>, query_options: Option<ListUnspentQueryOptions>, ) -> Pin<Box<dyn Future<Output = Result<Vec<ListUnspentResultEntry>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn lock_unspent<'life0, 'life1, 'async_trait>( &'life0 self, outputs: &'life1 [OutPoint], ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

To unlock, use [unlock_unspent].
§

fn unlock_unspent<'life0, 'life1, 'async_trait>( &'life0 self, outputs: &'life1 [OutPoint], ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn unlock_unspent_all<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Unlock all unspent UTXOs.
§

fn list_received_by_address<'life0, 'life1, 'async_trait>( &'life0 self, address_filter: Option<&'life1 Address>, minconf: Option<u32>, include_empty: Option<bool>, include_watchonly: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<Vec<ListReceivedByAddressResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn create_psbt<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, inputs: &'life1 [CreateRawTransactionInput], outputs: &'life2 HashMap<String, Amount>, locktime: Option<i64>, replaceable: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn create_raw_transaction_hex<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, utxos: &'life1 [CreateRawTransactionInput], outs: &'life2 HashMap<String, Amount>, locktime: Option<i64>, replaceable: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn create_raw_transaction<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, utxos: &'life1 [CreateRawTransactionInput], outs: &'life2 HashMap<String, Amount>, locktime: Option<i64>, replaceable: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<Transaction, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

§

fn decode_raw_transaction<'life0, 'async_trait, R>( &'life0 self, tx: R, is_witness: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<DecodeRawTransactionResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, R: 'async_trait + RawTx, Self: Sync + 'async_trait,

§

fn fund_raw_transaction<'life0, 'life1, 'async_trait, R>( &'life0 self, tx: R, options: Option<&'life1 FundRawTransactionOptions>, is_witness: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<FundRawTransactionResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, R: 'async_trait + RawTx, Self: Sync + 'async_trait,

§

fn sign_raw_transaction<'life0, 'life1, 'life2, 'async_trait, R>( &'life0 self, tx: R, utxos: Option<&'life1 [SignRawTransactionInput]>, private_keys: Option<&'life2 [PrivateKey]>, sighash_type: Option<SigHashType>, ) -> Pin<Box<dyn Future<Output = Result<SignRawTransactionResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, R: 'async_trait + RawTx, Self: Sync + 'async_trait,

👎Deprecated
§

fn sign_raw_transaction_with_wallet<'life0, 'life1, 'async_trait, R>( &'life0 self, tx: R, utxos: Option<&'life1 [SignRawTransactionInput]>, sighash_type: Option<SigHashType>, ) -> Pin<Box<dyn Future<Output = Result<SignRawTransactionResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, R: 'async_trait + RawTx, Self: Sync + 'async_trait,

§

fn sign_raw_transaction_with_key<'life0, 'life1, 'life2, 'async_trait, R>( &'life0 self, tx: R, privkeys: &'life1 [PrivateKey], prevtxs: Option<&'life2 [SignRawTransactionInput]>, sighash_type: Option<SigHashType>, ) -> Pin<Box<dyn Future<Output = Result<SignRawTransactionResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, R: 'async_trait + RawTx, Self: Sync + 'async_trait,

§

fn test_mempool_accept<'life0, 'life1, 'async_trait, R>( &'life0 self, rawtxs: &'life1 [R], ) -> Pin<Box<dyn Future<Output = Result<Vec<TestMempoolAcceptResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, R: 'async_trait + RawTx + Send + Sync, Self: Sync + 'async_trait,

§

fn submit_package<'life0, 'life1, 'async_trait, R>( &'life0 self, rawtxs: &'life1 [R], maxfeerate: Option<Amount>, maxburnamount: Option<Amount>, ) -> Pin<Box<dyn Future<Output = Result<PackageSubmissionResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, R: 'async_trait + RawTx + Send + Sync, Self: Sync + 'async_trait,

§

fn stop<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn verify_message<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, address: &'life1 Address, signature: &'life2 Signature, message: &'life3 str, ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, Self: Sync + 'async_trait,

§

fn get_new_address<'life0, 'life1, 'async_trait>( &'life0 self, label: Option<&'life1 str>, address_type: Option<AddressType>, ) -> Pin<Box<dyn Future<Output = Result<Address<NetworkUnchecked>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Generate new address under own control
§

fn get_raw_change_address<'life0, 'async_trait>( &'life0 self, address_type: Option<AddressType>, ) -> Pin<Box<dyn Future<Output = Result<Address<NetworkUnchecked>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Generate new address for receiving change
§

fn get_address_info<'life0, 'life1, 'async_trait>( &'life0 self, address: &'life1 Address, ) -> Pin<Box<dyn Future<Output = Result<GetAddressInfoResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn generate_to_address<'life0, 'life1, 'async_trait>( &'life0 self, block_num: u64, address: &'life1 Address, ) -> Pin<Box<dyn Future<Output = Result<Vec<BlockHash>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Mine block_num blocks and pay coinbase to address Read more
§

fn generate<'life0, 'async_trait>( &'life0 self, block_num: u64, maxtries: Option<u64>, ) -> Pin<Box<dyn Future<Output = Result<Vec<BlockHash>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Mine up to block_num blocks immediately (before the RPC call returns) to an address in the wallet.
§

fn invalidate_block<'life0, 'life1, 'async_trait>( &'life0 self, block_hash: &'life1 BlockHash, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Mark a block as invalid by block_hash
§

fn reconsider_block<'life0, 'life1, 'async_trait>( &'life0 self, block_hash: &'life1 BlockHash, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Mark a block as valid by block_hash
§

fn get_mempool_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<GetMempoolInfoResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns details on the active state of the TX memory pool
§

fn get_raw_mempool<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<Txid>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Get txids of all transactions in a memory pool
§

fn get_raw_mempool_verbose<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<HashMap<Txid, GetMempoolEntryResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Get details for the transactions in a memory pool
§

fn get_mempool_entry<'life0, 'life1, 'async_trait>( &'life0 self, txid: &'life1 Txid, ) -> Pin<Box<dyn Future<Output = Result<GetMempoolEntryResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Get mempool data for given transaction
§

fn get_chain_tips<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<GetChainTipsResultTip>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Get information about all known tips in the block tree, including the main chain as well as stale branches.
§

fn send_to_address<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, address: &'life1 Address, amount: Amount, comment: Option<&'life2 str>, comment_to: Option<&'life3 str>, subtract_fee: Option<bool>, replaceable: Option<bool>, confirmation_target: Option<u32>, estimate_mode: Option<EstimateMode>, ) -> Pin<Box<dyn Future<Output = Result<Txid, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, Self: Sync + 'async_trait,

§

fn add_node<'life0, 'life1, 'async_trait>( &'life0 self, addr: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Attempts to add a node to the addnode list. Nodes added using addnode (or -connect) are protected from DoS disconnection and are not required to be full nodes/support SegWit as other outbound peers are (though such peers will not be synced from).
§

fn remove_node<'life0, 'life1, 'async_trait>( &'life0 self, addr: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Attempts to remove a node from the addnode list.
§

fn onetry_node<'life0, 'life1, 'async_trait>( &'life0 self, addr: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Attempts to connect to a node without permanently adding it to the addnode list.
§

fn disconnect_node<'life0, 'life1, 'async_trait>( &'life0 self, addr: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Immediately disconnects from the specified peer node.
§

fn disconnect_node_by_id<'life0, 'async_trait>( &'life0 self, node_id: u32, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn get_added_node_info<'life0, 'life1, 'async_trait>( &'life0 self, node: Option<&'life1 str>, ) -> Pin<Box<dyn Future<Output = Result<Vec<GetAddedNodeInfoResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Returns information about the given added node, or all added nodes (note that onetry addnodes are not listed here)
§

fn get_node_addresses<'life0, 'async_trait>( &'life0 self, count: Option<usize>, ) -> Pin<Box<dyn Future<Output = Result<Vec<GetNodeAddressesResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Return known addresses which can potentially be used to find new nodes in the network
§

fn list_banned<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<ListBannedResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

List all banned IPs/Subnets.
§

fn clear_banned<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Clear all banned IPs.
§

fn add_ban<'life0, 'life1, 'async_trait>( &'life0 self, subnet: &'life1 str, bantime: u64, absolute: bool, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Attempts to add an IP/Subnet to the banned list.
§

fn remove_ban<'life0, 'life1, 'async_trait>( &'life0 self, subnet: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Attempts to remove an IP/Subnet from the banned list.
§

fn set_network_active<'life0, 'async_trait>( &'life0 self, state: bool, ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Disable/enable all p2p network activity.
§

fn get_peer_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<GetPeerInfoResult>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns data about each connected network node as an array of PeerInfo
§

fn ping<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Requests that a ping be sent to all other nodes, to measure ping time. Read more
§

fn send_raw_transaction<'life0, 'async_trait, R>( &'life0 self, tx: R, ) -> Pin<Box<dyn Future<Output = Result<Txid, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, R: 'async_trait + RawTx, Self: Sync + 'async_trait,

§

fn estimate_smart_fee<'life0, 'async_trait>( &'life0 self, conf_target: u16, estimate_mode: Option<EstimateMode>, ) -> Pin<Box<dyn Future<Output = Result<EstimateSmartFeeResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn wait_for_new_block<'life0, 'async_trait>( &'life0 self, timeout: u64, ) -> Pin<Box<dyn Future<Output = Result<BlockRef, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Waits for a specific new block and returns useful info about it. Returns the current block on timeout or exit. Read more
§

fn wait_for_block<'life0, 'life1, 'async_trait>( &'life0 self, blockhash: &'life1 BlockHash, timeout: u64, ) -> Pin<Box<dyn Future<Output = Result<BlockRef, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Waits for a specific new block and returns useful info about it. Returns the current block on timeout or exit. Read more
§

fn wallet_create_funded_psbt<'a, 'b, 'async_trait>( &'b self, inputs: &'b [CreateRawTransactionInput], outputs: impl Into<WalletCreateFundedPsbtOutputs> + Send + 'async_trait, locktime: Option<i64>, options: Option<WalletCreateFundedPsbtOptions>, bip32derivs: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<WalletCreateFundedPsbtResult, Error>> + Send + 'async_trait>>
where 'a: 'async_trait, 'b: 'async_trait, Self: Sync + 'async_trait,

§

fn wallet_process_psbt<'life0, 'life1, 'async_trait>( &'life0 self, psbt: &'life1 str, sign: Option<bool>, sighash_type: Option<SigHashType>, bip32derivs: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<WalletProcessPsbtResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn get_descriptor_info<'life0, 'life1, 'async_trait>( &'life0 self, desc: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<GetDescriptorInfoResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn join_psbt<'life0, 'life1, 'async_trait>( &'life0 self, psbts: &'life1 [String], ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn combine_psbt<'life0, 'life1, 'async_trait>( &'life0 self, psbts: &'life1 [String], ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn combine_raw_transaction<'life0, 'life1, 'async_trait>( &'life0 self, hex_strings: &'life1 [String], ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn finalize_psbt<'life0, 'life1, 'async_trait>( &'life0 self, psbt: &'life1 str, extract: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<FinalizePsbtResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn derive_addresses<'life0, 'life1, 'async_trait>( &'life0 self, descriptor: &'life1 str, range: Option<[u32; 2]>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Address<NetworkUnchecked>>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

§

fn rescan_blockchain<'life0, 'async_trait>( &'life0 self, start_from: Option<usize>, stop_height: Option<usize>, ) -> Pin<Box<dyn Future<Output = Result<(usize, Option<usize>), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

§

fn get_tx_out_set_info<'life0, 'async_trait>( &'life0 self, hash_type: Option<TxOutSetHashType>, hash_or_height: Option<HashOrHeight>, use_index: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<GetTxOutSetInfoResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns statistics about the unspent transaction output set. Note this call may take some time if you are not using coinstatsindex.
§

fn get_net_totals<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<GetNetTotalsResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns information about network traffic, including bytes in, bytes out, and current time.
§

fn get_network_hash_ps<'life0, 'async_trait>( &'life0 self, nblocks: Option<u64>, height: Option<u64>, ) -> Pin<Box<dyn Future<Output = Result<f64, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns the estimated network hashes per second based on the last n blocks.
§

fn uptime<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns the total uptime of the server in seconds
§

fn submit_block<'life0, 'life1, 'async_trait>( &'life0 self, block: &'life1 Block, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Submit a block
§

fn submit_block_bytes<'life0, 'life1, 'async_trait>( &'life0 self, block_bytes: &'life1 [u8], ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Submit a raw block
§

fn submit_block_hex<'life0, 'life1, 'async_trait>( &'life0 self, block_hex: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Submit a block as a hex string
§

fn scan_tx_out_set_blocking<'life0, 'life1, 'async_trait>( &'life0 self, descriptors: &'life1 [ScanTxOutRequest], ) -> Pin<Box<dyn Future<Output = Result<ScanTxOutResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> Conv for T

§

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

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

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DynClone for T
where T: Clone,

§

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

§

fn exact_from(value: T) -> U

§

impl<T, U> ExactInto<U> for T
where U: ExactFrom<T>,

§

fn exact_into(self) -> U

§

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

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

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

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<T, U> OverflowingInto<U> for T
where U: OverflowingFrom<T>,

§

fn overflowing_into(self) -> (U, bool)

§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either [OwoColorize::fg] or a color-specific method, such as [OwoColorize::green], Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either [OwoColorize::bg] or a color-specific method, such as [OwoColorize::on_yellow], Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where 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) -> R
where 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) -> R
where 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) -> R
where 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, ) -> R
where 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) -> R
where 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) -> R
where 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) -> R
where 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, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

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

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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

§

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
§

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
§

impl<T, U> RoundingInto<U> for T
where U: RoundingFrom<T>,

§

fn rounding_into(self, rm: RoundingMode) -> (U, Ordering)

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T, U> SaturatingInto<U> for T
where U: SaturatingFrom<T>,

§

fn saturating_into(self) -> U

§

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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

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

impl<T> ToDebugString for T
where T: Debug,

§

fn to_debug_string(&self) -> String

Returns the String produced by Ts Debug implementation.

§Examples
use malachite_base::strings::ToDebugString;

assert_eq!([1, 2, 3].to_debug_string(), "[1, 2, 3]");
assert_eq!(
    [vec![2, 3], vec![], vec![4]].to_debug_string(),
    "[[2, 3], [], [4]]"
);
assert_eq!(Some(5).to_debug_string(), "Some(5)");
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

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> TryClone for T
where T: Clone,

§

fn try_clone(&self) -> Result<T, Error>

Clones self, possibly returning an error.
§

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 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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T, U> WrappingInto<U> for T
where U: WrappingFrom<T>,

§

fn wrapping_into(self) -> U

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSend for T
where T: Send,