September 28–October 5, 2026
This update covers verified engineering progress during the previous seven days. Work in private repositories is summarized without private links or implementation identities; links to public changes appear directly beside the summaries they support.
Piecrust (Private Repositories)
Section titled “Piecrust (Private Repositories)”Expanded Piecrust state compatibility and execution controls while strengthening validation coverage.
- Added a legacy finalization mode for historical chain replay while retaining strict behavior for later state. Preserved compatibility with earlier state-finalization rules.
- Preserved contract memory lengths beyond the legacy 32-bit limit with versioned persisted-state encoding and checked promotion. Protected wide-memory state from truncation during persistence.
- Added protocol-policy control for retaining nested events from reverted calls while preserving legacy receipt behavior.
- Validated oversized inter-contract method names before text parsing across legacy and host-backed calls. Reduced unnecessary processing for inputs that exceeded the method-name limit.
- Preserved historical event receipts for pre-Boreas initializer failures while keeping rolled-back state unchanged.
- Added local and continuous-integration coverage reporting for Piecrust and Crumbles, including changed-line checks.
Rusk (continued)
Section titled “Rusk (continued)”Node (Private Repo)
Section titled “Node (Private Repo)”Strengthened Rusk node recovery, transaction readmission, and chain-state accounting.
- Added operator-controlled circulating-supply validation with recoverable state updates and bounded height-index scans. Reduced repeated database work during chain synchronization while preserving atomic state transitions.
- Reworked reverted-transaction readmission around shared policy checks, atomic storage, and typed outcomes. Made rollback handling more consistent under capacity and policy constraints.
- Improved full-pool retry guidance and coordinated smaller corrections across node and wallet paths.
- Centralized HTTP error classification for status codes, public messages, and telemetry categories. Kept service-unavailable responses consistent across HTTP paths.
- Simplified database and serialization paths by removing repeated conversion and abstraction layers.
Protocol (Private Repo)
Section titled “Protocol (Private Repo)”Updated Rusk protocol schedules and rule selection across node execution and the virtual machine.
- Defined reward handling for successors of authenticated emergency blocks without changing block or wire formats.
- Replaced scattered feature gates with typed schedules selected consistently at each block height. Aligned feature activation across node, execution, and virtual-machine paths.
- Added chain-ID checks during transaction preverification and carried selected chain IDs into shielded deployments. Reduced cross-chain transaction handling mismatches.
- Cached per-key BLS aggregation coefficients with bounds while preserving aggregation results and error behavior. Reduced repeated consensus-key computation.
Coverage upload compatibility
Section titled “Coverage upload compatibility”Updated Codecov upload steps for GitHub’s Node.js 24 transition; wallet uploads still require repository token configuration.
- Moved the repository’s coverage upload step from Codecov Action v4 to v7. (PR #996)
- Pinned the wallet coverage workflow to Codecov Action v7.1.1 while retaining non-blocking uploads. (PR #119)
- Pinned the reusable npm coverage workflow to Codecov Action v7.1.1 while preserving its existing inputs. (PR #64)
Wallet
Section titled “Wallet”Refined the wallet README’s description, layout, and badge markup, making its non-custodial and cross-browser scope easier to scan. (PR #120)
Bls12_381-bls
Section titled “Bls12_381-bls”Updated Base58 deserialization with fixed encoded-size bounds, rejecting oversized input before allocation while preserving the valid format. (PR #49)
Jubjub-elgamal
Section titled “Jubjub-elgamal”Strengthened encryption gadgets with canonical 64-bit map constraints, rejecting alternate circuit representations while reducing gate counts. (PR #36)
Jubjub-schnorr
Section titled “Jubjub-schnorr”Strengthened Schnorr signing and multisignature validation across equivalent generator encodings and invalid participant keys.
- Rejected invalid or empty participant-key sets across multisignature signing, share verification, combination, and aggregation. (PR #91)
- Normalized variable generators before deriving nonces, signature points, and challenge public keys. (PR #90)
Jubjub
Section titled “Jubjub”Strengthened JubJub key-exchange and secret-handling boundaries by rejecting invalid peer points and erasing temporary entropy after scalar generation.
- Rejected invalid and small-order public points in Diffie-Hellman key exchange while preserving results for prime-order points. (PR #178)
- Wiped the scalar-generation entropy buffer after reduction whenever the zeroize feature is enabled. (PR #179)
Bls12_381
Section titled “Bls12_381”Corrected hash-to-curve edge cases and bounded unencodable XMD configurations, aligning exceptional inputs with RFC 9380 while preserving ordinary outputs.
- Rejected oversized domain-separation configurations whose processed length cannot be encoded, with a focused regression test. (PR #197)
- Handled zero and isogeny-kernel inputs according to RFC 9380 and added differential coverage for the exceptional cases. (PR #195)
Simplified PLONK proving and circuit APIs while tightening canonical proof, key, and decomposition checks.
- Removed `Default` from the core `Circuit` trait and kept the bound only on APIs that instantiate a default circuit. (PR #984)
- Removed unused polynomial powers, aggregate-witness challenge work, and oversized multiplication domains. (PR #978)
- Added exact proof decoding, canonical key parsing, and full-width decomposition constraints alongside compatibility checks. (PR #982)
Hyperlane-dusk
Section titled “Hyperlane-dusk”Established a reviewable Dusk-side contract and tooling candidate with reproducibility controls and explicit operational gates.
- Added beneficiary-authenticated withdrawal of unused dispatch credit with rollback, isolation, and compatibility checks. (PR #10)
- Added an owner-supervised workflow that reproduces exact commit candidates from immutable inputs on a protected runner. (PR #3)
- Rebased the Dusk-side contracts and supporting tooling on current dependencies, with custody, indexing, compatibility, and CI checks. (PR #1)
Added robots directives and regression coverage for search and AI-use preferences, making the intended crawler policy explicit after deployment. (PR #154)
Contracts
Section titled “Contracts”Changed Principal JSON serialization to use validated Dusk addresses, simplifying data-driver inputs without altering onchain storage. (PR #54)
DuskEVM (Private Repositories)
Section titled “DuskEVM (Private Repositories)”Strengthened DuskEVM transaction handling and finalized-event processing while simplifying shared contract, adapter, and test utilities.
- Removed unused on-chain code and consolidated repeated contract helpers without changing behavior.
- Removed unused adapter code and consolidated repeated transaction-submission and blob-sidecar checks.
- Removed unused test harness tooling and consolidated repeated integration helpers.
Dusk Website (Private Repo)
Section titled “Dusk Website (Private Repo)”Improved public-content interpretation for search and AI agents while preserving existing crawl boundaries and page structure.
- Added explicit search and AI-use signals to the website crawler policy while preserving public and preview boundaries.
- Removed repeated decorative headings from agent-readable story content while preserving the visible and accessible page structure.
Dusk Wallets (Private Repo)
Section titled “Dusk Wallets (Private Repo)”Strengthened wallet transaction construction, history enrichment, and cached-note consistency.
- Added typed transaction builders for public and shielded flows while retaining compatibility with existing helper interfaces. Standardized funding, gas, and operation setup across wallet transaction types.
- Rejected invalid text and pointer inputs at wallet transaction-data boundaries while preserving byte-oriented behavior.
- Consolidated the shielded transaction build pipeline across transfers, deployments, conversions, and staking.
- Simplified wallet form, transaction parsing, request, and configuration helpers without changing their intended behavior.
Dusk Data Drivers (Private Repo)
Section titled “Dusk Data Drivers (Private Repo)”Updated application-data conversion to retain exact values across JSON and contract-driver boundaries.
- Encoded 64-bit and 128-bit integers as decimal strings and accepted both strings and numbers on input. Prevented precision loss for JavaScript clients handling large values.