selectUtxos

Select UTXOs using smallest-first algorithm.

Algorithm:

  1. Start with empty selection and zero sum

  2. For each UTXO (in ascending value order):

    • Add UTXO to selection

    • Add UTXO value to sum

    • If sum >= required amount, stop and return success

  3. If reached end without sufficient funds, return failure

Example:

Required: 100
Available UTXOs: [10, 25, 50, 75, 100]

Selection process:
- Add 10 → sum = 10 (< 100, continue)
- Add 25 → sum = 35 (< 100, continue)
- Add 50 → sum = 85 (< 100, continue)
- Add 75 → sum = 160 (>= 100, STOP!)

Result: [10, 25, 50, 75], change = 60

Return

SelectionResult.Success with selected UTXOs, or InsufficientFunds

Parameters

availableUtxos

Available UTXOs (must be sorted by value ASC)

requiredAmount

Amount needed (in smallest units)