LagoonConfig
Documentation for eth_defi.erc_4626.vault_protocol.lagoon.deployment.LagoonConfig Python class.
- class LagoonConfig
Bases:
objectConfiguration 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) ordeploy_multichain_lagoon_vault()(multiple chains).Attributes summary
Vault parameters (name, symbol, underlying token, fees)
Address that manages vault assets and executes trades
Addresses of Safe multisig owners
Number of owner signatures required for Safe transactions
Uniswap V2 deployment for router whitelisting
Uniswap V3 deployment for router/quoter whitelisting
Orderly perps vault for whitelisting
Aave V3 deployment for lending whitelisting
Enable CowSwap settlement contract whitelisting
Enable Velora contract whitelisting
GMX perpetuals deployment for whitelisting
CCTP V2 deployment for cross-chain USDC transfers
Allow any ERC-20 asset instead of explicit whitelist
Etherscan API key for contract verification
Block explorer for contract verification
Custom block explorer URL
Use Forge for contract deployment
Delay between contract deployments (seconds) for nonce propagation
ERC-4626 vaults to whitelist for deposit/withdrawal
Deploy only the guard, skip vault deployment
Reuse an existing vault (requires guard_only=True)
Reuse an existing Safe instead of deploying a new one
Vault contract ABI file path
Use BeaconProxyFactory for vault deployment
Deploy fresh Lagoon protocol (fee registry + vault implementation + factory)
ERC-20 token addresses to whitelist
CREATE2 salt for deterministic Safe address across chains
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
- verifier: Optional[Literal['etherscan', 'blockscout', 'sourcify', 'oklink']]
Block explorer for contract verification
- 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_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
parameters (eth_defi.erc_4626.vault_protocol.lagoon.deployment.LagoonDeploymentParameters) –
asset_manager (eth_typing.evm.HexAddress) –
safe_owners (list[Union[eth_typing.evm.HexAddress, str]]) –
safe_threshold (int) –
uniswap_v2 (eth_defi.uniswap_v2.deployment.UniswapV2Deployment | None) –
uniswap_v3 (eth_defi.uniswap_v3.deployment.UniswapV3Deployment | None) –
orderly_vault (eth_defi.orderly.vault.OrderlyVault | None) –
aave_v3 (eth_defi.aave_v3.deployment.AaveV3Deployment | None) –
cowswap (bool) –
velora (bool) –
gmx_deployment (eth_defi.gmx.whitelist.GMXDeployment | None) –
cctp_deployment (eth_defi.cctp.whitelist.CCTPDeployment | None) –
any_asset (bool) –
etherscan_api_key (str | None) –
verifier (Optional[Literal['etherscan', 'blockscout', 'sourcify', 'oklink']]) –
verifier_url (str | None) –
use_forge (bool) –
between_contracts_delay_seconds (float) –
erc_4626_vaults (list[eth_defi.erc_4626.vault.ERC4626Vault] | None) –
guard_only (bool) –
existing_vault_address (Optional[Union[eth_typing.evm.HexAddress, str]]) –
existing_safe_address (Optional[Union[eth_typing.evm.HexAddress, str]]) –
vault_abi (str) –
factory_contract (bool) –
from_the_scratch (bool) –
assets (list[Union[eth_typing.evm.HexAddress, str]] | None) –
safe_salt_nonce (int | None) –
safe_proxy_factory_address (Optional[Union[eth_typing.evm.HexAddress, str]]) –
- Return type
None