Loading
Harden UTXO amount handling and Dash InstantSend policy
Summary
This MR hardens UTXO output amount checks across BTC, DASH, and ZEC, and tightens Dash InstantSend policy handling around fee rates, USD thresholds, and simulation behavior.
Supersedes !711 (closed).
Changes
- Convert BTC, DASH, and ZEC output values to native amount types before zero-value checks.
- Use float helper functions instead of direct float comparisons where relevant.
- Fix BTC signer fallback fee logic to use cached vbytes.
- Parse Dash mempool fee data from both legacy
feeand newerfees.base. - Compare Dash InstantSend fee policy in millisats/vbyte to support fractional thresholds without float comparison drift.
- Keep Dash InstantSend USD policy checks in integer
cosmos.Uintunits. - Remove unused Dash InstantSend
max_lock_ageconfig. - Preserve explicit zero
min_fee_rate_sat_per_vbytewhile defaulting negative values to the policy default. - Set Dash default
min_fee_rate_sat_per_vbyteto8for current Maya policy parity. - Add tests for Dash fee-rate conversion and zero min-fee default behavior.
- Fix mocknet Dash shutdown pid typo and remove stale trunk ignore.
Summary by CodeRabbit
-
Bug Fixes
- More robust transaction-output validation across Bitcoin, Dash, and Zcash to avoid misinterpreting zero-value outputs and improve InstantSend decisions.
- Improved InstantSend mempool fee-rate handling, policy gating, and lock processing for more reliable behavior.
- Fixed shutdown handling in Dash test network tooling.
-
Configuration Changes
- Dash InstantSend min fee-rate default set to 8; obsolete max_lock_age removed; explicit zero preserved as “disabled”.
-
Tests
- Added/updated tests for Dash mempool fee-rate, InstantSend boundaries, and DASH inbound quote confirmations.
-
Chores
- Simulation and helper scripts simplified to streamline InstantSend observations.
Edited by Ghost User