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

@shumkovshumkov commented Feb 6, 2026

Copy link
Copy Markdown
Collaborator

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-actionsgithub-actionsBot added this to the v3.1.0 milestone Feb 6, 2026
@coderabbitai

coderabbitaiBot commented Feb 6, 2026

Copy link
Copy Markdown
Contributor

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 nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe 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✅ PassedDocstring 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.

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

@shumkov