LagoonConfig
Documentation for eth_defi.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
parametersVault parameters (name, symbol, underlying token, fees)
asset_managerAddress that manages vault assets and executes trades
safe_ownersAddresses of Safe multisig owners
safe_thresholdNumber of owner signatures required for Safe transactions
uniswap_v2Uniswap V2 deployment for router whitelisting
uniswap_v3Uniswap V3 deployment for router/quoter whitelisting
orderly_vaultOrderly perps vault for whitelisting
aave_v3Aave V3 deployment for lending whitelisting
cowswapEnable CowSwap settlement contract whitelisting
veloraEnable Velora contract whitelisting
gmx_deploymentGMX perpetuals deployment for whitelisting
cctp_deploymentCCTP V2 deployment for cross-chain USDC transfers
any_assetAllow any ERC-20 asset instead of explicit whitelist
etherscan_api_keyEtherscan API key for contract verification
verifierBlock explorer for contract verification
verifier_urlCustom block explorer URL
use_forgeUse Forge for contract deployment
between_contracts_delay_secondsDelay between contract deployments (seconds) for nonce propagation
erc_4626_vaultsERC-4626 vaults to whitelist for deposit/withdrawal
guard_onlyDeploy only the guard, skip vault deployment
existing_vault_addressReuse an existing vault (requires guard_only=True)
existing_safe_addressReuse an existing Safe instead of deploying a new one
vault_abiVault contract ABI file path
factory_contractUse BeaconProxyFactory for vault deployment
from_the_scratchDeploy fresh Lagoon protocol (fee registry + vault implementation + factory)
assetsERC-20 token addresses to whitelist
safe_salt_nonceCREATE2 salt for deterministic Safe address across chains
safe_proxy_factory_addressOverride 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