Skip to content

chore: release 3.0.1 hotfix 4#3061

Closed
QuantumExplorer wants to merge 6 commits intov3.1-devfrom
fixupdate-hotfix-version
Closed

chore: release 3.0.1 hotfix 4#3061
QuantumExplorer wants to merge 6 commits intov3.1-devfrom
fixupdate-hotfix-version

Conversation

@QuantumExplorer
Copy link
Member

@QuantumExplorer QuantumExplorer commented Feb 5, 2026

Summary by CodeRabbit

  • Bug Fixes

    • Improved Let's Encrypt certificate renewal handling and validation.
    • Enhanced withdrawal validation with minimum/maximum amount bounds checking.
    • Fixed overflow guards in financial transaction processing.
    • Corrected witness validation error handling and count matching.
    • Updated DashD Docker image to version 23.
  • New Features

    • Added Let's Encrypt SSL certificate support for automatic renewal.
    • Introduced maximum P2SH signature limits enforcement.
  • Chores

    • Released version 3.0.1-hotfix.4 across all packages.
    • Updated platform address format (HRP changed from evo/tevo to dash/tdash).

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 5, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This hotfix release updates all package versions to 3.0.1-hotfix.4, upgrades the DashD Docker image from v22 to v23, and enhances validation logic by adding withdrawal amount bounds checking, implementing overflow-safe arithmetic across multiple transformers, replacing Fibonacci number validation with a non-zero variant, adding P2SH signature count limits, updating platform address HRP constants, and tracking input contributions for asset-lock funding. Extensive test coverage for edge cases and security scenarios is included throughout.

Changes

Cohort / File(s) Summary
Version Updates
CHANGELOG.md, Cargo.toml, package.json, packages/*/package.json (30+ files)
Bumped workspace and all package versions to 3.0.1-hotfix.4 (or language-equivalent). Added changelog entries documenting hotfix releases. No functional logic changes.
DashD Docker Image Upgrade
packages/dashmate/configs/defaults/getBaseConfigFactory.js, packages/dashmate/configs/getConfigFileMigrationsFactory.js
Updated DashD Docker image tag from dashpay/dashd:22 to dashpay/dashd:23 and added config migration entry 3.0.1 to update image for all existing configurations.
Platform Address and HRP Changes
packages/rs-dpp/src/address_funds/platform_address.rs
Changed public HRP constants from "evo"/"tevo" to "dash"/"tdash"; updated bech32m encoding/decoding logic, type bytes, and comprehensive test vectors accordingly. Affects address representation across mainnet and testnet.
Withdrawal Validation and Fee Checking
packages/rs-dpp/src/errors/consensus/basic/..., packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/v0/state_transition_validation.rs, packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/address_credit_withdrawal/tests.rs
Introduced WithdrawalBelowMinAmountError type and validation logic; replaced is_fibonacci_number with is_non_zero_fibonacci_number for core fee validation; added withdrawal amount bounds enforcement.
P2SH Signature Validation
packages/rs-dpp/src/address_funds/witness.rs
Added MAX_P2SH_SIGNATURES constant (17) with runtime deserialization checks to reject P2SH payloads exceeding signature limit. Includes comprehensive test coverage.
Fibonacci Number Utility Refactoring
packages/rs-dpp/src/util/is_fibonacci_number.rs, packages/rs-dpp/src/util/is_non_zero_fibonacci_number.rs, packages/rs-dpp/src/util/mod.rs, packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/structure/v1/mod.rs
Replaced is_fibonacci_number module with is_non_zero_fibonacci_number, implementing zero-rejection logic for Fibonacci validation using integer-based perfect-square checks.
Fee Deduction and Input Snapshot Refactoring
packages/rs-dpp/src/address_funds/fee_strategy/deduct_fee_from_inputs_and_outputs/v0/mod.rs
Introduced pre-snapshot collections of input/output addresses to ensure stable index resolution during mutation; replaced direct index access with address-derived lookups.
Overflow-Safe Arithmetic in Transformers
packages/rs-drive/src/state_transition_action/address_funds/address_credit_withdrawal/v0/transformer.rs, packages/rs-drive/src/state_transition_action/identity/identity_create_from_addresses/v0/transformer.rs, packages/rs-drive/src/state_transition_action/identity/identity_topup_from_addresses/v0/transformer.rs, packages/rs-drive/src/drive/address_funds/set_balance_to_address/v0/mod.rs
Added overflow guards using checked_add, checked_sub, and try_fold patterns across multiple transformers; returns OverflowError on arithmetic overflow instead of silent wraparound.
Input Contributions Tracking for Asset Lock Funding
packages/rs-drive/src/state_transition_action/address_funds/address_funding_from_asset_lock/mod.rs, packages/rs-drive/src/state_transition_action/address_funds/address_funding_from_asset_lock/v0/mod.rs, packages/rs-drive/src/state_transition_action/address_funds/address_funding_from_asset_lock/v0/transformer.rs, packages/rs-drive/src/state_transition_action/action_convert_to_operations/address_funds/address_funding_from_asset_lock_transition.rs
Added input_contributions_total field and accessor to track credits from address inputs; updated remainder calculation to use combined asset-lock and input balances.
Witness Validation Enhancement
packages/rs-dpp/src/state_transition/traits/state_transition_witness_validation.rs
Added pre-check to ensure witness count matches input count; improved error reporting with witness index information in InvalidStateTransitionSignatureError.
Config Analysis and Doctor Tasks
packages/dashmate/src/doctor/analyse/analyseConfigFactory.js, packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js, packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js
Switched error mappings from generic ERRORS to provider-specific sets (ZEROSSL_ERRORS, LETSENCRYPT_ERRORS); added LetsEncrypt certificate validation support; refactored obtain-certificate task with explicit initialization step for config and directory setup.
Test Expansions and Security Edge Cases
packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/address_*/tests.rs, packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_*/tests.rs
Added extensive security-focused test modules (400+ lines per file) covering overflow handling, fee deduction stability after entry removal, witness validation mismatches, balance/nonce boundaries, and multisig edge cases.
WASM Error Handling
packages/wasm-dpp/src/errors/consensus/consensus_error.rs
Extended error mapping to include WithdrawalBelowMinAmountError and new masternode voting error types; updated from_basic_error and from_state_error branches.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • pauldelucia
  • shumkov

Poem

🐰 Bump the versions high, let's say hotfix-four,
Address HRP changed from "evo" to "dash" for sure,
Overflow checks now guard the arithmetic flows,
Withdrawals validated, and witness counts close,
Docker upgraded to dashpay/dashd:23, hooray!

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fixupdate-hotfix-version

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@QuantumExplorer QuantumExplorer deleted the fixupdate-hotfix-version branch February 5, 2026 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants