Skip to content

v5.0.0

Latest

Choose a tag to compare

@tsudmi tsudmi released this 29 Apr 12:34
31b2da5

Changelog

v5.0.0

A major release introducing the NodesManager system, a redesigned meta-vault architecture with a dedicated SubVaultsRegistry, new ERC-20 meta-vault variants, and the EthCommunityVault.

Breaking Changes

  • Meta-vault architecture restructured. The shared MetaVault base contract has been removed. EthMetaVault and GnoMetaVault were moved out of the custom/ directory and now live alongside other vault types. Sub-vault state is no longer managed inside VaultSubVaults — it lives in a new standalone SubVaultsRegistry deployed per meta-vault.
  • GnoPrivMetaVault has been removed. Private meta-vaults are now Ethereum-only, alongside the new ERC-20 variants.
  • SubVaultUtils library removed. Sub-vault logic was relocated to SubVaultsRegistry and the new ExitPositions library (renamed from SubVaultExits).
  • OsToken immutables relocated. OsToken-related immutables moved out of VaultImmutables into VaultOsToken. OsToken configuration moved into VaultImmutables and redemption logic into VaultSubVaults.
  • OsTokenRedeemer reworked to operate against SubVaultsRegistry and support meta-vaults. Position tracking and the redemption update flow have changed.
  • Meta-vault factories are now permissionless.

New Features

  • NodesManager: new component for delegating validator operations to node operators. Includes operator-state management with merkle proofs, oracle-signed validator registration, share donations, an exit queue, pending penalties, and minimum-balance checks. Supports delegation of the validators manager role and the withdrawals manager role. Introduces direct deposits in place of the old deposit queue.
  • EthCommunityVault: new ERC-20 Ethereum vault with a locked NodesManager set as both fee recipient and validators manager. Emits EthCommunityVaultCreated on deployment.
  • ERC-20 meta-vaults: EthErc20MetaVault, EthPrivErc20MetaVault, and EthPrivMetaVault are now available.
  • SubVaultsRegistry & SubVaultsRegistryFactory: standalone registry contracts that own all sub-vault accounting (positions, exit queues, capacities) for a meta-vault. Upgrades remain gated by the parent meta-vault.
  • Validator checker redemption support: ValidatorsChecker now factors redemption assets into its checks.
  • Meta-vault state updates in OsTokenRedeemer: redeemer now triggers state updates as part of redemption.
  • subVaultsExits view: new function for inspecting per-sub-vault exit state.
  • getExitQueueCumulativeTickets view: exposes cumulative ticket counts on the exit queue.

Improvements

  • BalancedCurator: simplified, and now respects each sub-vault's capacity when distributing deposits. Empty deposit lists are returned (instead of reverting) when no sub-vaults can accept funds. A new BalancedCurator has been deployed across all networks.
  • Gas optimizations: reduced redundant memory operations in OsTokenRedeemer and SubVaultsRegistry; cached metaVault SLOAD before access checks in enterSubVaultsExitQueue; skipped redundant computation in getExitQueueMissingAssets when queuedShares is zero; harvest checks are now skipped for uncollateralized meta-vaults.
  • Reentrancy hardening: nonReentrant added to SubVaultsRegistry and NodesManager.

Internal / Dev

  • Pinned commit hashes for all GitHub Actions workflows.
  • Renamed SubVaultExits library to ExitPositions.
  • Updated and regenerated gas snapshots across the suite.
  • Reworked upgrade scripts (UpgradeEthNetwork, UpgradeGnoNetwork) to deploy only meta-vaults and the OsToken redeemer where applicable.
  • Deployment artifacts updated for mainnet, hoodi, and gnosis (including governor transaction batches).

Full Changelog: v4.0.1...v5.0.0
Audit: https://github.com/stakewise/v3-core/blob/v5.0.0/audits/2026-04-Statemind.pdf