The FewestCoinSelector class provides a coin selection algorithm that selects the fewest UTXOs required to meet the target amount. This algorithm is useful for minimizing the size of the transaction and the fees associated with it. This class is a sub-class of AbstractCoinSelector | AbstractCoinSelector and implements the AbstractCoinSelector.performSelection | performSelection method to provide the actual coin selection logic.

Extends

  • AbstractCoinSelector

Constructors

new FewestCoinSelector()

new FewestCoinSelector(availableUTXOs): FewestCoinSelector
Constructs a new AbstractCoinSelector instance with an empty UTXO array.

Parameters

ParameterTypeDefault value
availableUTXOsUTXO[][]

Returns

FewestCoinSelector

Inherited from

AbstractCoinSelector.constructor

Source

transaction/abstract-coinselector.ts:61

Methods

decreaseFee()

decreaseFee(feeReduction): SelectedCoinsResult
Decreases the fee by removing inputs if possible and adjusting change outputs.

Parameters

ParameterTypeDescription
feeReductionbigintThe amount by which the fee has decreased.

Returns

SelectedCoinsResult

Source

transaction/coinselector-fewest.ts:280

increaseFee()

increaseFee(additionalFeeNeeded): SelectedCoinsResult
Increases the total fee by first reducing change outputs, then selecting additional inputs if necessary.

Parameters

ParameterTypeDescription
additionalFeeNeededbigintThe additional fee needed.

Returns

SelectedCoinsResult Returns true if successful, false if insufficient funds.

Source

transaction/coinselector-fewest.ts:226

performSelection()

performSelection(config): SelectedCoinsResult
Performs coin selection to meet the target amount plus fee, using the smallest possible denominations and minimizing the number of inputs and outputs.

Parameters

ParameterType
configCoinSelectionConfig

Returns

SelectedCoinsResult The selected UTXOs and outputs.

Overrides

AbstractCoinSelector.performSelection

Source

transaction/coinselector-fewest.ts:24