diff --git a/packages/contracts/resource/plumeMainnet.toml b/packages/contracts/resource/plumeMainnet.toml index 9266d9f0..9755198f 100644 --- a/packages/contracts/resource/plumeMainnet.toml +++ b/packages/contracts/resource/plumeMainnet.toml @@ -20,10 +20,12 @@ asset_manager = "0x97BE1b79AA9dB55e7235a9dd5E686cc4A26A7959" # USDC.e token address - Bridged USDC (Stargate) (USDC.e) usdc_token="0x3938A812c54304fEffD266C7E2E70B48F9475aD6" -# Liquid Continuous Multi Token Vault Proxy +# Liquid Continuous Multi Token Vault Proxy - Plume Mainnet liquid_vault_proxy="0x2b9d2023DbF3c7473f1cec42F78713d09DdC9FBF" -# Liquid Continuous Multi Token Vault Impl -liquid_vault_impl="0xe4a4d891f02DF7bFFc5ff9e691313DE8a9E76b91" +# Liquid Continuous Multi Token Vault Impl - Plume Mainnet (v2 - latest) +liquid_vault_impl="0xD9991FC39980E4294F6953AB5aDf514Db8545658" +# Liquid Continuous Multi Token Vault Impl - Plume Mainnet (v1) +liquid_vault_impl_V1="0xe4a4d891f02DF7bFFc5ff9e691313DE8a9E76b91" [evm.contracts.liquid_continuous_multi_token_vault] diff --git a/spikes/spike-liquid-stone/packages/nextjs/contracts/deployedContracts.ts b/spikes/spike-liquid-stone/packages/nextjs/contracts/deployedContracts.ts index ca885774..978e9a47 100644 --- a/spikes/spike-liquid-stone/packages/nextjs/contracts/deployedContracts.ts +++ b/spikes/spike-liquid-stone/packages/nextjs/contracts/deployedContracts.ts @@ -23822,6283 +23822,6321 @@ const deployedContracts = { inheritedFunctions: {}, }, "LiquidContinuousMultiTokenVaultAsProxy#0": { - address: "0x2b9d2023DbF3c7473f1cec42F78713d09DdC9FBF", - abi: [ - { - type: "constructor", - inputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "ASSET_MANAGER_ROLE", - inputs: [], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "CLOCK_MODE", - inputs: [], - outputs: [ - { - name: "", - type: "string", - internalType: "string", - }, - ], - stateMutability: "pure", - }, - { - type: "function", - name: "DEFAULT_ADMIN_ROLE", - inputs: [], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "FREQUENCY", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "OPERATOR_ROLE", - inputs: [], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "RATE_PERCENT_SCALED", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "SCALE", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "TENOR", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "UPGRADER_ROLE", - inputs: [], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "UPGRADE_INTERFACE_VERSION", - inputs: [], - outputs: [ - { - name: "", - type: "string", - internalType: "string", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "_redeemOptimizer", - inputs: [], - outputs: [ - { - name: "", - type: "address", - internalType: "contract IRedeemOptimizer", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "_vaultStartTimestamp", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "_yieldStrategy", - inputs: [], - outputs: [ - { - name: "", - type: "address", - internalType: "contract IYieldStrategy", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "asset", - inputs: [], - outputs: [ - { - name: "assetTokenAddress", - type: "address", - internalType: "address", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "balanceOf", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "id", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "balanceOfBatch", - inputs: [ - { - name: "accounts", - type: "address[]", - internalType: "address[]", - }, - { - name: "ids", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - outputs: [ - { - name: "", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "calcPrice", - inputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "price", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "calcYield", - inputs: [ - { - name: "principal", - type: "uint256", - internalType: "uint256", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "yield", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "cancelRequestUnlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "claimableDepositRequest", - inputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - { - name: "", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "pure", - }, - { - type: "function", - name: "claimableRedeemRequest", - inputs: [ - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "clock", - inputs: [], - outputs: [ - { - name: "clock_", - type: "uint48", - internalType: "uint48", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToAssets", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToAssetsForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToAssetsForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToAssetsForDepositPeriodBatch", - inputs: [ - { - name: "shares", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets_", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToShares", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToSharesForDepositPeriod", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "currentPeriod", - inputs: [], - outputs: [ - { - name: "currentPeriod_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "currentPeriodRate", - inputs: [], - outputs: [ - { - name: "currentPeriodRate_", - type: "tuple", - internalType: "struct ITripleRateContext.PeriodRate", - components: [ - { - name: "interestRate", - type: "uint256", - internalType: "uint256", - }, - { - name: "effectiveFromPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "currentPeriodsElapsed", - inputs: [], - outputs: [ - { - name: "numPeriodsElapsed_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "deposit", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "shares_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "deposit", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "exists", - inputs: [ - { - name: "id", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "bool", - internalType: "bool", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "frequency", - inputs: [], - outputs: [ - { - name: "frequency_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "getRoleAdmin", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - ], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "getRoleMember", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "index", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "address", - internalType: "address", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "getRoleMemberCount", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "getVersion", - inputs: [], - outputs: [ - { - name: "version", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "pure", - }, - { - type: "function", - name: "grantRole", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "account", - type: "address", - internalType: "address", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "hasRole", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "account", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "", - type: "bool", - internalType: "bool", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "initialize", - inputs: [ - { - name: "vaultParams", - type: "tuple", - internalType: "struct LiquidContinuousMultiTokenVault.VaultParams", - components: [ - { - name: "vaultAuth", - type: "tuple", - internalType: "struct LiquidContinuousMultiTokenVault.VaultAuth", - components: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "operator", - type: "address", - internalType: "address", - }, - { - name: "upgrader", - type: "address", - internalType: "address", - }, - { - name: "assetManager", - type: "address", - internalType: "address", - }, - ], - }, - { - name: "asset", - type: "address", - internalType: "contract IERC20Metadata", - }, - { - name: "yieldStrategy", - type: "address", - internalType: "contract IYieldStrategy", - }, - { - name: "redeemOptimizer", - type: "address", - internalType: "contract IRedeemOptimizer", - }, - { - name: "vaultStartTimestamp", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemNoticePeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "contextParams", - type: "tuple", - internalType: "struct TripleRateContext.ContextParams", - components: [ - { - name: "fullRateScaled", - type: "uint256", - internalType: "uint256", - }, - { - name: "initialReducedRate", - type: "tuple", - internalType: "struct ITripleRateContext.PeriodRate", - components: [ - { - name: "interestRate", - type: "uint256", - internalType: "uint256", - }, - { - name: "effectiveFromPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - name: "frequency", - type: "uint256", - internalType: "uint256", - }, - { - name: "tenor", - type: "uint256", - internalType: "uint256", - }, - { - name: "decimals", - type: "uint256", - internalType: "uint256", - }, - ], - }, - ], - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "isApprovedForAll", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "operator", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "", - type: "bool", - internalType: "bool", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "lock", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "lockedAmount", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "lockedAmount_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "maxDeposit", - inputs: [ - { - name: "", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "maxRedeemAtPeriod", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "maxShares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "maxRequestUnlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "minUnlockPeriod", - inputs: [], - outputs: [ - { - name: "minUnlockPeriod_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "noticePeriod", - inputs: [], - outputs: [ - { - name: "noticePeriod_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "numPeriodsForFullRate", - inputs: [], - outputs: [ - { - name: "numPeriods", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "pause", - inputs: [], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "paused", - inputs: [], - outputs: [ - { - name: "", - type: "bool", - internalType: "bool", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "pendingDepositRequest", - inputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - { - name: "", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "pure", - }, - { - type: "function", - name: "pendingRedeemRequest", - inputs: [ - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - { - name: "", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "previewDeposit", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "previewRedeemForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "previewRedeemForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "previousPeriodRate", - inputs: [], - outputs: [ - { - name: "previousPeriodRate_", - type: "tuple", - internalType: "struct ITripleRateContext.PeriodRate", - components: [ - { - name: "interestRate", - type: "uint256", - internalType: "uint256", - }, - { - name: "effectiveFromPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "proxiableUUID", - inputs: [], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "rateScaled", - inputs: [], - outputs: [ - { - name: "ratePercentageScaled_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "redeem", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "redeemForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "redeemForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "renounceRole", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "callerConfirmation", - type: "address", - internalType: "address", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "requestDeposit", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "requestId_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "requestRedeem", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "requestId_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "requestUnlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "revokeRole", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "account", - type: "address", - internalType: "address", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "safeBatchTransferFrom", - inputs: [ - { - name: "from", - type: "address", - internalType: "address", - }, - { - name: "to", - type: "address", - internalType: "address", - }, - { - name: "ids", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "data", - type: "bytes", - internalType: "bytes", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "safeTransferFrom", - inputs: [ - { - name: "from", - type: "address", - internalType: "address", - }, - { - name: "to", - type: "address", - internalType: "address", - }, - { - name: "id", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - { - name: "data", - type: "bytes", - internalType: "bytes", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "scale", - inputs: [], - outputs: [ - { - name: "scale_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "setApprovalForAll", - inputs: [ - { - name: "operator", - type: "address", - internalType: "address", - }, - { - name: "approved", - type: "bool", - internalType: "bool", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setRedeemOptimizer", - inputs: [ - { - name: "redeemOptimizer", - type: "address", - internalType: "contract IRedeemOptimizer", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setReducedRate", - inputs: [ - { - name: "reducedRateScaled_", - type: "uint256", - internalType: "uint256", - }, - { - name: "effectiveFromPeriod_", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setReducedRateAtCurrent", - inputs: [ - { - name: "reducedRateScaled_", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setVaultStartTimestamp", - inputs: [ - { - name: "vaultStartTimestamp", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setYieldStrategy", - inputs: [ - { - name: "yieldStrategy", - type: "address", - internalType: "contract IYieldStrategy", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "sharesAtPeriod", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "supportsInterface", - inputs: [ - { - name: "interfaceId", - type: "bytes4", - internalType: "bytes4", - }, - ], - outputs: [ - { - name: "", - type: "bool", - internalType: "bool", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "totalAssets", - inputs: [], - outputs: [ - { - name: "totalManagedAssets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "totalSupply", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "totalSupply", - inputs: [ - { - name: "id", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "unlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "unlockRequestAmount", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "amount_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "unlockRequestAmountByDepositPeriod", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "unlockRequestDepositPeriods", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "unlockRequests", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "unpause", - inputs: [], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "upgradeToAndCall", - inputs: [ - { - name: "newImplementation", - type: "address", - internalType: "address", - }, - { - name: "data", - type: "bytes", - internalType: "bytes", - }, - ], - outputs: [], - stateMutability: "payable", - }, - { - type: "function", - name: "uri", - inputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "string", - internalType: "string", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "withdrawAsset", - inputs: [ - { - name: "to", - type: "address", - internalType: "address", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "event", - name: "ApprovalForAll", - inputs: [ - { - name: "account", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "operator", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "approved", - type: "bool", - indexed: false, - internalType: "bool", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "AssetTransfer", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "asset", - type: "address", - indexed: false, - internalType: "address", - }, - { - name: "amount", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "CancelRedeemRequest", - inputs: [ - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - indexed: true, - internalType: "uint256", - }, - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "CurrentPeriodRateChanged", - inputs: [ - { - name: "interestRate", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "effectiveFromPeriod", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "CurrentTenorPeriodAndRateChanged", - inputs: [ - { - name: "tenorPeriod", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "reducedRate", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Deposit", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Deposit", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "DepositRequest", - inputs: [ - { - name: "controller", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - indexed: true, - internalType: "uint256", - }, - { - name: "sender", - type: "address", - indexed: false, - internalType: "address", - }, - { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Initialized", - inputs: [ - { - name: "version", - type: "uint64", - indexed: false, - internalType: "uint64", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Paused", - inputs: [ - { - name: "account", - type: "address", - indexed: false, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "RedeemRequest", - inputs: [ - { - name: "controller", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - indexed: true, - internalType: "uint256", - }, - { - name: "sender", - type: "address", - indexed: false, - internalType: "address", - }, - { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "RoleAdminChanged", - inputs: [ - { - name: "role", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "previousAdminRole", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "newAdminRole", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "RoleGranted", - inputs: [ - { - name: "role", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "account", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "RoleRevoked", - inputs: [ - { - name: "role", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "account", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "TransferBatch", - inputs: [ - { - name: "operator", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "from", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "to", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "ids", - type: "uint256[]", - indexed: false, - internalType: "uint256[]", - }, - { - name: "values", - type: "uint256[]", - indexed: false, - internalType: "uint256[]", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "TransferSingle", - inputs: [ - { - name: "operator", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "from", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "to", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "id", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "value", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "URI", - inputs: [ - { - name: "value", - type: "string", - indexed: false, - internalType: "string", - }, - { - name: "id", - type: "uint256", - indexed: true, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Unpaused", - inputs: [ - { - name: "account", - type: "address", - indexed: false, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Upgraded", - inputs: [ - { - name: "implementation", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Withdraw", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Withdraw", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "error", - name: "AccessControlBadConfirmation", - inputs: [], - }, - { - type: "error", - name: "AccessControlUnauthorizedAccount", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "neededRole", - type: "bytes32", - internalType: "bytes32", - }, - ], - }, - { - type: "error", - name: "AddressEmptyCode", - inputs: [ - { - name: "target", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "AddressInsufficientBalance", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1155InsufficientBalance", - inputs: [ - { - name: "sender", - type: "address", - internalType: "address", - }, - { - name: "balance", - type: "uint256", - internalType: "uint256", - }, - { - name: "needed", - type: "uint256", - internalType: "uint256", - }, - { - name: "tokenId", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "ERC1155InvalidApprover", - inputs: [ - { - name: "approver", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1155InvalidArrayLength", - inputs: [ - { - name: "idsLength", - type: "uint256", - internalType: "uint256", - }, - { - name: "valuesLength", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "ERC1155InvalidOperator", - inputs: [ - { - name: "operator", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1155InvalidReceiver", - inputs: [ - { - name: "receiver", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1155InvalidSender", - inputs: [ - { - name: "sender", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1155MissingApprovalForAll", - inputs: [ - { - name: "operator", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1967InvalidImplementation", - inputs: [ - { - name: "implementation", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1967NonPayable", - inputs: [], - }, - { - type: "error", - name: "EnforcedPause", - inputs: [], - }, - { - type: "error", - name: "EnumerableMapNonexistentKey", - inputs: [ - { - name: "key", - type: "bytes32", - internalType: "bytes32", - }, - ], - }, - { - type: "error", - name: "ExpectedPause", - inputs: [], - }, - { - type: "error", - name: "FailedInnerCall", - inputs: [], - }, - { - type: "error", - name: "InvalidInitialization", - inputs: [], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__AmountMismatch", - inputs: [ - { - name: "amount1", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount2", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__ControllerNotSender", - inputs: [ - { - name: "sender", - type: "address", - internalType: "address", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidAuthAddress", - inputs: [ - { - name: "authName", - type: "string", - internalType: "string", - }, - { - name: "authAddress", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidComponentTokenAmount", - inputs: [ - { - name: "componentTokenAmount", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockRequestedAmount", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidFrequency", - inputs: [ - { - name: "frequency", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__UnAuthorized", - inputs: [ - { - name: "sender", - type: "address", - internalType: "address", - }, - { - name: "authorizedOwner", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__UnlockPeriodMismatch", - inputs: [ - { - name: "unlockPeriod1", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockPeriod2", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__CallerMissingApprovalForAll", - inputs: [ - { - name: "operator", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__ExceededMaxDeposit", - inputs: [ - { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "maxAssets", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__ExceededMaxRedeem", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "maxShares", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__InvalidArrayLength", - inputs: [ - { - name: "depositPeriodsLength", - type: "uint256", - internalType: "uint256", - }, - { - name: "sharesLength", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__RedeemBeforeDeposit", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__RedeemTimePeriodNotSupported", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "period", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "NotInitializing", - inputs: [], - }, - { - type: "error", - name: "ReentrancyGuardReentrantCall", - inputs: [], - }, - { - type: "error", - name: "SafeCastOverflowedUintDowncast", - inputs: [ - { - name: "bits", - type: "uint8", - internalType: "uint8", - }, - { - name: "value", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "SafeERC20FailedOperation", - inputs: [ - { - name: "token", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__AuthorizeCallerFailed", - inputs: [ - { - name: "caller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - { - name: "maxRequestUnlockAmount", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__ExceededMaxUnlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - { - name: "maxUnlockAmount", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__InvalidArrayLength", - inputs: [ - { - name: "depositPeriodsLength", - type: "uint256", - internalType: "uint256", - }, - { - name: "amountsLength", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", - inputs: [ - { - name: "caller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "currentPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", - inputs: [ - { - name: "caller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "Timer__StartTimeNotReached", - inputs: [ - { - name: "currentTime", - type: "uint256", - internalType: "uint256", - }, - { - name: "startTime", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TripleRateContext_PeriodRegressionNotAllowed", - inputs: [ - { - name: "currentPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "updatePeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TripleRateContext_TenorPeriodRegressionNotAllowed", - inputs: [ - { - name: "tenorPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "newTenorPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "UUPSUnauthorizedCallContext", - inputs: [], - }, - { - type: "error", - name: "UUPSUnsupportedProxiableUUID", - inputs: [ - { - name: "slot", - type: "bytes32", - internalType: "bytes32", - }, - ], - }, - ], - inheritedFunctions: {}, - }, - "LiquidContinuousMultiTokenVault#0": { - address: "0xe4a4d891f02DF7bFFc5ff9e691313DE8a9E76b91", - abi: [ - { - type: "constructor", - inputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "ASSET_MANAGER_ROLE", - inputs: [], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "CLOCK_MODE", - inputs: [], - outputs: [ - { - name: "", - type: "string", - internalType: "string", - }, - ], - stateMutability: "pure", - }, - { - type: "function", - name: "DEFAULT_ADMIN_ROLE", - inputs: [], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "FREQUENCY", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "OPERATOR_ROLE", - inputs: [], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "RATE_PERCENT_SCALED", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "SCALE", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "TENOR", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "UPGRADER_ROLE", - inputs: [], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "UPGRADE_INTERFACE_VERSION", - inputs: [], - outputs: [ - { - name: "", - type: "string", - internalType: "string", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "_redeemOptimizer", - inputs: [], - outputs: [ - { - name: "", - type: "address", - internalType: "contract IRedeemOptimizer", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "_vaultStartTimestamp", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "_yieldStrategy", - inputs: [], - outputs: [ - { - name: "", - type: "address", - internalType: "contract IYieldStrategy", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "asset", - inputs: [], - outputs: [ - { - name: "assetTokenAddress", - type: "address", - internalType: "address", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "balanceOf", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "id", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "balanceOfBatch", - inputs: [ - { - name: "accounts", - type: "address[]", - internalType: "address[]", - }, - { - name: "ids", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - outputs: [ - { - name: "", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "calcPrice", - inputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "price", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "calcYield", - inputs: [ - { - name: "principal", - type: "uint256", - internalType: "uint256", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "yield", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "cancelRequestUnlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "claimableDepositRequest", - inputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - { - name: "", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "pure", - }, - { - type: "function", - name: "claimableRedeemRequest", - inputs: [ - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "clock", - inputs: [], - outputs: [ - { - name: "clock_", - type: "uint48", - internalType: "uint48", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToAssets", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToAssetsForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToAssetsForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToAssetsForDepositPeriodBatch", - inputs: [ - { - name: "shares", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets_", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToShares", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToSharesForDepositPeriod", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "currentPeriod", - inputs: [], - outputs: [ - { - name: "currentPeriod_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "currentPeriodRate", - inputs: [], - outputs: [ - { - name: "currentPeriodRate_", - type: "tuple", - internalType: "struct ITripleRateContext.PeriodRate", - components: [ - { - name: "interestRate", - type: "uint256", - internalType: "uint256", - }, - { - name: "effectiveFromPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "currentPeriodsElapsed", - inputs: [], - outputs: [ - { - name: "numPeriodsElapsed_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "deposit", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "shares_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "deposit", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "exists", - inputs: [ - { - name: "id", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "bool", - internalType: "bool", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "frequency", - inputs: [], - outputs: [ - { - name: "frequency_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "getRoleAdmin", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - ], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "getRoleMember", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "index", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "address", - internalType: "address", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "getRoleMemberCount", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "getVersion", - inputs: [], - outputs: [ - { - name: "version", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "pure", - }, - { - type: "function", - name: "grantRole", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "account", - type: "address", - internalType: "address", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "hasRole", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "account", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "", - type: "bool", - internalType: "bool", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "initialize", - inputs: [ - { - name: "vaultParams", - type: "tuple", - internalType: "struct LiquidContinuousMultiTokenVault.VaultParams", - components: [ - { - name: "vaultAuth", - type: "tuple", - internalType: "struct LiquidContinuousMultiTokenVault.VaultAuth", - components: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "operator", - type: "address", - internalType: "address", - }, - { - name: "upgrader", - type: "address", - internalType: "address", - }, - { - name: "assetManager", - type: "address", - internalType: "address", - }, - ], - }, - { - name: "asset", - type: "address", - internalType: "contract IERC20Metadata", - }, - { - name: "yieldStrategy", - type: "address", - internalType: "contract IYieldStrategy", - }, - { - name: "redeemOptimizer", - type: "address", - internalType: "contract IRedeemOptimizer", - }, - { - name: "vaultStartTimestamp", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemNoticePeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "contextParams", - type: "tuple", - internalType: "struct TripleRateContext.ContextParams", - components: [ - { - name: "fullRateScaled", - type: "uint256", - internalType: "uint256", - }, - { - name: "initialReducedRate", - type: "tuple", - internalType: "struct ITripleRateContext.PeriodRate", - components: [ - { - name: "interestRate", - type: "uint256", - internalType: "uint256", - }, - { - name: "effectiveFromPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - name: "frequency", - type: "uint256", - internalType: "uint256", - }, - { - name: "tenor", - type: "uint256", - internalType: "uint256", - }, - { - name: "decimals", - type: "uint256", - internalType: "uint256", - }, - ], - }, - ], - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "isApprovedForAll", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "operator", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "", - type: "bool", - internalType: "bool", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "lock", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "lockedAmount", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "lockedAmount_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "maxDeposit", - inputs: [ - { - name: "", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "maxRedeemAtPeriod", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "maxShares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "maxRequestUnlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "minUnlockPeriod", - inputs: [], - outputs: [ - { - name: "minUnlockPeriod_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "noticePeriod", - inputs: [], - outputs: [ - { - name: "noticePeriod_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "numPeriodsForFullRate", - inputs: [], - outputs: [ - { - name: "numPeriods", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "pause", - inputs: [], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "paused", - inputs: [], - outputs: [ - { - name: "", - type: "bool", - internalType: "bool", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "pendingDepositRequest", - inputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - { - name: "", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "pure", - }, - { - type: "function", - name: "pendingRedeemRequest", - inputs: [ - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - { - name: "", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "previewDeposit", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "previewRedeemForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "previewRedeemForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "previousPeriodRate", - inputs: [], - outputs: [ - { - name: "previousPeriodRate_", - type: "tuple", - internalType: "struct ITripleRateContext.PeriodRate", - components: [ - { - name: "interestRate", - type: "uint256", - internalType: "uint256", - }, - { - name: "effectiveFromPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "proxiableUUID", - inputs: [], - outputs: [ - { - name: "", - type: "bytes32", - internalType: "bytes32", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "rateScaled", - inputs: [], - outputs: [ - { - name: "ratePercentageScaled_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "redeem", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "redeemForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "redeemForDepositPeriod", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "renounceRole", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "callerConfirmation", - type: "address", - internalType: "address", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "requestDeposit", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "requestId_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "requestRedeem", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "requestId_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "requestUnlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "revokeRole", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "account", - type: "address", - internalType: "address", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "safeBatchTransferFrom", - inputs: [ - { - name: "from", - type: "address", - internalType: "address", - }, - { - name: "to", - type: "address", - internalType: "address", - }, - { - name: "ids", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "data", - type: "bytes", - internalType: "bytes", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "safeTransferFrom", - inputs: [ - { - name: "from", - type: "address", - internalType: "address", - }, - { - name: "to", - type: "address", - internalType: "address", - }, - { - name: "id", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - { - name: "data", - type: "bytes", - internalType: "bytes", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "scale", - inputs: [], - outputs: [ - { - name: "scale_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "setApprovalForAll", - inputs: [ - { - name: "operator", - type: "address", - internalType: "address", - }, - { - name: "approved", - type: "bool", - internalType: "bool", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setRedeemOptimizer", - inputs: [ - { - name: "redeemOptimizer", - type: "address", - internalType: "contract IRedeemOptimizer", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setReducedRate", - inputs: [ - { - name: "reducedRateScaled_", - type: "uint256", - internalType: "uint256", - }, - { - name: "effectiveFromPeriod_", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setReducedRateAtCurrent", - inputs: [ - { - name: "reducedRateScaled_", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setVaultStartTimestamp", - inputs: [ - { - name: "vaultStartTimestamp", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setYieldStrategy", - inputs: [ - { - name: "yieldStrategy", - type: "address", - internalType: "contract IYieldStrategy", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "sharesAtPeriod", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "supportsInterface", - inputs: [ - { - name: "interfaceId", - type: "bytes4", - internalType: "bytes4", - }, - ], - outputs: [ - { - name: "", - type: "bool", - internalType: "bool", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "totalAssets", - inputs: [], - outputs: [ - { - name: "totalManagedAssets", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "totalSupply", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "totalSupply", - inputs: [ - { - name: "id", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "unlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "unlockRequestAmount", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "amount_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "unlockRequestAmountByDepositPeriod", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "unlockRequestDepositPeriods", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "unlockRequests", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "unpause", - inputs: [], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "upgradeToAndCall", - inputs: [ - { - name: "newImplementation", - type: "address", - internalType: "address", - }, - { - name: "data", - type: "bytes", - internalType: "bytes", - }, - ], - outputs: [], - stateMutability: "payable", - }, - { - type: "function", - name: "uri", - inputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "string", - internalType: "string", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "withdrawAsset", - inputs: [ - { - name: "to", - type: "address", - internalType: "address", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "event", - name: "ApprovalForAll", - inputs: [ - { - name: "account", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "operator", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "approved", - type: "bool", - indexed: false, - internalType: "bool", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "AssetTransfer", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "asset", - type: "address", - indexed: false, - internalType: "address", - }, - { - name: "amount", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "CancelRedeemRequest", - inputs: [ - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - indexed: true, - internalType: "uint256", - }, - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "CurrentPeriodRateChanged", - inputs: [ - { - name: "interestRate", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "effectiveFromPeriod", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "CurrentTenorPeriodAndRateChanged", - inputs: [ - { - name: "tenorPeriod", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "reducedRate", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Deposit", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Deposit", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "DepositRequest", - inputs: [ - { - name: "controller", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - indexed: true, - internalType: "uint256", - }, - { - name: "sender", - type: "address", - indexed: false, - internalType: "address", - }, - { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Initialized", - inputs: [ - { - name: "version", - type: "uint64", - indexed: false, - internalType: "uint64", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Paused", - inputs: [ - { - name: "account", - type: "address", - indexed: false, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "RedeemRequest", - inputs: [ - { - name: "controller", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - indexed: true, - internalType: "uint256", - }, - { - name: "sender", - type: "address", - indexed: false, - internalType: "address", - }, - { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "RoleAdminChanged", - inputs: [ - { - name: "role", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "previousAdminRole", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "newAdminRole", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "RoleGranted", - inputs: [ - { - name: "role", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "account", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "RoleRevoked", - inputs: [ - { - name: "role", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "account", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "TransferBatch", - inputs: [ - { - name: "operator", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "from", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "to", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "ids", - type: "uint256[]", - indexed: false, - internalType: "uint256[]", - }, - { - name: "values", - type: "uint256[]", - indexed: false, - internalType: "uint256[]", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "TransferSingle", - inputs: [ - { - name: "operator", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "from", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "to", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "id", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "value", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "URI", - inputs: [ - { - name: "value", - type: "string", - indexed: false, - internalType: "string", - }, - { - name: "id", - type: "uint256", - indexed: true, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Unpaused", - inputs: [ - { - name: "account", - type: "address", - indexed: false, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Upgraded", - inputs: [ - { - name: "implementation", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Withdraw", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Withdraw", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "error", - name: "AccessControlBadConfirmation", - inputs: [], - }, - { - type: "error", - name: "AccessControlUnauthorizedAccount", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "neededRole", - type: "bytes32", - internalType: "bytes32", - }, - ], - }, - { - type: "error", - name: "AddressEmptyCode", - inputs: [ - { - name: "target", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "AddressInsufficientBalance", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1155InsufficientBalance", - inputs: [ - { - name: "sender", - type: "address", - internalType: "address", - }, - { - name: "balance", - type: "uint256", - internalType: "uint256", - }, - { - name: "needed", - type: "uint256", - internalType: "uint256", - }, - { - name: "tokenId", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "ERC1155InvalidApprover", - inputs: [ - { - name: "approver", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1155InvalidArrayLength", - inputs: [ - { - name: "idsLength", - type: "uint256", - internalType: "uint256", - }, - { - name: "valuesLength", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "ERC1155InvalidOperator", - inputs: [ - { - name: "operator", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1155InvalidReceiver", - inputs: [ - { - name: "receiver", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1155InvalidSender", - inputs: [ - { - name: "sender", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1155MissingApprovalForAll", - inputs: [ - { - name: "operator", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1967InvalidImplementation", - inputs: [ - { - name: "implementation", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC1967NonPayable", - inputs: [], - }, - { - type: "error", - name: "EnforcedPause", - inputs: [], - }, - { - type: "error", - name: "EnumerableMapNonexistentKey", - inputs: [ - { - name: "key", - type: "bytes32", - internalType: "bytes32", - }, - ], - }, - { - type: "error", - name: "ExpectedPause", - inputs: [], - }, - { - type: "error", - name: "FailedInnerCall", - inputs: [], - }, - { - type: "error", - name: "InvalidInitialization", - inputs: [], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__AmountMismatch", - inputs: [ - { - name: "amount1", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount2", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__ControllerNotSender", - inputs: [ - { - name: "sender", - type: "address", - internalType: "address", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidAuthAddress", - inputs: [ - { - name: "authName", - type: "string", - internalType: "string", - }, - { - name: "authAddress", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidComponentTokenAmount", - inputs: [ - { - name: "componentTokenAmount", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockRequestedAmount", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidFrequency", - inputs: [ - { - name: "frequency", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__UnAuthorized", - inputs: [ - { - name: "sender", - type: "address", - internalType: "address", - }, - { - name: "authorizedOwner", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__UnlockPeriodMismatch", - inputs: [ - { - name: "unlockPeriod1", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockPeriod2", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__CallerMissingApprovalForAll", - inputs: [ - { - name: "operator", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__ExceededMaxDeposit", - inputs: [ - { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "maxAssets", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__ExceededMaxRedeem", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "maxShares", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__InvalidArrayLength", - inputs: [ - { - name: "depositPeriodsLength", - type: "uint256", - internalType: "uint256", - }, - { - name: "sharesLength", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__RedeemBeforeDeposit", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "MultiTokenVault__RedeemTimePeriodNotSupported", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "period", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "NotInitializing", - inputs: [], - }, - { - type: "error", - name: "ReentrancyGuardReentrantCall", - inputs: [], - }, - { - type: "error", - name: "SafeCastOverflowedUintDowncast", - inputs: [ - { - name: "bits", - type: "uint8", - internalType: "uint8", - }, - { - name: "value", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "SafeERC20FailedOperation", - inputs: [ - { - name: "token", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__AuthorizeCallerFailed", - inputs: [ - { - name: "caller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - { - name: "maxRequestUnlockAmount", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__ExceededMaxUnlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - { - name: "maxUnlockAmount", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__InvalidArrayLength", - inputs: [ - { - name: "depositPeriodsLength", - type: "uint256", - internalType: "uint256", - }, - { - name: "amountsLength", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", - inputs: [ - { - name: "caller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "currentPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", - inputs: [ - { - name: "caller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "Timer__StartTimeNotReached", - inputs: [ - { - name: "currentTime", - type: "uint256", - internalType: "uint256", - }, - { - name: "startTime", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TripleRateContext_PeriodRegressionNotAllowed", - inputs: [ - { - name: "currentPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "updatePeriod", - type: "uint256", - internalType: "uint256", - }, - ], - }, - { - type: "error", - name: "TripleRateContext_TenorPeriodRegressionNotAllowed", - inputs: [ - { - name: "tenorPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "newTenorPeriod", - type: "uint256", - internalType: "uint256", - }, + address: "0x2b9d2023DbF3c7473f1cec42F78713d09DdC9FBF", + abi: [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "ASSET_MANAGER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "CLOCK_MODE", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "FREQUENCY", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "OPERATOR_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "RATE_PERCENT_SCALED", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "SCALE", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "TENOR", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "UPGRADER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "_redeemOptimizer", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IRedeemOptimizer", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "_vaultStartTimestamp", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "_yieldStrategy", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IYieldStrategy", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "asset", + inputs: [], + outputs: [ + { + name: "assetTokenAddress", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "balanceOfBatch", + inputs: [ + { + name: "accounts", + type: "address[]", + internalType: "address[]", + }, + { + name: "ids", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [ + { + name: "", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "calcPrice", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "price", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "calcYield", + inputs: [ + { + name: "principal", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "yield", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "cancelRequestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "claimableDepositRequest", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "claimableRedeemRequest", + inputs: [ + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "clock", + inputs: [], + outputs: [ + { + name: "clock_", + type: "uint48", + internalType: "uint48", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssets", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssetsForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssetsForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssetsForDepositPeriodBatch", + inputs: [ + { + name: "shares", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets_", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToShares", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToSharesForDepositPeriod", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "currentPeriod", + inputs: [], + outputs: [ + { + name: "currentPeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "currentPeriodRate", + inputs: [], + outputs: [ + { + name: "currentPeriodRate_", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "currentPeriodsElapsed", + inputs: [], + outputs: [ + { + name: "numPeriodsElapsed_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "exists", + inputs: [ + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "frequency", + inputs: [], + outputs: [ + { + name: "frequency_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleMember", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "index", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleMemberCount", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getVersion", + inputs: [], + outputs: [ + { + name: "version", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "vaultParams", + type: "tuple", + internalType: "struct LiquidContinuousMultiTokenVault.VaultParams", + components: [ + { + name: "vaultAuth", + type: "tuple", + internalType: "struct LiquidContinuousMultiTokenVault.VaultAuth", + components: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "upgrader", + type: "address", + internalType: "address", + }, + { + name: "assetManager", + type: "address", + internalType: "address", + }, + ], + }, + { + name: "asset", + type: "address", + internalType: "contract IERC20Metadata", + }, + { + name: "yieldStrategy", + type: "address", + internalType: "contract IYieldStrategy", + }, + { + name: "redeemOptimizer", + type: "address", + internalType: "contract IRedeemOptimizer", + }, + { + name: "vaultStartTimestamp", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemNoticePeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "contextParams", + type: "tuple", + internalType: "struct TripleRateContext.ContextParams", + components: [ + { + name: "fullRateScaled", + type: "uint256", + internalType: "uint256", + }, + { + name: "initialReducedRate", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "frequency", + type: "uint256", + internalType: "uint256", + }, + { + name: "tenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "isApprovedForAll", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "operator", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "lock", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "lockedAmount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "lockedAmount_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "maxDeposit", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "maxRedeemAtPeriod", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "maxShares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "maxRequestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "minUnlockPeriod", + inputs: [], + outputs: [ + { + name: "minUnlockPeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "noticePeriod", + inputs: [], + outputs: [ + { + name: "noticePeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "numPeriodsForFullRate", + inputs: [], + outputs: [ + { + name: "numPeriods", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "pendingDepositRequest", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "pendingRedeemRequest", + inputs: [ + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previewDeposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previewRedeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previewRedeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previousPeriodRate", + inputs: [], + outputs: [ + { + name: "previousPeriodRate_", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "rateScaled", + inputs: [], + outputs: [ + { + name: "ratePercentageScaled_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "redeem", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "redeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "redeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "requestDeposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "requestId_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "requestRedeem", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "requestId_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "requestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "safeBatchTransferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "ids", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "scale", + inputs: [], + outputs: [ + { + name: "scale_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "setApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "approved", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setRedeemOptimizer", + inputs: [ + { + name: "redeemOptimizer", + type: "address", + internalType: "contract IRedeemOptimizer", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setReducedRate", + inputs: [ + { + name: "reducedRateScaled_", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setReducedRateAtCurrent", + inputs: [ + { + name: "reducedRateScaled_", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setVaultStartTimestamp", + inputs: [ + { + name: "vaultStartTimestamp", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setYieldStrategy", + inputs: [ + { + name: "yieldStrategy", + type: "address", + internalType: "contract IYieldStrategy", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "sharesAtPeriod", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalAssets", + inputs: [], + outputs: [ + { + name: "totalManagedAssets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalAssets", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "totalManagedAssets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [ + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "unlockRequestAmount", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "amount_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlockRequestAmountByDepositPeriod", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlockRequestDepositPeriods", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlockRequests", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unpause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "upgradeToAndCall", + inputs: [ + { + name: "newImplementation", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "uri", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "withdrawAsset", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "ApprovalForAll", + inputs: [ + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "approved", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "AssetTransfer", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "asset", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "CancelRedeemRequest", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "CurrentPeriodRateChanged", + inputs: [ + { + name: "interestRate", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "CurrentTenorPeriodAndRateChanged", + inputs: [ + { + name: "tenorPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "reducedRate", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "DepositRequest", + inputs: [ + { + name: "controller", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RedeemRequest", + inputs: [ + { + name: "controller", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "TransferBatch", + inputs: [ + { + name: "operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "ids", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + { + name: "values", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "TransferSingle", + inputs: [ + { + name: "operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "id", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "URI", + inputs: [ + { + name: "value", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "id", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InsufficientBalance", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidArrayLength", + inputs: [ + { + name: "idsLength", + type: "uint256", + internalType: "uint256", + }, + { + name: "valuesLength", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidOperator", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155MissingApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "EnumerableMapNonexistentKey", + inputs: [ + { + name: "key", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__AmountMismatch", + inputs: [ + { + name: "amount1", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount2", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__ControllerNotSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidAuthAddress", + inputs: [ + { + name: "authName", + type: "string", + internalType: "string", + }, + { + name: "authAddress", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidComponentTokenAmount", + inputs: [ + { + name: "componentTokenAmount", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockRequestedAmount", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidFrequency", + inputs: [ + { + name: "frequency", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__UnAuthorized", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "authorizedOwner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__UnlockPeriodMismatch", + inputs: [ + { + name: "unlockPeriod1", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod2", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__CallerMissingApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__ExceededMaxDeposit", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAssets", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__ExceededMaxRedeem", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxShares", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__InvalidArrayLength", + inputs: [ + { + name: "depositPeriodsLength", + type: "uint256", + internalType: "uint256", + }, + { + name: "sharesLength", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__RedeemBeforeDeposit", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__RedeemTimePeriodNotSupported", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "period", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeCastOverflowedUintDowncast", + inputs: [ + { + name: "bits", + type: "uint8", + internalType: "uint8", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__AuthorizeCallerFailed", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxRequestUnlockAmount", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxUnlockAmount", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__InvalidArrayLength", + inputs: [ + { + name: "depositPeriodsLength", + type: "uint256", + internalType: "uint256", + }, + { + name: "amountsLength", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "currentPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "Timer__StartTimeNotReached", + inputs: [ + { + name: "currentTime", + type: "uint256", + internalType: "uint256", + }, + { + name: "startTime", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TripleRateContext_PeriodRegressionNotAllowed", + inputs: [ + { + name: "currentPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "updatePeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TripleRateContext_TenorPeriodRegressionNotAllowed", + inputs: [ + { + name: "tenorPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "newTenorPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, ], - }, - { - type: "error", - name: "UUPSUnauthorizedCallContext", - inputs: [], - }, - { - type: "error", - name: "UUPSUnsupportedProxiableUUID", - inputs: [ - { - name: "slot", - type: "bytes32", - internalType: "bytes32", - }, + inheritedFunctions: {}, + }, + "LiquidContinuousMultiTokenVault#0": { + address: "0xd9991fc39980e4294f6953ab5adf514db8545658", + abi: [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "ASSET_MANAGER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "CLOCK_MODE", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "FREQUENCY", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "OPERATOR_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "RATE_PERCENT_SCALED", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "SCALE", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "TENOR", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "UPGRADER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "_redeemOptimizer", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IRedeemOptimizer", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "_vaultStartTimestamp", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "_yieldStrategy", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IYieldStrategy", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "asset", + inputs: [], + outputs: [ + { + name: "assetTokenAddress", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "balanceOfBatch", + inputs: [ + { + name: "accounts", + type: "address[]", + internalType: "address[]", + }, + { + name: "ids", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [ + { + name: "", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "calcPrice", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "price", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "calcYield", + inputs: [ + { + name: "principal", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "yield", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "cancelRequestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "claimableDepositRequest", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "claimableRedeemRequest", + inputs: [ + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "clock", + inputs: [], + outputs: [ + { + name: "clock_", + type: "uint48", + internalType: "uint48", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssets", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssetsForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssetsForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssetsForDepositPeriodBatch", + inputs: [ + { + name: "shares", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets_", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToShares", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToSharesForDepositPeriod", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "currentPeriod", + inputs: [], + outputs: [ + { + name: "currentPeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "currentPeriodRate", + inputs: [], + outputs: [ + { + name: "currentPeriodRate_", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "currentPeriodsElapsed", + inputs: [], + outputs: [ + { + name: "numPeriodsElapsed_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "exists", + inputs: [ + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "frequency", + inputs: [], + outputs: [ + { + name: "frequency_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleMember", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "index", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleMemberCount", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getVersion", + inputs: [], + outputs: [ + { + name: "version", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "vaultParams", + type: "tuple", + internalType: "struct LiquidContinuousMultiTokenVault.VaultParams", + components: [ + { + name: "vaultAuth", + type: "tuple", + internalType: "struct LiquidContinuousMultiTokenVault.VaultAuth", + components: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "upgrader", + type: "address", + internalType: "address", + }, + { + name: "assetManager", + type: "address", + internalType: "address", + }, + ], + }, + { + name: "asset", + type: "address", + internalType: "contract IERC20Metadata", + }, + { + name: "yieldStrategy", + type: "address", + internalType: "contract IYieldStrategy", + }, + { + name: "redeemOptimizer", + type: "address", + internalType: "contract IRedeemOptimizer", + }, + { + name: "vaultStartTimestamp", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemNoticePeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "contextParams", + type: "tuple", + internalType: "struct TripleRateContext.ContextParams", + components: [ + { + name: "fullRateScaled", + type: "uint256", + internalType: "uint256", + }, + { + name: "initialReducedRate", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "frequency", + type: "uint256", + internalType: "uint256", + }, + { + name: "tenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "isApprovedForAll", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "operator", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "lock", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "lockedAmount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "lockedAmount_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "maxDeposit", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "maxRedeemAtPeriod", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "maxShares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "maxRequestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "minUnlockPeriod", + inputs: [], + outputs: [ + { + name: "minUnlockPeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "noticePeriod", + inputs: [], + outputs: [ + { + name: "noticePeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "numPeriodsForFullRate", + inputs: [], + outputs: [ + { + name: "numPeriods", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "pendingDepositRequest", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "pendingRedeemRequest", + inputs: [ + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previewDeposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previewRedeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previewRedeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previousPeriodRate", + inputs: [], + outputs: [ + { + name: "previousPeriodRate_", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "rateScaled", + inputs: [], + outputs: [ + { + name: "ratePercentageScaled_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "redeem", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "redeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "redeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "requestDeposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "requestId_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "requestRedeem", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "requestId_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "requestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "safeBatchTransferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "ids", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "scale", + inputs: [], + outputs: [ + { + name: "scale_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "setApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "approved", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setRedeemOptimizer", + inputs: [ + { + name: "redeemOptimizer", + type: "address", + internalType: "contract IRedeemOptimizer", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setReducedRate", + inputs: [ + { + name: "reducedRateScaled_", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setReducedRateAtCurrent", + inputs: [ + { + name: "reducedRateScaled_", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setVaultStartTimestamp", + inputs: [ + { + name: "vaultStartTimestamp", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setYieldStrategy", + inputs: [ + { + name: "yieldStrategy", + type: "address", + internalType: "contract IYieldStrategy", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "sharesAtPeriod", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalAssets", + inputs: [], + outputs: [ + { + name: "totalManagedAssets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalAssets", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "totalManagedAssets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [ + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "unlockRequestAmount", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "amount_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlockRequestAmountByDepositPeriod", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlockRequestDepositPeriods", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlockRequests", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unpause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "upgradeToAndCall", + inputs: [ + { + name: "newImplementation", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "uri", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "withdrawAsset", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "ApprovalForAll", + inputs: [ + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "approved", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "AssetTransfer", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "asset", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "CancelRedeemRequest", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "CurrentPeriodRateChanged", + inputs: [ + { + name: "interestRate", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "CurrentTenorPeriodAndRateChanged", + inputs: [ + { + name: "tenorPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "reducedRate", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "DepositRequest", + inputs: [ + { + name: "controller", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RedeemRequest", + inputs: [ + { + name: "controller", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "TransferBatch", + inputs: [ + { + name: "operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "ids", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + { + name: "values", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "TransferSingle", + inputs: [ + { + name: "operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "id", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "URI", + inputs: [ + { + name: "value", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "id", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InsufficientBalance", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidArrayLength", + inputs: [ + { + name: "idsLength", + type: "uint256", + internalType: "uint256", + }, + { + name: "valuesLength", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidOperator", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155MissingApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "EnumerableMapNonexistentKey", + inputs: [ + { + name: "key", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__AmountMismatch", + inputs: [ + { + name: "amount1", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount2", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__ControllerNotSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidAuthAddress", + inputs: [ + { + name: "authName", + type: "string", + internalType: "string", + }, + { + name: "authAddress", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidComponentTokenAmount", + inputs: [ + { + name: "componentTokenAmount", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockRequestedAmount", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidFrequency", + inputs: [ + { + name: "frequency", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__UnAuthorized", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "authorizedOwner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__UnlockPeriodMismatch", + inputs: [ + { + name: "unlockPeriod1", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod2", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__CallerMissingApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__ExceededMaxDeposit", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAssets", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__ExceededMaxRedeem", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxShares", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__InvalidArrayLength", + inputs: [ + { + name: "depositPeriodsLength", + type: "uint256", + internalType: "uint256", + }, + { + name: "sharesLength", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__RedeemBeforeDeposit", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__RedeemTimePeriodNotSupported", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "period", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeCastOverflowedUintDowncast", + inputs: [ + { + name: "bits", + type: "uint8", + internalType: "uint8", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__AuthorizeCallerFailed", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxRequestUnlockAmount", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxUnlockAmount", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__InvalidArrayLength", + inputs: [ + { + name: "depositPeriodsLength", + type: "uint256", + internalType: "uint256", + }, + { + name: "amountsLength", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "currentPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "Timer__StartTimeNotReached", + inputs: [ + { + name: "currentTime", + type: "uint256", + internalType: "uint256", + }, + { + name: "startTime", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TripleRateContext_PeriodRegressionNotAllowed", + inputs: [ + { + name: "currentPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "updatePeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TripleRateContext_TenorPeriodRegressionNotAllowed", + inputs: [ + { + name: "tenorPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "newTenorPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, ], - }, - ], - inheritedFunctions: {}, - }, + inheritedFunctions: {}, + }, "ERC1967Proxy#0": { address: "0x2b9d2023DbF3c7473f1cec42F78713d09DdC9FBF", abi: [ @@ -30156,20 +30194,3159 @@ const deployedContracts = { internalType: "address", }, ], - }, - { - type: "error", - name: "ERC1967NonPayable", - inputs: [], - }, - { - type: "error", - name: "FailedInnerCall", - inputs: [], - }, - ], - inheritedFunctions: {}, - }, + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + ], + inheritedFunctions: {}, + }, + "LiquidContinuousMultiTokenVault_V1#0": { + address: "0xe4a4d891f02DF7bFFc5ff9e691313DE8a9E76b91", + abi: [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "ASSET_MANAGER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "CLOCK_MODE", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "FREQUENCY", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "OPERATOR_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "RATE_PERCENT_SCALED", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "SCALE", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "TENOR", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "UPGRADER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "_redeemOptimizer", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IRedeemOptimizer", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "_vaultStartTimestamp", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "_yieldStrategy", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IYieldStrategy", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "asset", + inputs: [], + outputs: [ + { + name: "assetTokenAddress", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "balanceOfBatch", + inputs: [ + { + name: "accounts", + type: "address[]", + internalType: "address[]", + }, + { + name: "ids", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [ + { + name: "", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "calcPrice", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "price", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "calcYield", + inputs: [ + { + name: "principal", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "yield", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "cancelRequestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "claimableDepositRequest", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "claimableRedeemRequest", + inputs: [ + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "clock", + inputs: [], + outputs: [ + { + name: "clock_", + type: "uint48", + internalType: "uint48", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssets", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssetsForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssetsForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToAssetsForDepositPeriodBatch", + inputs: [ + { + name: "shares", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets_", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToShares", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "convertToSharesForDepositPeriod", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "currentPeriod", + inputs: [], + outputs: [ + { + name: "currentPeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "currentPeriodRate", + inputs: [], + outputs: [ + { + name: "currentPeriodRate_", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "currentPeriodsElapsed", + inputs: [], + outputs: [ + { + name: "numPeriodsElapsed_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "deposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "exists", + inputs: [ + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "frequency", + inputs: [], + outputs: [ + { + name: "frequency_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleMember", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "index", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleMemberCount", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getVersion", + inputs: [], + outputs: [ + { + name: "version", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "vaultParams", + type: "tuple", + internalType: "struct LiquidContinuousMultiTokenVault.VaultParams", + components: [ + { + name: "vaultAuth", + type: "tuple", + internalType: "struct LiquidContinuousMultiTokenVault.VaultAuth", + components: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "upgrader", + type: "address", + internalType: "address", + }, + { + name: "assetManager", + type: "address", + internalType: "address", + }, + ], + }, + { + name: "asset", + type: "address", + internalType: "contract IERC20Metadata", + }, + { + name: "yieldStrategy", + type: "address", + internalType: "contract IYieldStrategy", + }, + { + name: "redeemOptimizer", + type: "address", + internalType: "contract IRedeemOptimizer", + }, + { + name: "vaultStartTimestamp", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemNoticePeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "contextParams", + type: "tuple", + internalType: "struct TripleRateContext.ContextParams", + components: [ + { + name: "fullRateScaled", + type: "uint256", + internalType: "uint256", + }, + { + name: "initialReducedRate", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + name: "frequency", + type: "uint256", + internalType: "uint256", + }, + { + name: "tenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "decimals", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "isApprovedForAll", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "operator", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "lock", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "lockedAmount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "lockedAmount_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "maxDeposit", + inputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "maxRedeemAtPeriod", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "maxShares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "maxRequestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "minUnlockPeriod", + inputs: [], + outputs: [ + { + name: "minUnlockPeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "noticePeriod", + inputs: [], + outputs: [ + { + name: "noticePeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "numPeriodsForFullRate", + inputs: [], + outputs: [ + { + name: "numPeriods", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "pendingDepositRequest", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "pure", + }, + { + type: "function", + name: "pendingRedeemRequest", + inputs: [ + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previewDeposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previewRedeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previewRedeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previousPeriodRate", + inputs: [], + outputs: [ + { + name: "previousPeriodRate_", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "rateScaled", + inputs: [], + outputs: [ + { + name: "ratePercentageScaled_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "redeem", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "redeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "redeemForDepositPeriod", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "requestDeposit", + inputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "requestId_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "requestRedeem", + inputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "requestId_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "requestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "safeBatchTransferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "ids", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "scale", + inputs: [], + outputs: [ + { + name: "scale_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "setApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "approved", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setRedeemOptimizer", + inputs: [ + { + name: "redeemOptimizer", + type: "address", + internalType: "contract IRedeemOptimizer", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setReducedRate", + inputs: [ + { + name: "reducedRateScaled_", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setReducedRateAtCurrent", + inputs: [ + { + name: "reducedRateScaled_", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setVaultStartTimestamp", + inputs: [ + { + name: "vaultStartTimestamp", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setYieldStrategy", + inputs: [ + { + name: "yieldStrategy", + type: "address", + internalType: "contract IYieldStrategy", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "sharesAtPeriod", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalAssets", + inputs: [], + outputs: [ + { + name: "totalManagedAssets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [ + { + name: "id", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "unlockRequestAmount", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "amount_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlockRequestAmountByDepositPeriod", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlockRequestDepositPeriods", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlockRequests", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unpause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "upgradeToAndCall", + inputs: [ + { + name: "newImplementation", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "function", + name: "uri", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "withdrawAsset", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "ApprovalForAll", + inputs: [ + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "approved", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "AssetTransfer", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "asset", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "CancelRedeemRequest", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "CurrentPeriodRateChanged", + inputs: [ + { + name: "interestRate", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "CurrentTenorPeriodAndRateChanged", + inputs: [ + { + name: "tenorPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "reducedRate", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "DepositRequest", + inputs: [ + { + name: "controller", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RedeemRequest", + inputs: [ + { + name: "controller", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "requestId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "TransferBatch", + inputs: [ + { + name: "operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "ids", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + { + name: "values", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "TransferSingle", + inputs: [ + { + name: "operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "id", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "URI", + inputs: [ + { + name: "value", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "id", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Withdraw", + inputs: [ + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "receiver", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InsufficientBalance", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidArrayLength", + inputs: [ + { + name: "idsLength", + type: "uint256", + internalType: "uint256", + }, + { + name: "valuesLength", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidOperator", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1155MissingApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "EnumerableMapNonexistentKey", + inputs: [ + { + name: "key", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__AmountMismatch", + inputs: [ + { + name: "amount1", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount2", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__ControllerNotSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "controller", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidAuthAddress", + inputs: [ + { + name: "authName", + type: "string", + internalType: "string", + }, + { + name: "authAddress", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidComponentTokenAmount", + inputs: [ + { + name: "componentTokenAmount", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockRequestedAmount", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidFrequency", + inputs: [ + { + name: "frequency", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__UnAuthorized", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "authorizedOwner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__UnlockPeriodMismatch", + inputs: [ + { + name: "unlockPeriod1", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod2", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__CallerMissingApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__ExceededMaxDeposit", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAssets", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__ExceededMaxRedeem", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxShares", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__InvalidArrayLength", + inputs: [ + { + name: "depositPeriodsLength", + type: "uint256", + internalType: "uint256", + }, + { + name: "sharesLength", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__RedeemBeforeDeposit", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MultiTokenVault__RedeemTimePeriodNotSupported", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "period", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeCastOverflowedUintDowncast", + inputs: [ + { + name: "bits", + type: "uint8", + internalType: "uint8", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__AuthorizeCallerFailed", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxRequestUnlockAmount", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxUnlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxUnlockAmount", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__InvalidArrayLength", + inputs: [ + { + name: "depositPeriodsLength", + type: "uint256", + internalType: "uint256", + }, + { + name: "amountsLength", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "currentPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", + inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "Timer__StartTimeNotReached", + inputs: [ + { + name: "currentTime", + type: "uint256", + internalType: "uint256", + }, + { + name: "startTime", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TripleRateContext_PeriodRegressionNotAllowed", + inputs: [ + { + name: "currentPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "updatePeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "TripleRateContext_TenorPeriodRegressionNotAllowed", + inputs: [ + { + name: "tenorPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "newTenorPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + ], + inheritedFunctions: {}, + }, }, 421614: { "SimpleUSDC#0": {