DustCoinSelector

class DustCoinSelector @Inject constructor

Selects dust coins for fee payment using smallest-first strategy.

Strategy: Smallest-First

  • Sorts coins by value (ascending)

  • Selects smallest coins until sum >= required fee

  • Minimizes UTXO fragmentation

  • Matches midnight-ledger's coin selection strategy

Benefits:

  • Keeps large UTXOs intact for future large transactions

  • Reduces dust fragmentation over time

  • Better privacy (smaller outputs less traceable)

Example:

Available: [1 Dust, 3 Dust, 10 Dust, 50 Dust]
Required: 12 Dust
Selected: [1 Dust, 3 Dust, 10 Dust] = 14 Dust
Change: 2 Dust (returned as new UTXO)

See also

/midnight-wallet/packages/dust-wallet/src/CoinSelection.ts (TypeScript SDK reference)

Constructors

Link copied to clipboard
@Inject
constructor()

Types

Link copied to clipboard
data class CoinSelectionResult(val selectedCoins: List<DustTokenEntity>, val totalValue: BigInteger, val change: BigInteger)

Result of coin selection.

Functions

Link copied to clipboard
fun selectCoins(availableCoins: List<DustTokenEntity>, requiredFee: BigInteger, currentTimeMillis: Long = System.currentTimeMillis()): DustCoinSelector.CoinSelectionResult

Selects coins to cover required fee.

Link copied to clipboard

Validates coin selection result.