Skip to content

chore(release): update versions and changing to v3.0.1#3063

Merged
shumkov merged 2 commits into
v3.0-devfrom
release_3.0.1
Feb 6, 2026
Merged

chore(release): update versions and changing to v3.0.1#3063
shumkov merged 2 commits into
v3.0-devfrom
release_3.0.1

Conversation

@shumkov
Copy link
Copy Markdown
Collaborator

@shumkov shumkov commented Feb 6, 2026

Issue being fixed or feature implemented

Release Dash Platform v3.0.1

What was done?

  • Updated package versions

How Has This Been Tested?

CI

Breaking Changes

None

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
  • I have made corresponding changes to the documentation if needed

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

Summary by CodeRabbit

Release Notes

  • New Features

    • Added Let's Encrypt SSL certificate management support alongside existing ZeroSSL integration.
    • Implemented withdrawal amount validation with configurable minimum and maximum bounds.
    • Added P2SH signature limit validation to prevent excessive multisig signatures.
  • Bug Fixes

    • Fixed fee deduction calculations when inputs are removed from transactions.
    • Added overflow protection for balance calculations and withdrawal amounts.
    • Enhanced witness validation with length consistency checks.
  • Chores

    • Updated all package versions (3.0.0 → 3.0.1, with select packages updated per schedule).
    • Updated Docker image tags for improved runtime environment.
    • Updated platform address encoding format with new network identifiers.

@github-actions github-actions Bot added this to the v3.1.0 milestone Feb 6, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 6, 2026

Caution

Review failed

Failed to post review comments

📝 Walkthrough

Walkthrough

Version 3.0.1 release with PlatformAddress HRP updates (evo/tevo → dash/tdash), Let's Encrypt SSL support, withdrawal amount bounds validation, MAX_P2SH_SIGNATURES enforcement, overflow-safe arithmetic in state transitions, and comprehensive audit-focused test coverage across multiple packages and services.

Changes

