Mellow Protocol
  • 💡Overview
  • 🎛️MELLOW LRT PRIMITIVE
    • Overview
    • MultiVault
    • Simple-LRT
    • Interoperable vaults
    • Contract deployments
    • Security
    • Loyalty Points
      • Points in Symbiotic pre-deposit contracts
      • DeFi points integration instructions
    • User Tutorials
      • Deposit guide
      • Withdrawal guide
      • Emergency withdrawal guide (advanced)
    • API
  • 💧DVstETH vault
    • Overview
    • Contracts
      • 🏦Vault
      • 🔧VaultConfigurator
      • ⚖️Validators
        • ManagedValidator
        • ERC20SwapValidator
        • DefaultBondValidator
        • AllowAllValidator
      • 🧬Strategies
        • DefaultBondStrategy
        • SimpleDVTStakingStrategy
      • 🔎Oracles
        • ChainlinkOracle
        • ManagedRatiosOracle
      • 🧱Modules
        • DelegateModules
          • ERC20SwapModule
          • DefaultBondModule
          • StakingModule
        • ExternalModules
        • TvlModules
          • DefaultBondTvlModule
          • ERC20TvlModule
          • ManagedTvlModule
      • 🪛Utils
        • DepositWrapper
        • DefaultAccessControl
      • 🔐Security
        • AdminProxy
  • 🤖MELLOW ALM
    • Mellow permissionless vaults
      • Overview
      • Core
      • Contracts API
      • Strategies
        • Fearless Gearbox strategy
        • LStrategy
        • Uni V3 Boosted strategy
        • Pulse strategy
        • Pulse strategy V2
        • Tamper strategy
      • Governance parameters
      • Contracts specs
      • Tutorials
        • Contracts deployments
        • Deploy your own strategy
        • wstETH strategies deposit guide
      • Mellow contracts addresses
        • Mellow Protocol Addresses (Polygon)
        • Mellow Protocol Addresses (Mainnet)
        • Gearbox Fearless Strategy
        • Tamper Strategy
        • UniV3 Pulse wstETH-USDC
        • UniV3 Pulse V2 wstETH-USDC
        • Velodrome CL strategies
        • Aerodrome CL strategies
      • Glossary
      • FAQ
    • Mellow ALM Toolkit
      • Overview
      • 📘Domain objects
      • 🧩Components
      • 🍜Processes
      • 💎Core
      • 🔮Oracles
        • VeloOracle
      • 🎯Strategy
        • PulseStrategyModule
      • 🔌AMM Adapters
        • VeloAmmModule
      • 🚙Utility contracts
        • AmmDepositWithdrawModule
        • Counter
        • LpWrapper
        • VeloDeployFactory
    • Mellow Backtesting SDK
  • 🗄️Resources
    • Media kit
    • Twitter
    • Discord
Powered by GitBook
On this page
  • Key Features
  • Constructor
  • Core Methods
  • Modifiers
  • Events
  1. DVstETH vault
  2. Contracts
  3. Security

AdminProxy

The AdminProxy contract manages upgrade proposals and administrative changes for a smart contract system using a transparent upgradeable proxy pattern. It handles role assignments and modifications, such as proposer, acceptor, and emergency operator roles, and enables controlled upgrading of contract implementations.

Key Features

  • Role-Based Access Control: Uses roles like proposer, acceptor, and emergency operator to manage different levels of access and control.

  • Proposal Management: Facilitates the proposing and acceptance of new contract implementations.

  • Emergency Controls: Allows the emergency operator to reset the contract to a known stable implementation in case of issues.

Constructor

  • Initializes the contract with roles and the initial base implementation.

    • Parameters:

      • proxy_: Address of the transparent upgradeable proxy.

      • proxyAdmin_: Address of the proxy admin.

      • acceptor_: Initial acceptor's address.

      • proposer_: Initial proposer's address.

      • emergencyOperator_: Initial emergency operator's address.

      • baseImplementation_: Initial base implementation.

Core Methods

  1. Role Management

    • upgradeEmergencyOperator(address): Updates the emergency operator.

    • upgradeProposer(address): Updates the proposer.

    • upgradeAcceptor(address): Updates the acceptor.

  2. Proposal Functions

    • proposeBaseImplementation(address, bytes): Proposes a new base implementation.

    • propose(address, bytes): Proposes a new contract implementation.

    • acceptBaseImplementation(): Accepts the proposed base implementation.

    • acceptProposal(uint256): Accepts a specified proposal.

    • rejectAllProposals(): Rejects all outstanding proposals.

  3. Emergency Functions

    • resetToBaseImplementation(): Resets the contract to the base implementation in case of an emergency.

Modifiers

  • requireProposerOrAcceptor: Ensures the caller is either the proposer or the acceptor.

  • onlyAcceptor: Ensures the caller is the acceptor.

  • onlyEmergencyOperator: Ensures the caller is the emergency operator.

Events

  • EmergencyOperatorUpgraded: Emitted when the emergency operator is upgraded.

  • ProposerUpgraded: Emitted when the proposer is upgraded.

  • AcceptorUpgraded: Emitted when the acceptor is upgraded.

  • BaseImplementationProposed: Emitted when a new base implementation is proposed.

  • ImplementationProposed: Emitted when a new implementation is proposed.

  • BaseImplementationAccepted: Emitted when the base implementation is accepted.

  • ProposalAccepted: Emitted when a proposal is accepted.

  • AllProposalsRejected: Emitted when all proposals are rejected.

  • ResetToBaseImplementation: Emitted when the contract is reset to the base implementation.

PreviousSecurityNextMellow permissionless vaults
💧
🔐