MultiDepositorVaultFactory

Inherits: IMultiDepositorVaultFactory, FeeVaultDeployer, Sweepable

Used to create new multi-depositor vaults using delegate call

Only one instance of the factory will be required per chain

State Variables

ERC20_NAME_SLOT

ERC7201-compliant transient storage slot for storing vault token erc20 name during deployment

Equal to keccak256(abi.encode(uint256(keccak256("aera.factory.erc20.name")) - 1)) & ~bytes32(uint256(0xff));

bytes32 internal constant ERC20_NAME_SLOT = 0x79a9bb099f009196aa3acc685f15554a8e8fd10fee7019652e2c9a6d65a86500;

ERC20_SYMBOL_SLOT

ERC7201-compliant transient storage slot for storing vault token erc20 symbol during deployment

Equal to keccak256(abi.encode(uint256(keccak256("aera.factory.erc20.symbol")) - 1)) & ~bytes32(uint256(0xff));

bytes32 internal constant ERC20_SYMBOL_SLOT = 0xab25fe6ab1c05d9a94c8d6727a857804585a85a98c2bb360f69300eb1a356300;

MULTI_DEPOSITOR_VAULT_PARAMETERS_SLOT

ERC7201-compliant transient storage slot for storing multi depositor vault parameters during deployment

Equal to keccak256(abi.encode(uint256(keccak256("aera.factory.multiDepositorVaultParameters")) - 1)) & ~bytes32(uint256(0xff));

_DEPLOY_DELEGATE

Address of the deploy delegate

Functions

constructor

create

Create multi depositor vault

Parameters

Name
Type
Description

salt

bytes32

The salt used to generate the vault address

description

string

Vault description

erc20Params

ERC20Parameters

ERC20 parameters for deployment

baseVaultParams

BaseVaultParameters

Base vault parameters for deployment

feeVaultParams

FeeVaultParameters

Fee vault parameters for deployment

beforeTransferHook

IBeforeTransferHook

Before transfer hooks for deployment

expectedVaultAddress

address

Expected vault address to check against deployed vault address

Returns

Name
Type
Description

deployedVault

address

Deployed vault address

getERC20Name

Get the ERC20 name of vault units

Returns

Name
Type
Description

name

string

The name of the vault ERC20 token

getERC20Symbol

Get the ERC20 symbol of vault units

Returns

Name
Type
Description

symbol

string

The symbol of the vault ERC20 token

multiDepositorVaultParameters

Get the vault parameters

Returns

Name
Type
Description

beforeTransferHook

IBeforeTransferHook

The hooks called before vault unit transfers

_deployVault

Deploy vault

Parameters

Name
Type
Description

salt

bytes32

The salt value to create vault

description

string

Vault description

erc20Params

ERC20Parameters

ERC20 parameters for vault deployment used in MultiDepositorVault

baseVaultParams

BaseVaultParameters

Parameters for vault deployment used in BaseVault

feeVaultParams

FeeVaultParameters

Parameters for vault deployment specific to FeeVault

beforeTransferHook

IBeforeTransferHook

Parameters for vault deployment specific to MultiDepositorVault

Returns

Name
Type
Description

deployed

address

Deployed vault address

_storeERC20Parameters

Store ERC20 name and symbol in transient storage

Parameters

Name
Type
Description

params

ERC20Parameters

Struct containing ERC20 name and symbol

_storeMultiDepositorVaultParameters

Store beforeTransferHook address in transient storage

Parameters

Name
Type
Description

beforeTransferHook

IBeforeTransferHook

The hooks called before token transfers

_createVault

Create a new vault with delegate call

Parameters

Name
Type
Description

salt

bytes32

The salt value to create vault

Returns

Name
Type
Description

deployed

address

Deployed vault address

_loadStringFromSlot

Load a short string from the given storage slot

Parameters

Name
Type
Description

slot

uint256

Storage slot to read from

Returns

Name
Type
Description

<none>

string

Decoded string

Last updated