Fix ZEC ZIP-317 max-gas/fee

Summary

  • Align ZEC fee logic with ZIP-317 (including shielded outbounds)
  • Ensure proving params are present in Bifrost containers
  • Make the consolidation simulation actor wallet-aware to avoid false failures on insufficient funds

What Changed

  • .dockerignore: allow ci/zcash-params/** in build context.
  • build/docker/Dockerfile: copy Zcash params to /root/.zcash-params/ in bifrost image.
  • Add CalculateZip317Fee(...) with destination-aware output classification (transparent/TEX/Sapling/Orchard/UA) and optional Rust cross-check.
  • Expose Rust zip317_fee(...) for cross-check option.
  • Improve Sapling params state logging for diagnostics.
  • Make ZEC max-gas shielded-aware.
  • Simulation Consolidate actor donation amount is now 1% of selected wallet balance (not pool depth) to avoid false failures on insufficient funds

Notes

  • This MR intentionally keeps max-gas conservative for shielded destinations to avoid capping signer-estimated ZIP-317 fees below required values.

Summary by CodeRabbit

Release Notes

  • New Features

    • Introduced ZIP-317 fee calculation API with address-aware fee estimation supporting transparent and shielded transaction types.
  • Improvements

    • Enhanced fee estimation logic for shielded Zcash transactions with more robust fallback mechanisms.
    • Unified fee calculation across client operations for consistent transaction fee handling.
  • Chores

    • Optimized Sapling parameter loading to on-demand initialization instead of pre-building into the container image.
Edited by Ghost User

Merge request reports

Loading
Loading