Skip to main content

Overview

BaseVault is the abstract base contract that all Aera V3 vault types inherit from. It provides the core infrastructure for guardian-based operation execution, Merkle proof verification, configurable hooks, and emergency pause functionality. Both SingleDepositorVault and MultiDepositorVault extend BaseVault to add depositor-specific logic. The vault accepts batches of operations submitted by an authorized guardian. Each operation is validated against a Merkle tree that whitelists specific contract targets and calldata patterns. Hooks can intercept operations at multiple lifecycle points to enforce constraints such as slippage bounds, position limits, and approval cleanup. For a conceptual overview of how BaseVault fits into the Aera V3 architecture, see Aera V3 Overview.

Functions

submit

Submits a batch of operations for the guardian to execute atomically. Each operation is validated against the guardian’s Merkle tree before execution. Submit hooks fire before and after the batch, and individual operations can have pre-hooks and post-hooks. Signature:

pause

Pauses all guardian operations on the vault. Can be called by the guardian or the vault owner as an emergency safety mechanism. Signature:

unpause

Resumes guardian operations after a pause. Can only be called by the vault owner. Signature:

setGuardianRoot

Sets the Merkle root that defines the guardian’s allowed operations. Only callable by the vault owner. Signature:

setSubmitHooks

Configures the before-submit and after-submit hook contracts for the vault. Only callable by the vault owner. Signature:

checkGuardianWhitelist

Checks whether a guardian is still authorized on the vault’s whitelist. Can be called by anyone. Removes the guardian if it fails the whitelist check. Signature:

guardian

Returns the address of the vault’s current guardian. Signature:

owner

Returns the address of the vault owner. Signature:

paused

Returns whether the vault is currently paused. Signature:

Events

Submitted

Emitted when a guardian successfully submits a batch of operations.

Paused

Emitted when the vault is paused.

Unpaused

Emitted when the vault is unpaused.

GuardianRootSet

Emitted when the guardian’s Merkle root is updated.

SubmitHooksSet

Emitted when submit hooks are configured.

Errors

Vault__Paused

Thrown when a guardian operation is attempted while the vault is paused.

Vault__InvalidProof

Thrown when an operation’s Merkle proof does not verify against the guardian root.

Vault__NotGuardian

Thrown when a non-guardian address attempts a guardian-only action.

Vault__NotOwner

Thrown when a non-owner address attempts an owner-only action.

Inheritance

BaseVault is the root of the Aera V3 vault hierarchy:
  • BaseVault — Core guardian operations, Merkle verification, hooks, pause
This page was manually created as a baseline. Run the contract reference generation pipeline to update with complete NatSpec documentation from the Solidity source.