Loading
fix(xmr): recalculate migration payout after input growth
MIGRATE preparation can retain a stale payout after selecting additional inputs. The extra inputs increase the transaction fee, but the payout still includes the earlier, larger MaxGas rebate. This can cause false insufficient-funds errors or select unnecessary inputs.
Recalculate each selected input set from the original requested amount, then apply the unused-gas rebate using the updated fee. Bound payout rebuilding to two attempts and reuse the selected decoys. Preserve ordinary payout behavior, input limits, and reservation cleanup.
Validation:
- Added nine regression tests covering fee growth, limits, ordinary payouts, deterministic replay, and cleanup.
- S00(!5026) mocknet completed both XMR migrations with all five sidecars running the fixed image, passing the previous failure point. The full simulation is still running.
- All 350 unit tests and the startup integration test pass; formatting, Clippy, and dependency checks pass.
Rollout requires updating all signer sidecars together before signing resumes, since mixed versions can select different transaction plans.