LagoonConfig

Documentation for eth_defi.erc_4626.vault_protocol.lagoon.deployment.LagoonConfig Python class.

class LagoonConfig

Bases: object

Configuration for Lagoon vault deployment.

Captures all parameters needed to deploy a Lagoon vault except the chain connection (web3) and deployer account.

Can be passed to deploy_automated_lagoon_vault() (single chain) or deploy_multichain_lagoon_vault() (multiple chains).

Attributes summary

parameters

Vault parameters (name, symbol, underlying token, fees)

asset_manager

Address that manages vault assets and executes trades

safe_owners

Addresses of Safe multisig owners

safe_threshold

Number of owner signatures required for Safe transactions

uniswap_v2

Uniswap V2 deployment for router whitelisting

uniswap_v3

Uniswap V3 deployment for router/quoter whitelisting

orderly_vault

Orderly perps vault for whitelisting

aave_v3

Aave V3 deployment for lending whitelisting

cowswap

Enable CowSwap settlement contract whitelisting

velora

Enable Velora contract whitelisting

gmx_deployment

GMX perpetuals deployment for whitelisting

cctp_deployment

CCTP V2 deployment for cross-chain USDC transfers

any_asset

Allow any ERC-20 asset instead of explicit whitelist

etherscan_api_key

Etherscan API key for contract verification

verifier

Block explorer for contract verification

verifier_url

Custom block explorer URL

use_forge

Use Forge for contract deployment

between_contracts_delay_seconds

Delay between contract deployments (seconds) for nonce propagation

erc_4626_vaults

ERC-4626 vaults to whitelist for deposit/withdrawal

guard_only

Deploy only the guard, skip vault deployment

existing_vault_address

Reuse an existing vault (requires guard_only=True)

existing_safe_address

Reuse an existing Safe instead of deploying a new one

vault_abi

Vault contract ABI file path

factory_contract

Use BeaconProxyFactory for vault deployment

from_the_scratch

Deploy fresh Lagoon protocol (fee registry + vault implementation + factory)

assets

ERC-20 token addresses to whitelist

safe_salt_nonce

CREATE2 salt for deterministic Safe address across chains

safe_proxy_factory_address

Override Safe ProxyFactory address (default: v1.4.1 canonical).

Methods summary

__init__(parameters, asset_manager, ...[, ...])

parameters: eth_defi.erc_4626.vault_protocol.lagoon.deployment.LagoonDeploymentParameters

Vault parameters (name, symbol, underlying token, fees)

asset_manager: eth_typing.evm.HexAddress

Address that manages vault assets and executes trades

safe_owners: list[Union[eth_typing.evm.HexAddress, str]]

Addresses of Safe multisig owners

safe_threshold: int

Number of owner signatures required for Safe transactions

uniswap_v2: eth_defi.uniswap_v2.deployment.UniswapV2Deployment | None

Uniswap V2 deployment for router whitelisting

uniswap_v3: eth_defi.uniswap_v3.deployment.UniswapV3Deployment | None

Uniswap V3 deployment for router/quoter whitelisting

orderly_vault: eth_defi.orderly.vault.OrderlyVault | None

Orderly perps vault for whitelisting

aave_v3: eth_defi.aave_v3.deployment.AaveV3Deployment | None

Aave V3 deployment for lending whitelisting

cowswap: bool

Enable CowSwap settlement contract whitelisting

velora: bool

Enable Velora contract whitelisting

gmx_deployment: eth_defi.gmx.whitelist.GMXDeployment | None

GMX perpetuals deployment for whitelisting

cctp_deployment: eth_defi.cctp.whitelist.CCTPDeployment | None

CCTP V2 deployment for cross-chain USDC transfers

any_asset: bool

Allow any ERC-20 asset instead of explicit whitelist

etherscan_api_key: str | None

Etherscan API key for contract verification

verifier: Optional[Literal['etherscan', 'blockscout', 'sourcify', 'oklink']]

Block explorer for contract verification

verifier_url: str | None

Custom block explorer URL

use_forge: bool

Use Forge for contract deployment

between_contracts_delay_seconds: float

Delay between contract deployments (seconds) for nonce propagation

erc_4626_vaults: list[eth_defi.erc_4626.vault.ERC4626Vault] | None

ERC-4626 vaults to whitelist for deposit/withdrawal

guard_only: bool

Deploy only the guard, skip vault deployment

existing_vault_address: Optional[Union[eth_typing.evm.HexAddress, str]]

Reuse an existing vault (requires guard_only=True)

existing_safe_address: Optional[Union[eth_typing.evm.HexAddress, str]]

Reuse an existing Safe instead of deploying a new one

vault_abi: str

Vault contract ABI file path

factory_contract: bool

Use BeaconProxyFactory for vault deployment

from_the_scratch: bool

Deploy fresh Lagoon protocol (fee registry + vault implementation + factory)

assets: list[Union[eth_typing.evm.HexAddress, str]] | None

ERC-20 token addresses to whitelist

safe_salt_nonce: int | None

CREATE2 salt for deterministic Safe address across chains

safe_proxy_factory_address: Optional[Union[eth_typing.evm.HexAddress, str]]

Override Safe ProxyFactory address (default: v1.4.1 canonical). See Safe canonical deployments and Safe contract deployment docs.

__init__(parameters, asset_manager, safe_owners, safe_threshold, uniswap_v2=None, uniswap_v3=None, orderly_vault=None, aave_v3=None, cowswap=False, velora=False, gmx_deployment=None, cctp_deployment=None, any_asset=False, etherscan_api_key=None, verifier=None, verifier_url=None, use_forge=False, between_contracts_delay_seconds=45.0, erc_4626_vaults=None, guard_only=False, existing_vault_address=None, existing_safe_address=None, vault_abi='lagoon/v0.5.0/Vault.json', factory_contract=True, from_the_scratch=False, assets=None, safe_salt_nonce=None, safe_proxy_factory_address=None)
Parameters
Return type

None