Trait bdk::wallet::coin_selection::CoinSelectionAlgorithm[][src]

pub trait CoinSelectionAlgorithm<D: Database>: Debug {
    fn coin_select(
        database: &D,
        required_utxos: Vec<WeightedUtxo>,
        optional_utxos: Vec<WeightedUtxo>,
        fee_rate: FeeRate,
        amount_needed: u64,
        fee_amount: u64
    ) -> Result<CoinSelectionResult, Error>; }
Expand description

Trait for generalized coin selection algorithms

This trait can be implemented to make the Wallet use a customized coin selection algorithm when it creates transactions.

For an example see this module’s documentation.

Required methods

Perform the coin selection

  • database: a reference to the wallet’s database that can be used to lookup additional details for a specific UTXO
  • required_utxos: the utxos that must be spent regardless of amount_needed with their weight cost
  • optional_utxos: the remaining available utxos to satisfy amount_needed with their weight cost
  • fee_rate: fee rate to use
  • amount_needed: the amount in satoshi to select
  • fee_amount: the amount of fees in satoshi already accumulated from adding outputs and the transaction’s header