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