sbtc withdrawal does not use dust amount
friedger opened this issue · 1 comments
What version of Stacks.js are you using?
"sbtc": "^0.1.8"
Describe the bug
Calling sbtcWithdrawHelper
results in a btc tx with 3 outputs where the second spends the total amount.
How to reproduce
Follow the tutorial on https://stacks-network.github.io/sbtc-docs/withdrawal.html
and call
const tx = await sbtcWithdrawHelper({
sbtcWalletAddress,
bitcoinAddress: btcAddress,
amountSats: total,
signature,
feeRate: await helper.estimateFeeRate('low'),
utxos,
bitcoinChangeAddress: btcAddress,
fulfillmentFeeSats: 2000,
});
Expected behavior
Second output should be a dust value
as described in https://github.com/stacks-network/sbtc/blob/main/sbtc-core/src/operations/op_return/withdrawal_request.rs#L287C22-L287C43
Got it, thanks for the report. I had been using the same serialization from the bridge-lib earlier, but only the dust amount was withdrawn, so I assumed this was the right way of doing things. This way I got the withdraw to work on devenv 😬
fyi, I heard you were asking about helper methods eg. for fetching balance. See the tests/ folder in the sbtc package. (They are not runnable as a whole test-suite right now, but more are a collection of runnable snippets helpful for the sbtc devenv flow)