Cohort / File(s) Summary
Version and Changelog Updates
CHANGELOG.md, Cargo.toml, package.json, packages/*/package.json
Bumped workspace and package versions from 3.0.0→3.0.1 (and 4.0.0→4.0.1, 6.0.0→6.0.1, 10.0.0→10.0.1 for specific packages). CHANGELOG.md adds release notes for 3.0.1 and hotfix series entries.
Dashmate Configuration
packages/dashmate/configs/defaults/getBaseConfigFactory.js, packages/dashmate/configs/getConfigFileMigrationsFactory.js
Updated Docker image tag for dashd from 22 to 23. Added migration entry 3.0.1 to update core docker image across all config entries.
Let's Encrypt SSL Support
packages/dashmate/src/doctor/analyse/analyseConfigFactory.js, packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js, packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js
Introduced Let's Encrypt validation alongside existing ZeroSSL. Added validateLetsEncryptCertificate parameter to sample collection, initialized Lego certificate handling with email/IP validation, directory creation, key-type specification (RSA2048), and renewal window logic.
Platform Address HRP and Encoding
packages/rs-dpp/src/address_funds/platform_address.rs
Changed PLATFORM_HRP_MAINNET from "evo" to "dash" and PLATFORM_HRP_TESTNET from "tevo" to "tdash". Updated bech32m encoding to use explicit type bytes (0xb0 for P2PKH, 0x80 for P2SH) for user-facing strings while preserving storage-based variant indices. Updated parsing, validation, and test vectors accordingly.
Withdrawal Amount Validation
packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/v0/state_transition_validation.rs
Added explicit bounds validation: withdrawal amount must satisfy MIN_WITHDRAWAL_AMOUNT ≤ amount ≤ max_withdrawal_amount. Returns WithdrawalBelowMinAmountError on violation. Replaced Fibonacci check with is_non_zero_fibonacci_number. Updated test expectations for overflow scenarios.
P2SH Signature Limit
packages/rs-dpp/src/address_funds/witness.rs
Added new public constant MAX_P2SH_SIGNATURES = 17. Enforced limit in Decode, BorrowDecode, and Deserialize paths for AddressWitness with rejection of P2SH entries exceeding the limit. Added boundary tests validating acceptance at exactly MAX_P2SH_SIGNATURES and rejection at MAX_P2SH_SIGNATURES+1.
Fibonacci 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
Removed is_fibonacci_number function and added is_non_zero_fibonacci_number using Lucas-based test (checks 5n²±4 for perfect squares). New implementation includes integer-based is_perfect_square helper and audit-focused tests with M6 comment on floating-point precision concerns.
Withdrawal Error Handling
packages/rs-dpp/src/errors/consensus/basic/basic_error.rs, packages/rs-dpp/src/errors/consensus/basic/state_transition/mod.rs, packages/rs-dpp/src/errors/consensus/basic/state_transition/withdrawal_below_min_amount_error.rs, packages/rs-dpp/src/errors/consensus/codes.rs
Introduced WithdrawalBelowMinAmountError enum variant carrying withdrawal_amount, min_amount, max_amount (u64). Added error code mapping to 10818. Implemented From for ConsensusError. Error message: "Withdrawal amount {withdrawal_amount} must be at least {min_amount} and at most {max_amount}".
Witness Validation
packages/rs-dpp/src/state_transition/traits/state_transition_witness_validation.rs
Added pre-check validating inputs and witnesses length match; returns InvalidStateTransitionSignatureError on mismatch. Per-iteration error handling returns WitnessValidationResult with descriptive InvalidStateTransitionSignatureError on verification failure.
Fee Deduction Snapshot
packages/rs-dpp/src/address_funds/fee_strategy/deduct_fee_from_inputs_and_outputs/v0/mod.rs
Added pre-snapshot of input/output addresses to stabilize indices during fee deduction. Replaces index-based iteration with lookups via snapshot, determining address from stored snapshot then fetching corresponding amounts from maps.
Asset Lock Funding Updates
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 public method input_contributions_total() returning total credits from address inputs. Updated inputs_with_remaining_balance_outputs_and_asset_lock_value_owned signature to include Credits return value. Modified remainder calculation to use total_available (asset_lock + inputs).
Overflow-Safe Arithmetic
packages/rs-drive/src/drive/address_funds/set_balance_to_address/v0/mod.rs, 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
Replaced unchecked sums with try_fold using checked_add, returning OverflowError on overflow. Added balance overflow guard (balance > i64::MAX). Replaced direct subtraction with checked_sub for output-vs-input calculations.
Fibonacci Utility Updates
packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/structure/v1/mod.rs
Updated import and usage from is_fibonacci_number to is_non_zero_fibonacci_number for core_fee_per_byte validation.
WASM Error Mapping
packages/wasm-dpp/src/errors/consensus/consensus_error.rs
Added WithdrawalBelowMinAmountError to wasm error imports and conversion mapping in from_basic_error, using generic_consensus_error! macro to convert to wasm representation.
Comprehensive Audit Test Suites
packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/address_credit_withdrawal/tests.rs, packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/address_funding_from_asset_lock/tests.rs, packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/address_funds_transfer/tests.rs, packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_create_from_addresses/tests.rs, packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_transfer_to_addresses/tests.rs, packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_top_up_from_addresses/tests.rs
Added extensive security and audit-focused test modules covering: fee deduction index stability after entry removal, fee/remainder overflow detection, witness length mismatch rejection, balance conservation checks, P2SH multisig edge cases, overflow in recipient sums, script security validation, extreme balance/nonce scenarios, and structured vs processing validation consistency.

Sequence Diagram

sequenceDiagram
    actor User as Client Transaction
    participant Validator as Withdrawal Validator
    participant LedgerDB as State Tree
    
    User->>Validator: Submit AddressCreditWithdrawal
    Validator->>Validator: Extract withdrawal_amount from inputs-outputs
    Validator->>Validator: Validate withdrawal_amount > 0
    alt Withdrawal Below Minimum
        Validator->>User: WithdrawalBelowMinAmountError
    else Withdrawal Exceeds Maximum
        Validator->>User: WithdrawalBelowMinAmountError
    else Valid Range
        Validator->>Validator: Check core_fee_per_byte is non-zero Fibonacci
        alt Invalid Fee
            Validator->>User: InvalidCreditWithdrawalTransitionCoreFeeError
        else Valid Fee
            Validator->>Validator: Snapshot input/output addresses for stable indices
            Validator->>Validator: Deduct fees with snapshot-based lookups
            alt Overflow During Fee Deduction
                Validator->>User: OverflowError
            else Fees Successfully Deducted
                Validator->>LedgerDB: Apply state transition
                Validator->>User: Success
            end
        end
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • fix(platform)!: 3.0 audit report fixes #3053 — Overlapping changes across same files and symbols: both introduce WithdrawalBelowMinAmountError with error mapping, rename Fibonacci utility to is_non_zero_fibonacci_number, enforce MAX_P2SH_SIGNATURES, and adjust fee-deduction snapshot logic for stable indexing during map entry removal.

Poem

🐰 A hoppy hop through versions new,
From "evo" hops to "dash" so true,
Withdrawals bounded, signatures capped,
Overflows caught, no funds unwrapped,
Let's Encrypt joins the security dance—
Audit tests bloom, robust at a glance!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title directly reflects the main objective and primary changes: updating package versions and releasing v3.0.1. It is clear, concise, and accurately represents the release nature of this changeset.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 release_3.0.1

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.

@shumkov shumkov self-assigned this Feb 6, 2026
@shumkov shumkov removed this from the v3.1.0 milestone Feb 6, 2026
@github-actions github-actions Bot added this to the v3.1.0 milestone Feb 6, 2026
@shumkov shumkov changed the base branch from v3.1-dev to v3.0-dev February 6, 2026 08:05
@github-actions github-actions Bot modified the milestones: v3.1.0, v3.0.0 Feb 6, 2026
@shumkov shumkov merged commit 0a60b4d into v3.0-dev Feb 6, 2026
110 of 117 checks passed
@shumkov shumkov deleted the release_3.0.1 branch February 6, 2026 08:12
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.

1 participant