mirror of
https://github.com/Routstr/routstr-core.git
synced 2026-08-11 11:47:50 +00:00
A foreign mint's melt fee_reserve is a non-binding estimate (NUT-05): the mint may demand more on the real quote or reject the melt outright (e.g. mint.cubabitcoin.org charging input fees beyond its quote). Instead of padding the estimate with a safety buffer that strands funds at the foreign mint on every swap, retry the mint-quote/melt-quote/melt cycle (max 3 attempts) with the amount recomputed from the fees the mint actually demands. Melt failures are classified by the NUT-00 error code (11005 registered TransactionUnbalanced as sent by cdk, 11000 nutshell's generic TransactionError): fee-related rejections retry, others (e.g. 20004 Lightning payment failed) surface immediately. Nutshell's Provided/needed amounts refine the retry step when present; otherwise shrink by 1. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>