stacks-network / sbtc-developer-release

sBTC primitives, signer components, helper tools
https://sbtc.tech
MIT License
1.98k stars 23 forks source link

Implement batching multiple UTXOs to a single UTXO consolidation logic transaction #411

Open soju-drinker opened 10 months ago

soju-drinker commented 10 months ago

Description

When a deposit transaction is picked up from the reveal service during polling, there needs to be a secondary tx initiated by the stackers that consolidates the currently existing UTXO in the peg wallet with the deposit UTXO. This can be generalized into a batching transaction that consolidates multiple deposit UTXOs + peg UTXO into one UTXO in a single transaction.

Context / Purpose

Our peg wallet design necessitates only one UTXO at all times, as detailed in this document. This issue actually implements the mechanism to achieve that

Steps

  1. Generate a new BTC tx consolidating all the polled deposits or (a max limit number) whichever is lower
  2. If not all polled UTXOs were batched in step 1, repeat step 1 multiple times when the first transaction is in the pending mempool in BTC

Artifacts / Acceptance Criteria