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 fee and newer fees.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.Uint units.
  • Remove unused Dash InstantSend max_lock_age config.
  • Preserve explicit zero min_fee_rate_sat_per_vbyte while defaulting negative values to the policy default.
  • Set Dash default min_fee_rate_sat_per_vbyte to 8 for 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

Merge request reports

Loading
Loading