diff --git a/spikes/spike-liquid-stone/packages/nextjs/contracts/deployedContracts.ts b/spikes/spike-liquid-stone/packages/nextjs/contracts/deployedContracts.ts index b6e035e5..acb9a5b9 100644 --- a/spikes/spike-liquid-stone/packages/nextjs/contracts/deployedContracts.ts +++ b/spikes/spike-liquid-stone/packages/nextjs/contracts/deployedContracts.ts @@ -741,8 +741,8 @@ const deployedContracts = { ], inheritedFunctions: {}, }, - "LiquidContinuousMultiTokenVault#0": { - address: "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", + "LiquidContinuousMultiTokenVaultAsProxy#0": { + address: "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", abi: [ { type: "constructor", @@ -3880,84 +3880,195 @@ const deployedContracts = { ], inheritedFunctions: {}, }, - "ERC1967Proxy#0": { - address: "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "LiquidContinuousMultiTokenVault#0": { + address: "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", abi: [ { type: "constructor", - inputs: [ + inputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "ASSET_MANAGER_ROLE", + inputs: [], + outputs: [ { - name: "implementation", - type: "address", - internalType: "address", + name: "", + type: "bytes32", + internalType: "bytes32", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "CLOCK_MODE", + inputs: [], + outputs: [ { - name: "_data", - type: "bytes", - internalType: "bytes", + name: "", + type: "string", + internalType: "string", }, ], - stateMutability: "payable", + stateMutability: "pure", }, { - type: "fallback", - stateMutability: "payable", + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", }, { - type: "event", - name: "Upgraded", - inputs: [ + type: "function", + name: "FREQUENCY", + inputs: [], + outputs: [ { - name: "implementation", - type: "address", - indexed: true, - internalType: "address", + name: "", + type: "uint256", + internalType: "uint256", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "error", - name: "AddressEmptyCode", - inputs: [ + type: "function", + name: "OPERATOR_ROLE", + inputs: [], + outputs: [ { - name: "target", - type: "address", - internalType: "address", + name: "", + type: "bytes32", + internalType: "bytes32", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1967InvalidImplementation", - inputs: [ + type: "function", + name: "RATE_PERCENT_SCALED", + inputs: [], + outputs: [ { - name: "implementation", + 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: "address", + internalType: "contract IRedeemOptimizer", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1967NonPayable", + type: "function", + name: "_vaultStartTimestamp", inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", }, { - type: "error", - name: "FailedInnerCall", + type: "function", + name: "_yieldStrategy", inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IYieldStrategy", + }, + ], + stateMutability: "view", }, - ], - inheritedFunctions: {}, - }, - "ERC1155MintableBurnable#0": { - address: "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", - abi: [ { - type: "constructor", + type: "function", + name: "asset", inputs: [], - stateMutability: "nonpayable", + outputs: [ + { + name: "assetTokenAddress", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", }, { type: "function", @@ -4009,571 +4120,499 @@ const deployedContracts = { }, { type: "function", - name: "burn", + name: "calcPrice", inputs: [ { - name: "_from", - type: "address", - internalType: "address", - }, - { - name: "_id", + name: "", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "_amount", + name: "price", type: "uint256", internalType: "uint256", }, - { - name: "", - type: "bytes[]", - internalType: "bytes[]", - }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "burnBatch", + name: "calcYield", inputs: [ { - name: "_from", - type: "address", - internalType: "address", + name: "principal", + type: "uint256", + internalType: "uint256", }, { - name: "_ids", - type: "uint256[]", - internalType: "uint256[]", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", }, { - name: "_amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "", - type: "bytes", - internalType: "bytes", + name: "yield", + type: "uint256", + internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "isApprovedForAll", + name: "cancelRequestUnlock", inputs: [ { - name: "account", + name: "owner", type: "address", internalType: "address", }, { - name: "operator", + 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: "", - type: "bool", - internalType: "bool", + name: "assets", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", + stateMutability: "pure", }, { type: "function", - name: "safeBatchTransferFrom", + name: "claimableRedeemRequest", inputs: [ { - name: "from", - type: "address", - internalType: "address", + name: "requestId", + type: "uint256", + internalType: "uint256", }, { - name: "to", + name: "controller", type: "address", internalType: "address", }, + ], + outputs: [ { - name: "ids", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "values", - type: "uint256[]", - internalType: "uint256[]", + name: "shares", + type: "uint256", + internalType: "uint256", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "clock", + inputs: [], + outputs: [ { - name: "data", - type: "bytes", - internalType: "bytes", + name: "clock_", + type: "uint48", + internalType: "uint48", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "safeMint", + name: "convertToAssets", inputs: [ { - name: "_to", - type: "address", - internalType: "address", - }, - { - name: "_id", + name: "shares", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "_amount", + name: "assets_", type: "uint256", internalType: "uint256", }, - { - name: "_data", - type: "bytes", - internalType: "bytes", - }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "safeMintBatch", + name: "convertToAssetsForDepositPeriod", inputs: [ { - name: "_to", - type: "address", - internalType: "address", + name: "shares", + type: "uint256", + internalType: "uint256", }, { - name: "_ids", - type: "uint256[]", - internalType: "uint256[]", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", }, { - name: "_amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "_data", - type: "bytes", - internalType: "bytes", + name: "assets", + type: "uint256", + internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "safeTransferFrom", + name: "convertToAssetsForDepositPeriod", inputs: [ { - name: "from", - type: "address", - internalType: "address", - }, - { - name: "to", - type: "address", - internalType: "address", - }, - { - name: "id", + name: "shares", type: "uint256", internalType: "uint256", }, { - name: "value", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "data", - type: "bytes", - internalType: "bytes", + name: "", + type: "uint256", + internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "setApprovalForAll", + name: "convertToAssetsForDepositPeriodBatch", inputs: [ { - name: "operator", - type: "address", - internalType: "address", + name: "shares", + type: "uint256[]", + internalType: "uint256[]", }, { - name: "approved", - type: "bool", - internalType: "bool", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "supportsInterface", - inputs: [ { - name: "interfaceId", - type: "bytes4", - internalType: "bytes4", + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", }, ], outputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "assets_", + type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "view", }, { type: "function", - name: "uri", + name: "convertToShares", inputs: [ { - name: "", + name: "assets", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "", - type: "string", - internalType: "string", + name: "shares", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", }, { - type: "event", - name: "ApprovalForAll", + type: "function", + name: "convertToSharesForDepositPeriod", inputs: [ { - name: "account", - type: "address", - indexed: true, - internalType: "address", + name: "assets", + type: "uint256", + internalType: "uint256", }, { - name: "operator", - type: "address", - indexed: true, - internalType: "address", + name: "", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "approved", - type: "bool", - indexed: false, - internalType: "bool", + name: "shares", + type: "uint256", + internalType: "uint256", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "TransferBatch", - inputs: [ - { - name: "operator", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "from", - type: "address", - indexed: true, - internalType: "address", - }, + type: "function", + name: "currentPeriod", + inputs: [], + outputs: [ { - name: "to", - type: "address", - indexed: true, - internalType: "address", + name: "currentPeriod_", + type: "uint256", + internalType: "uint256", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "currentPeriodRate", + inputs: [], + outputs: [ { - name: "ids", - type: "uint256[]", - indexed: false, - internalType: "uint256[]", - }, - { - name: "values", - type: "uint256[]", - indexed: false, - internalType: "uint256[]", + name: "currentPeriodRate_", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], }, ], - anonymous: false, + stateMutability: "view", }, { - 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", - }, + type: "function", + name: "currentPeriodsElapsed", + inputs: [], + outputs: [ { - name: "value", + name: "numPeriodsElapsed_", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "URI", + type: "function", + name: "deposit", inputs: [ { - name: "value", - type: "string", - indexed: false, - internalType: "string", - }, - { - name: "id", + name: "assets", type: "uint256", - indexed: true, internalType: "uint256", }, - ], - anonymous: false, - }, - { - type: "error", - name: "ERC1155InsufficientBalance", - inputs: [ { - name: "sender", + name: "receiver", type: "address", internalType: "address", }, { - name: "balance", - type: "uint256", - internalType: "uint256", - }, - { - name: "needed", - type: "uint256", - internalType: "uint256", + name: "controller", + type: "address", + internalType: "address", }, + ], + outputs: [ { - name: "tokenId", + name: "shares_", type: "uint256", internalType: "uint256", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "ERC1155InvalidApprover", + type: "function", + name: "deposit", inputs: [ { - name: "approver", + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", type: "address", internalType: "address", }, ], - }, - { - type: "error", - name: "ERC1155InvalidArrayLength", - inputs: [ - { - name: "idsLength", - type: "uint256", - internalType: "uint256", - }, + outputs: [ { - name: "valuesLength", + name: "shares", type: "uint256", internalType: "uint256", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "ERC1155InvalidOperator", + type: "function", + name: "exists", inputs: [ { - name: "operator", - type: "address", - internalType: "address", + name: "id", + type: "uint256", + internalType: "uint256", }, ], - }, - { - type: "error", - name: "ERC1155InvalidReceiver", - inputs: [ + outputs: [ { - name: "receiver", - type: "address", - internalType: "address", + name: "", + type: "bool", + internalType: "bool", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1155InvalidSender", - inputs: [ + type: "function", + name: "frequency", + inputs: [], + outputs: [ { - name: "sender", - type: "address", - internalType: "address", + name: "frequency_", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1155MissingApprovalForAll", + type: "function", + name: "getRoleAdmin", inputs: [ { - name: "operator", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", + name: "role", + type: "bytes32", + internalType: "bytes32", }, ], - }, - ], - inheritedFunctions: {}, - }, - "SimpleTimelockAsyncUnlock#0": { - address: "0x0165878a594ca255338adfa4d48449f69242eb8f", - abi: [ - { - type: "function", - name: "UPGRADE_INTERFACE_VERSION", - inputs: [], outputs: [ { name: "", - type: "string", - internalType: "string", + type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "view", }, { type: "function", - name: "_currentPeriod", - inputs: [], - outputs: [ + name: "getRoleMember", + inputs: [ { - name: "", + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "index", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", - }, - { - type: "function", - name: "_deposits", - inputs: [], outputs: [ { name: "", type: "address", - internalType: "contract IERC5679Ext1155", + internalType: "address", }, ], stateMutability: "view", }, { type: "function", - name: "cancelRequestUnlock", + name: "getRoleMemberCount", inputs: [ { - name: "owner", - type: "address", - internalType: "address", + name: "role", + type: "bytes32", + internalType: "bytes32", }, + ], + outputs: [ { - name: "requestId", + name: "", type: "uint256", internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "currentPeriod", + name: "getVersion", inputs: [], outputs: [ { - name: "currentPeriod_", + name: "version", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", + stateMutability: "pure", }, { type: "function", - name: "initialize", + name: "grantRole", inputs: [ { - name: "noticePeriod_", - type: "uint256", - internalType: "uint256", + name: "role", + type: "bytes32", + internalType: "bytes32", }, { - name: "deposits", + name: "account", type: "address", - internalType: "contract IERC5679Ext1155", + internalType: "address", }, ], outputs: [], @@ -4581,22 +4620,134 @@ const deployedContracts = { }, { type: "function", - name: "lock", + name: "hasRole", inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, { name: "account", type: "address", internalType: "address", }, + ], + outputs: [ { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "", + type: "bool", + internalType: "bool", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ { - name: "amount", - type: "uint256", - internalType: "uint256", + 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: [], @@ -4604,34 +4755,34 @@ const deployedContracts = { }, { type: "function", - name: "lockedAmount", + name: "isApprovedForAll", inputs: [ { - name: "owner", + name: "account", type: "address", internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "operator", + type: "address", + internalType: "address", }, ], outputs: [ { - name: "lockedAmount_", - type: "uint256", - internalType: "uint256", + name: "", + type: "bool", + internalType: "bool", }, ], stateMutability: "view", }, { type: "function", - name: "maxRequestUnlock", + name: "lock", inputs: [ { - name: "owner", + name: "account", type: "address", internalType: "address", }, @@ -4640,74 +4791,48 @@ const deployedContracts = { type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "", + name: "amount", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { type: "function", - name: "minUnlockPeriod", - inputs: [], - outputs: [ + name: "lockedAmount", + inputs: [ { - name: "minUnlockPeriod_", - type: "uint256", - internalType: "uint256", + name: "account", + type: "address", + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "noticePeriod", - inputs: [], - outputs: [ { - name: "noticePeriod_", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", - }, - { - type: "function", - name: "proxiableUUID", - inputs: [], outputs: [ { - name: "", - type: "bytes32", - internalType: "bytes32", + name: "lockedAmount_", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", - name: "requestUnlock", + name: "maxDeposit", inputs: [ { - name: "owner", + name: "", type: "address", internalType: "address", }, - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", - }, ], outputs: [ { @@ -4716,43 +4841,35 @@ const deployedContracts = { internalType: "uint256", }, ], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "setCurrentPeriod", + name: "maxRedeemAtPeriod", inputs: [ { - name: "currentPeriod_", - type: "uint256", - internalType: "uint256", + name: "owner", + type: "address", + internalType: "address", }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "supportsInterface", - inputs: [ { - name: "interfaceId", - type: "bytes4", - internalType: "bytes4", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", }, ], outputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "maxShares", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", - name: "unlock", + name: "maxRequestUnlock", inputs: [ { name: "owner", @@ -4760,43 +4877,40 @@ const deployedContracts = { internalType: "address", }, { - name: "unlockPeriod", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "unlockRequestAmount", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, + name: "minUnlockPeriod", + inputs: [], + outputs: [ { - name: "requestId", + name: "minUnlockPeriod_", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", + }, + { + type: "function", + name: "noticePeriod", + inputs: [], outputs: [ { - name: "amount_", + name: "noticePeriod_", type: "uint256", internalType: "uint256", }, @@ -4805,249 +4919,251 @@ const deployedContracts = { }, { type: "function", - name: "unlockRequestAmountByDepositPeriod", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, + name: "numPeriodsForFullRate", + inputs: [], + outputs: [ { - name: "depositPeriod", + name: "numPeriods", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], outputs: [ { - name: "amount", - type: "uint256", - internalType: "uint256", + name: "", + type: "bool", + internalType: "bool", }, ], stateMutability: "view", }, { type: "function", - name: "unlockRequestDepositPeriods", + name: "pendingDepositRequest", inputs: [ { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", + name: "", type: "uint256", internalType: "uint256", }, + { + name: "", + type: "address", + internalType: "address", + }, ], outputs: [ { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "assets", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", + stateMutability: "pure", }, { type: "function", - name: "unlockRequests", + name: "pendingRedeemRequest", inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, { name: "requestId", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", + name: "", + type: "address", + internalType: "address", }, + ], + outputs: [ { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "shares", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", - name: "upgradeToAndCall", + name: "previewDeposit", inputs: [ { - name: "newImplementation", - type: "address", - internalType: "address", + name: "assets", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "data", - type: "bytes", - internalType: "bytes", + name: "shares", + type: "uint256", + internalType: "uint256", }, ], - outputs: [], - stateMutability: "payable", + stateMutability: "view", }, { - type: "event", - name: "CancelRedeemRequest", + type: "function", + name: "previewRedeemForDepositPeriod", inputs: [ { - name: "owner", - type: "address", - indexed: true, - internalType: "address", + name: "shares", + type: "uint256", + internalType: "uint256", }, { - name: "requestId", + name: "depositPeriod", type: "uint256", - indexed: true, internalType: "uint256", }, + ], + outputs: [ { - name: "sender", - type: "address", - indexed: true, - internalType: "address", + name: "assets", + type: "uint256", + internalType: "uint256", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "Initialized", + type: "function", + name: "previewRedeemForDepositPeriod", inputs: [ { - name: "version", - type: "uint64", - indexed: false, - internalType: "uint64", + name: "shares", + type: "uint256", + internalType: "uint256", }, - ], - anonymous: false, - }, - { - type: "event", - name: "Upgraded", - inputs: [ { - name: "implementation", - type: "address", - indexed: true, - internalType: "address", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", }, ], - anonymous: false, - }, - { - type: "error", - name: "AddressEmptyCode", - inputs: [ + outputs: [ { - name: "target", - type: "address", - internalType: "address", + name: "assets", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1967InvalidImplementation", - inputs: [ + type: "function", + name: "previousPeriodRate", + inputs: [], + outputs: [ { - name: "implementation", - type: "address", - internalType: "address", + name: "previousPeriodRate_", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1967NonPayable", + type: "function", + name: "proxiableUUID", inputs: [], - }, - { - type: "error", - name: "EnumerableMapNonexistentKey", - inputs: [ + outputs: [ { - name: "key", + name: "", type: "bytes32", internalType: "bytes32", }, ], + stateMutability: "view", }, { - type: "error", - name: "FailedInnerCall", - inputs: [], - }, - { - type: "error", - name: "InvalidInitialization", - inputs: [], - }, - { - type: "error", - name: "NotInitializing", + type: "function", + name: "rateScaled", inputs: [], + outputs: [ + { + name: "ratePercentageScaled_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", }, { - type: "error", - name: "TimelockAsyncUnlock__AuthorizeCallerFailed", + type: "function", + name: "redeem", inputs: [ { - name: "caller", + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", type: "address", internalType: "address", }, { - name: "owner", + name: "controller", type: "address", internalType: "address", }, ], + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", }, { - type: "error", - name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", + type: "function", + name: "redeemForDepositPeriod", inputs: [ { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", + name: "shares", type: "uint256", internalType: "uint256", }, { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - { - name: "maxRequestUnlockAmount", - type: "uint256", - internalType: "uint256", + name: "receiver", + type: "address", + internalType: "address", }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__ExceededMaxUnlock", - inputs: [ { name: "owner", type: "address", @@ -5059,65 +5175,31 @@ const deployedContracts = { internalType: "uint256", }, { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - { - name: "maxUnlockAmount", + name: "redeemPeriod", type: "uint256", internalType: "uint256", }, ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__InvalidArrayLength", - inputs: [ - { - name: "depositPeriodsLength", - type: "uint256", - internalType: "uint256", - }, + outputs: [ { - name: "amountsLength", + name: "assets", type: "uint256", internalType: "uint256", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", + type: "function", + name: "redeemForDepositPeriod", inputs: [ { - name: "caller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "currentPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockPeriod", + name: "shares", type: "uint256", internalType: "uint256", }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", - inputs: [ { - name: "caller", + name: "receiver", type: "address", internalType: "address", }, @@ -5131,118 +5213,57 @@ const deployedContracts = { type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "unlockPeriod", + name: "", type: "uint256", internalType: "uint256", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "UUPSUnauthorizedCallContext", - inputs: [], - }, - { - type: "error", - name: "UUPSUnsupportedProxiableUUID", + type: "function", + name: "renounceRole", inputs: [ { - name: "slot", + name: "role", type: "bytes32", internalType: "bytes32", }, - ], - }, - ], - inheritedFunctions: {}, - }, - "ERC1967Proxy#1": { - address: "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", - abi: [ - { - type: "constructor", - inputs: [ - { - name: "implementation", - type: "address", - internalType: "address", - }, - { - name: "_data", - type: "bytes", - internalType: "bytes", - }, - ], - stateMutability: "payable", - }, - { - type: "fallback", - stateMutability: "payable", - }, - { - type: "event", - name: "Upgraded", - inputs: [ { - name: "implementation", + name: "callerConfirmation", type: "address", - indexed: true, internalType: "address", }, ], - anonymous: false, + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "AddressEmptyCode", + type: "function", + name: "requestDeposit", inputs: [ { - name: "target", - type: "address", - internalType: "address", + name: "assets", + type: "uint256", + internalType: "uint256", }, - ], - }, - { - type: "error", - name: "ERC1967InvalidImplementation", - inputs: [ { - name: "implementation", + name: "controller", type: "address", internalType: "address", }, - ], - }, - { - type: "error", - name: "ERC1967NonPayable", - inputs: [], - }, - { - type: "error", - name: "FailedInnerCall", - inputs: [], - }, - ], - inheritedFunctions: {}, - }, - }, - 98864: { - "SimpleUSDC#0": { - address: "0x401eCb1D350407f13ba348573E5630B83638E30D", - abi: [ - { - type: "constructor", - inputs: [ { name: "owner", type: "address", internalType: "address", }, + ], + outputs: [ { - name: "initialSupply", + name: "requestId_", type: "uint256", internalType: "uint256", }, @@ -5251,97 +5272,108 @@ const deployedContracts = { }, { type: "function", - name: "allowance", + name: "requestRedeem", inputs: [ { - name: "owner", + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "controller", type: "address", internalType: "address", }, { - name: "spender", + name: "owner", type: "address", internalType: "address", }, ], outputs: [ { - name: "", + name: "requestId_", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", + stateMutability: "nonpayable", }, { type: "function", - name: "approve", + name: "requestUnlock", inputs: [ { - name: "spender", + name: "owner", type: "address", internalType: "address", }, { - name: "value", - type: "uint256", - internalType: "uint256", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", }, ], outputs: [ { name: "", - type: "bool", - internalType: "bool", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", }, { type: "function", - name: "balanceOf", + name: "revokeRole", inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, { name: "account", type: "address", internalType: "address", }, ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { type: "function", - name: "decimals", - inputs: [], - outputs: [ + name: "safeBatchTransferFrom", + inputs: [ { - name: "", - type: "uint8", - internalType: "uint8", + name: "from", + type: "address", + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "mint", - inputs: [ { name: "to", type: "address", internalType: "address", }, { - name: "amount", - type: "uint256", - internalType: "uint256", + name: "ids", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", }, ], outputs: [], @@ -5349,57 +5381,44 @@ const deployedContracts = { }, { type: "function", - name: "name", - inputs: [], - outputs: [ + name: "safeTransferFrom", + inputs: [ { - name: "", - type: "string", - internalType: "string", + name: "from", + type: "address", + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "owner", - inputs: [], - outputs: [ { - name: "", + name: "to", type: "address", internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "renounceOwnership", - inputs: [], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "symbol", - inputs: [], - outputs: [ { - name: "", - type: "string", - internalType: "string", + name: "id", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", }, ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { type: "function", - name: "totalSupply", + name: "scale", inputs: [], outputs: [ { - name: "", + name: "scale_", type: "uint256", internalType: "uint256", }, @@ -5408,1466 +5427,1417 @@ const deployedContracts = { }, { type: "function", - name: "transfer", + name: "setApprovalForAll", inputs: [ { - name: "to", + name: "operator", type: "address", internalType: "address", }, { - name: "value", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", + name: "approved", type: "bool", internalType: "bool", }, ], + outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "transferFrom", + name: "setRedeemOptimizer", inputs: [ { - name: "from", + name: "redeemOptimizer", type: "address", - internalType: "address", + internalType: "contract IRedeemOptimizer", }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setReducedRate", + inputs: [ { - name: "to", - type: "address", - internalType: "address", + name: "reducedRateScaled_", + type: "uint256", + internalType: "uint256", }, { - name: "value", + name: "effectiveFromPeriod_", type: "uint256", internalType: "uint256", }, ], - outputs: [ + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setReducedRateAtCurrent", + inputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "reducedRateScaled_", + type: "uint256", + internalType: "uint256", }, ], + outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "transferOwnership", + name: "setVaultStartTimestamp", inputs: [ { - name: "newOwner", + name: "vaultStartTimestamp", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setYieldStrategy", + inputs: [ + { + name: "yieldStrategy", type: "address", - internalType: "address", + internalType: "contract IYieldStrategy", }, ], outputs: [], stateMutability: "nonpayable", }, { - type: "event", - name: "Approval", + type: "function", + name: "sharesAtPeriod", inputs: [ { name: "owner", type: "address", - indexed: true, internalType: "address", }, { - name: "spender", - type: "address", - indexed: true, - internalType: "address", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "value", + name: "shares", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "OwnershipTransferred", + type: "function", + name: "supportsInterface", inputs: [ { - name: "previousOwner", - type: "address", - indexed: true, - internalType: "address", + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", }, + ], + outputs: [ { - name: "newOwner", - type: "address", - indexed: true, - internalType: "address", + name: "", + type: "bool", + internalType: "bool", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "Transfer", - inputs: [ + type: "function", + name: "totalAssets", + inputs: [], + outputs: [ { - name: "from", - type: "address", - indexed: true, - internalType: "address", + name: "totalManagedAssets", + type: "uint256", + internalType: "uint256", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ { - name: "to", - type: "address", - indexed: true, - internalType: "address", + name: "", + type: "uint256", + internalType: "uint256", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [ { - name: "value", + name: "id", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", }, { - type: "error", - name: "ERC20InsufficientAllowance", + type: "function", + name: "unlock", inputs: [ { - name: "spender", + name: "owner", type: "address", internalType: "address", }, { - name: "allowance", + name: "requestId", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "needed", - type: "uint256", - internalType: "uint256", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "ERC20InsufficientBalance", + type: "function", + name: "unlockRequestAmount", inputs: [ { - name: "sender", + name: "owner", type: "address", internalType: "address", }, { - name: "balance", + name: "requestId", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "needed", + name: "amount_", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC20InvalidApprover", + type: "function", + name: "unlockRequestAmountByDepositPeriod", inputs: [ { - name: "approver", + name: "owner", type: "address", internalType: "address", }, - ], - }, - { - type: "error", - name: "ERC20InvalidReceiver", - inputs: [ - { - name: "receiver", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC20InvalidSender", - inputs: [ - { - name: "sender", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "ERC20InvalidSpender", - inputs: [ - { - name: "spender", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "OwnableInvalidOwner", - inputs: [ { - name: "owner", - type: "address", - internalType: "address", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", }, ], - }, - { - type: "error", - name: "OwnableUnauthorizedAccount", - inputs: [ + outputs: [ { - name: "account", - type: "address", - internalType: "address", + name: "amount", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", }, - ], - inheritedFunctions: {}, - }, - "TripleRateYieldStrategy#0": { - address: "0xe8fe4e1153d6010aa42b5ad8d98201c2517e8c9f", - abi: [ { type: "function", - name: "calcPrice", + name: "unlockRequestDepositPeriods", inputs: [ { - name: "contextContract", + name: "owner", type: "address", internalType: "address", }, { - name: "numPeriodsElapsed", + name: "requestId", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "price", - type: "uint256", - internalType: "uint256", + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "view", }, { type: "function", - name: "calcYield", + name: "unlockRequests", inputs: [ { - name: "contextContract", + name: "owner", type: "address", internalType: "address", }, { - name: "principal", - type: "uint256", - internalType: "uint256", - }, - { - name: "fromPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "toPeriod", + name: "requestId", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "yield", - type: "uint256", - internalType: "uint256", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "view", }, { - type: "error", - name: "IYieldStrategy_InvalidContextAddress", + type: "function", + name: "unpause", inputs: [], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "IYieldStrategy_InvalidPeriodRange", + type: "function", + name: "upgradeToAndCall", inputs: [ { - name: "from", - type: "uint256", - internalType: "uint256", + name: "newImplementation", + type: "address", + internalType: "address", }, { - name: "to", - type: "uint256", - internalType: "uint256", + name: "data", + type: "bytes", + internalType: "bytes", }, ], + outputs: [], + stateMutability: "payable", }, { - type: "error", - name: "MathOverflowedMulDiv", - inputs: [], - }, - ], - inheritedFunctions: {}, - }, - "RedeemOptimizerFIFO#0": { - address: "0x5b0504d26cc97c7ea2c18c407c664e586cb24543", - abi: [ - { - type: "constructor", + type: "function", + name: "uri", inputs: [ { - name: "defaultBasis", - type: "uint8", - internalType: "enum IRedeemOptimizer.OptimizerBasis", - }, - { - name: "startDepositPeriod", + name: "", type: "uint256", internalType: "uint256", }, ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "DEFAULT_BASIS", - inputs: [], outputs: [ { name: "", - type: "uint8", - internalType: "enum IRedeemOptimizer.OptimizerBasis", + type: "string", + internalType: "string", }, ], stateMutability: "view", }, { type: "function", - name: "START_DEPOSIT_PERIOD", - inputs: [], - outputs: [ + name: "withdrawAsset", + inputs: [ { - name: "", + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { - type: "function", - name: "optimize", + type: "event", + name: "ApprovalForAll", inputs: [ { - name: "vault", + name: "account", type: "address", - internalType: "contract IMultiTokenVault", + indexed: true, + internalType: "address", }, { - name: "owner", + name: "operator", type: "address", + indexed: true, internalType: "address", }, { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "approved", + type: "bool", + indexed: false, + internalType: "bool", }, + ], + anonymous: false, + }, + { + type: "event", + name: "AssetTransfer", + inputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "sender", + type: "address", + indexed: true, + internalType: "address", }, { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", + name: "receiver", + type: "address", + indexed: true, + internalType: "address", }, - ], - outputs: [ { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "asset", + type: "address", + indexed: false, + internalType: "address", }, { - name: "sharesAtPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "amount", + type: "uint256", + indexed: false, + internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "optimizeRedeemShares", + type: "event", + name: "CancelRedeemRequest", inputs: [ - { - name: "vault", - type: "address", - internalType: "contract IMultiTokenVault", - }, { name: "owner", type: "address", + indexed: true, internalType: "address", }, { - name: "shares", + name: "requestId", type: "uint256", + indexed: true, internalType: "uint256", }, { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", + name: "sender", + type: "address", + indexed: true, + internalType: "address", }, ], - outputs: [ + anonymous: false, + }, + { + type: "event", + name: "CurrentPeriodRateChanged", + inputs: [ { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "interestRate", + type: "uint256", + indexed: false, + internalType: "uint256", }, { - name: "sharesAtPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "effectiveFromPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "optimizeWithdrawAssets", + type: "event", + name: "CurrentTenorPeriodAndRateChanged", inputs: [ { - name: "vault", - type: "address", - internalType: "contract IMultiTokenVault", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "assets", + name: "tenorPeriod", type: "uint256", + indexed: false, internalType: "uint256", }, { - name: "redeemPeriod", + name: "reducedRate", type: "uint256", + indexed: false, internalType: "uint256", }, ], - outputs: [ + anonymous: false, + }, + { + type: "event", + name: "Deposit", + inputs: [ { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", + name: "sender", + type: "address", + indexed: true, + internalType: "address", }, { - name: "sharesAtPeriods", - type: "uint256[]", - internalType: "uint256[]", + name: "receiver", + type: "address", + indexed: true, + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "error", - name: "MathOverflowedMulDiv", - inputs: [], - }, - { - type: "error", - name: "RedeemOptimizer__FutureToDepositPeriod", - inputs: [ { - name: "toPeriod", + name: "depositPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "assets", type: "uint256", + indexed: false, internalType: "uint256", }, { - name: "currentPeriod", + name: "shares", type: "uint256", + indexed: false, internalType: "uint256", }, ], + anonymous: false, }, { - type: "error", - name: "RedeemOptimizer__InvalidDepositPeriodRange", + type: "event", + name: "Deposit", inputs: [ { - name: "fromPeriod", + 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: "toPeriod", + name: "shares", type: "uint256", + indexed: false, internalType: "uint256", }, ], + anonymous: false, }, { - type: "error", - name: "RedeemOptimizer__OptimizerFailed", + type: "event", + name: "DepositRequest", inputs: [ { - name: "amountFound", + 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: "amountToFind", + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "assets", type: "uint256", + indexed: false, internalType: "uint256", }, ], - }, - ], - inheritedFunctions: {}, - }, - "LiquidContinuousMultiTokenVault#0": { - address: "0x9db9df1d91c5cde0c92cf02b9992d42f47028b4a", - abi: [ - { - type: "constructor", - inputs: [], - stateMutability: "nonpayable", + anonymous: false, }, { - type: "function", - name: "ASSET_MANAGER_ROLE", - inputs: [], - outputs: [ + type: "event", + name: "Initialized", + inputs: [ { - name: "", - type: "bytes32", - internalType: "bytes32", + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "CLOCK_MODE", - inputs: [], - outputs: [ + type: "event", + name: "Paused", + inputs: [ { - name: "", - type: "string", - internalType: "string", + name: "account", + type: "address", + indexed: false, + internalType: "address", }, ], - stateMutability: "pure", + anonymous: false, }, { - type: "function", - name: "DEFAULT_ADMIN_ROLE", - inputs: [], - outputs: [ + type: "event", + name: "RedeemRequest", + inputs: [ { - name: "", - type: "bytes32", - internalType: "bytes32", + name: "controller", + type: "address", + indexed: true, + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "FREQUENCY", - inputs: [], - outputs: [ { - name: "", + 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", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "OPERATOR_ROLE", - inputs: [], - outputs: [ + type: "event", + name: "RoleAdminChanged", + inputs: [ { - name: "", + name: "role", type: "bytes32", + indexed: true, internalType: "bytes32", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "RATE_PERCENT_SCALED", - inputs: [], - outputs: [ { - name: "", - type: "uint256", - internalType: "uint256", + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", }, ], - stateMutability: "view", + anonymous: false, }, { - 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: [ + type: "event", + name: "RoleGranted", + inputs: [ { - name: "", + name: "role", type: "bytes32", + indexed: true, internalType: "bytes32", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "UPGRADE_INTERFACE_VERSION", - inputs: [], - outputs: [ { - name: "", - type: "string", - internalType: "string", + name: "account", + type: "address", + indexed: true, + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "_redeemOptimizer", - inputs: [], - outputs: [ { - name: "", + name: "sender", type: "address", - internalType: "contract IRedeemOptimizer", + indexed: true, + internalType: "address", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "_vaultStartTimestamp", - inputs: [], - outputs: [ + type: "event", + name: "RoleRevoked", + inputs: [ { - name: "", - type: "uint256", - internalType: "uint256", + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "_yieldStrategy", - inputs: [], - outputs: [ { - name: "", + name: "account", type: "address", - internalType: "contract IYieldStrategy", + indexed: true, + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "asset", - inputs: [], - outputs: [ { - name: "assetTokenAddress", + name: "sender", type: "address", + indexed: true, internalType: "address", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "balanceOf", + type: "event", + name: "TransferBatch", inputs: [ { - name: "account", + name: "operator", type: "address", + indexed: true, internalType: "address", }, { - name: "id", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", + name: "from", + type: "address", + indexed: true, + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "balanceOfBatch", - inputs: [ { - name: "accounts", - type: "address[]", - internalType: "address[]", + name: "to", + type: "address", + indexed: true, + internalType: "address", }, { name: "ids", type: "uint256[]", + indexed: false, internalType: "uint256[]", }, - ], - outputs: [ { - name: "", + name: "values", type: "uint256[]", + indexed: false, internalType: "uint256[]", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "calcPrice", + type: "event", + name: "TransferSingle", inputs: [ { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "price", - type: "uint256", - internalType: "uint256", + name: "operator", + type: "address", + indexed: true, + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "calcYield", - inputs: [ { - name: "principal", - type: "uint256", - internalType: "uint256", + name: "from", + type: "address", + indexed: true, + internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "to", + type: "address", + indexed: true, + internalType: "address", }, { - name: "redeemPeriod", + name: "id", type: "uint256", + indexed: false, internalType: "uint256", }, - ], - outputs: [ { - name: "yield", + name: "value", type: "uint256", + indexed: false, internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "cancelRequestUnlock", + type: "event", + name: "URI", inputs: [ { - name: "owner", - type: "address", - internalType: "address", + name: "value", + type: "string", + indexed: false, + internalType: "string", }, { - name: "requestId", + name: "id", type: "uint256", + indexed: true, internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", + anonymous: false, }, { - type: "function", - name: "claimableDepositRequest", + type: "event", + name: "Unpaused", inputs: [ { - name: "", - type: "uint256", - internalType: "uint256", - }, - { - name: "", + name: "account", type: "address", + indexed: false, internalType: "address", }, ], - outputs: [ + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "implementation", + type: "address", + indexed: true, + internalType: "address", }, ], - stateMutability: "pure", + anonymous: false, }, { - type: "function", - name: "claimableRedeemRequest", + type: "event", + name: "Withdraw", inputs: [ { - name: "requestId", - type: "uint256", - internalType: "uint256", + name: "sender", + type: "address", + indexed: true, + internalType: "address", }, { - name: "controller", + name: "receiver", type: "address", + indexed: true, internalType: "address", }, - ], - outputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "owner", + type: "address", + indexed: true, + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "clock", - inputs: [], - outputs: [ { - name: "clock_", - type: "uint48", - internalType: "uint48", + name: "depositPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToAssets", - inputs: [ { - name: "shares", + name: "assets", type: "uint256", + indexed: false, internalType: "uint256", }, - ], - outputs: [ { - name: "assets_", + name: "shares", type: "uint256", + indexed: false, internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "convertToAssetsForDepositPeriod", + type: "event", + name: "Withdraw", inputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "sender", + type: "address", + indexed: true, + internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "receiver", + type: "address", + indexed: true, + internalType: "address", }, { - name: "redeemPeriod", + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "assets", type: "uint256", + indexed: false, internalType: "uint256", }, - ], - outputs: [ { - name: "assets", + name: "shares", type: "uint256", + indexed: false, internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "convertToAssetsForDepositPeriod", + type: "error", + name: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", inputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "account", + type: "address", + internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "neededRole", + type: "bytes32", + internalType: "bytes32", }, ], - outputs: [ + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ { - name: "", - type: "uint256", - internalType: "uint256", + name: "target", + type: "address", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "convertToAssetsForDepositPeriodBatch", + type: "error", + name: "AddressInsufficientBalance", inputs: [ { - name: "shares", - type: "uint256[]", - internalType: "uint256[]", + name: "account", + type: "address", + internalType: "address", }, + ], + }, + { + type: "error", + name: "ERC1155InsufficientBalance", + inputs: [ { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", + name: "sender", + type: "address", + internalType: "address", }, { - name: "redeemPeriod", + name: "balance", type: "uint256", internalType: "uint256", }, - ], - outputs: [ - { - name: "assets_", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToShares", - inputs: [ { - name: "assets", + name: "needed", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "shares", + name: "tokenId", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "convertToSharesForDepositPeriod", + type: "error", + name: "ERC1155InvalidApprover", inputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "approver", + type: "address", + internalType: "address", }, + ], + }, + { + type: "error", + name: "ERC1155InvalidArrayLength", + inputs: [ { - name: "", + name: "idsLength", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "shares", + name: "valuesLength", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "currentPeriod", - inputs: [], - outputs: [ + type: "error", + name: "ERC1155InvalidOperator", + inputs: [ { - name: "currentPeriod_", - type: "uint256", - internalType: "uint256", + name: "operator", + type: "address", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "currentPeriodRate", - inputs: [], - outputs: [ + type: "error", + name: "ERC1155InvalidReceiver", + inputs: [ { - name: "currentPeriodRate_", - type: "tuple", - internalType: "struct ITripleRateContext.PeriodRate", - components: [ - { - name: "interestRate", - type: "uint256", - internalType: "uint256", - }, - { - name: "effectiveFromPeriod", - type: "uint256", - internalType: "uint256", - }, - ], + name: "receiver", + type: "address", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "currentPeriodsElapsed", - inputs: [], - outputs: [ + type: "error", + name: "ERC1155InvalidSender", + inputs: [ { - name: "numPeriodsElapsed_", - type: "uint256", - internalType: "uint256", + name: "sender", + type: "address", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "deposit", + type: "error", + name: "ERC1155MissingApprovalForAll", inputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", + name: "operator", type: "address", internalType: "address", }, { - name: "controller", + name: "owner", type: "address", internalType: "address", }, ], - outputs: [ - { - name: "shares_", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "nonpayable", }, { - type: "function", - name: "deposit", + type: "error", + name: "ERC1967InvalidImplementation", inputs: [ { - name: "assets", + 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: "receiver", + name: "amount2", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__ControllerNotSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "controller", type: "address", internalType: "address", }, ], - outputs: [ + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidAuthAddress", + inputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "authName", + type: "string", + internalType: "string", + }, + { + name: "authAddress", + type: "address", + internalType: "address", }, ], - stateMutability: "nonpayable", }, { - type: "function", - name: "exists", + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidComponentTokenAmount", inputs: [ { - name: "id", + name: "componentTokenAmount", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "unlockRequestedAmount", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "frequency", - inputs: [], - outputs: [ + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidFrequency", + inputs: [ { - name: "frequency_", + name: "frequency", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "getRoleAdmin", + type: "error", + name: "LiquidContinuousMultiTokenVault__UnAuthorized", inputs: [ { - name: "role", - type: "bytes32", - internalType: "bytes32", + name: "sender", + type: "address", + internalType: "address", }, - ], - outputs: [ { - name: "", - type: "bytes32", - internalType: "bytes32", + name: "authorizedOwner", + type: "address", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "getRoleMember", + type: "error", + name: "LiquidContinuousMultiTokenVault__UnlockPeriodMismatch", inputs: [ { - name: "role", - type: "bytes32", - internalType: "bytes32", + name: "unlockPeriod1", + type: "uint256", + internalType: "uint256", }, { - name: "index", + name: "unlockPeriod2", type: "uint256", internalType: "uint256", }, ], - outputs: [ + }, + { + type: "error", + name: "MultiTokenVault__CallerMissingApprovalForAll", + inputs: [ { - name: "", + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "owner", type: "address", internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "getRoleMemberCount", + type: "error", + name: "MultiTokenVault__ExceededMaxDeposit", inputs: [ { - name: "role", - type: "bytes32", - internalType: "bytes32", + name: "receiver", + type: "address", + internalType: "address", }, - ], - outputs: [ { - name: "", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAssets", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "getVersion", - inputs: [], - outputs: [ + type: "error", + name: "MultiTokenVault__ExceededMaxRedeem", + inputs: [ { - name: "version", + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxShares", type: "uint256", internalType: "uint256", }, ], - stateMutability: "pure", }, { - type: "function", - name: "grantRole", + type: "error", + name: "MultiTokenVault__InvalidArrayLength", inputs: [ { - name: "role", - type: "bytes32", - internalType: "bytes32", + name: "depositPeriodsLength", + type: "uint256", + internalType: "uint256", }, { - name: "account", - type: "address", - internalType: "address", + name: "sharesLength", + type: "uint256", + internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "function", - name: "hasRole", + type: "error", + name: "MultiTokenVault__RedeemBeforeDeposit", inputs: [ { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "account", + name: "owner", type: "address", internalType: "address", }, - ], - outputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "initialize", + type: "error", + name: "MultiTokenVault__RedeemTimePeriodNotSupported", 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", - }, - ], - }, - ], + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "period", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "function", - name: "isApprovedForAll", + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeCastOverflowedUintDowncast", inputs: [ { - name: "account", + 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: "operator", + name: "caller", type: "address", internalType: "address", }, - ], - outputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "owner", + type: "address", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "lock", + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", inputs: [ { - name: "account", + name: "owner", type: "address", internalType: "address", }, @@ -6881,16 +6851,19 @@ const deployedContracts = { type: "uint256", internalType: "uint256", }, + { + name: "maxRequestUnlockAmount", + type: "uint256", + internalType: "uint256", + }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "function", - name: "lockedAmount", + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxUnlock", inputs: [ { - name: "account", + name: "owner", type: "address", internalType: "address", }, @@ -6899,63 +6872,69 @@ const deployedContracts = { type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "lockedAmount_", + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxUnlockAmount", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "maxDeposit", + type: "error", + name: "TimelockAsyncUnlock__InvalidArrayLength", inputs: [ { - name: "", - type: "address", - internalType: "address", + name: "depositPeriodsLength", + type: "uint256", + internalType: "uint256", }, - ], - outputs: [ { - name: "", + name: "amountsLength", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "maxRedeemAtPeriod", + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, { name: "owner", type: "address", internalType: "address", }, { - name: "depositPeriod", + name: "currentPeriod", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "maxShares", + name: "unlockPeriod", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "maxRequestUnlock", + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", inputs: [ + { + name: "caller", + type: "address", + internalType: "address", + }, { name: "owner", type: "address", @@ -6966,136 +6945,177 @@ const deployedContracts = { type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "", + name: "unlockPeriod", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "minUnlockPeriod", - inputs: [], - outputs: [ + type: "error", + name: "Timer__StartTimeNotReached", + inputs: [ { - name: "minUnlockPeriod_", + name: "currentTime", type: "uint256", internalType: "uint256", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "noticePeriod", - inputs: [], - outputs: [ { - name: "noticePeriod_", + name: "startTime", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "numPeriodsForFullRate", - inputs: [], - outputs: [ + type: "error", + name: "TripleRateContext_PeriodRegressionNotAllowed", + inputs: [ { - name: "numPeriods", + name: "currentPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "updatePeriod", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "pause", - inputs: [], - outputs: [], - stateMutability: "nonpayable", + type: "error", + name: "TripleRateContext_TenorPeriodRegressionNotAllowed", + inputs: [ + { + name: "tenorPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "newTenorPeriod", + type: "uint256", + internalType: "uint256", + }, + ], }, { - type: "function", - name: "paused", + type: "error", + name: "UUPSUnauthorizedCallContext", inputs: [], - outputs: [ + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "slot", + type: "bytes32", + internalType: "bytes32", }, ], - stateMutability: "view", }, + ], + inheritedFunctions: {}, + }, + "ERC1967Proxy#0": { + address: "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + abi: [ { - type: "function", - name: "pendingDepositRequest", + type: "constructor", inputs: [ { - name: "", - type: "uint256", - internalType: "uint256", - }, - { - name: "", + name: "implementation", type: "address", internalType: "address", }, - ], - outputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "_data", + type: "bytes", + internalType: "bytes", }, ], - stateMutability: "pure", + stateMutability: "payable", }, { - type: "function", - name: "pendingRedeemRequest", + type: "fallback", + stateMutability: "payable", + }, + { + type: "event", + name: "Upgraded", inputs: [ { - name: "requestId", - type: "uint256", - internalType: "uint256", + name: "implementation", + type: "address", + indexed: true, + internalType: "address", }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ { - name: "", + name: "target", type: "address", internalType: "address", }, ], - outputs: [ + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "implementation", + type: "address", + internalType: "address", }, ], - stateMutability: "view", + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + ], + inheritedFunctions: {}, + }, + "ERC1155MintableBurnable#0": { + address: "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", + abi: [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", }, { type: "function", - name: "previewDeposit", + name: "balanceOf", inputs: [ { - name: "assets", + name: "account", + type: "address", + internalType: "address", + }, + { + name: "id", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "shares", + name: "", type: "uint256", internalType: "uint256", }, @@ -7104,563 +7124,576 @@ const deployedContracts = { }, { type: "function", - name: "previewRedeemForDepositPeriod", + name: "balanceOfBatch", inputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "accounts", + type: "address[]", + internalType: "address[]", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "ids", + type: "uint256[]", + internalType: "uint256[]", }, ], outputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "", + type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "view", }, { type: "function", - name: "previewRedeemForDepositPeriod", + name: "burn", inputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "_from", + type: "address", + internalType: "address", }, { - name: "depositPeriod", + name: "_id", type: "uint256", internalType: "uint256", }, { - name: "redeemPeriod", + name: "_amount", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "", + type: "bytes[]", + internalType: "bytes[]", }, ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { type: "function", - name: "previousPeriodRate", - inputs: [], - outputs: [ + name: "burnBatch", + inputs: [ { - name: "previousPeriodRate_", - type: "tuple", - internalType: "struct ITripleRateContext.PeriodRate", - components: [ - { - name: "interestRate", - type: "uint256", - internalType: "uint256", - }, - { - name: "effectiveFromPeriod", - type: "uint256", - internalType: "uint256", - }, - ], + name: "_from", + type: "address", + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "proxiableUUID", - inputs: [], - outputs: [ { - name: "", - type: "bytes32", - internalType: "bytes32", + name: "_ids", + type: "uint256[]", + internalType: "uint256[]", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "rateScaled", - inputs: [], - outputs: [ { - name: "ratePercentageScaled_", - type: "uint256", - internalType: "uint256", + name: "_amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "", + type: "bytes", + internalType: "bytes", }, ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { type: "function", - name: "redeem", + name: "isApprovedForAll", inputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", + name: "account", type: "address", internalType: "address", }, { - name: "controller", + name: "operator", type: "address", internalType: "address", }, ], outputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "", + type: "bool", + internalType: "bool", }, ], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "redeemForDepositPeriod", + name: "safeBatchTransferFrom", inputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", + name: "from", type: "address", internalType: "address", }, { - name: "owner", + name: "to", type: "address", internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "ids", + type: "uint256[]", + internalType: "uint256[]", }, { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", + name: "values", + type: "uint256[]", + internalType: "uint256[]", }, - ], - outputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "data", + type: "bytes", + internalType: "bytes", }, ], + outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "redeemForDepositPeriod", + name: "safeMint", inputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "owner", + name: "_to", type: "address", internalType: "address", }, { - name: "depositPeriod", + name: "_id", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "", + name: "_amount", type: "uint256", internalType: "uint256", }, + { + name: "_data", + type: "bytes", + internalType: "bytes", + }, ], + outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "renounceRole", + name: "safeMintBatch", inputs: [ { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "callerConfirmation", + 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: "requestDeposit", + name: "safeTransferFrom", inputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "controller", + name: "from", type: "address", internalType: "address", }, { - name: "owner", + name: "to", type: "address", internalType: "address", }, - ], - outputs: [ { - name: "requestId_", + name: "id", type: "uint256", internalType: "uint256", }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "requestRedeem", - inputs: [ { - name: "shares", + name: "value", type: "uint256", internalType: "uint256", }, { - name: "controller", - type: "address", - internalType: "address", + name: "data", + type: "bytes", + internalType: "bytes", }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setApprovalForAll", + inputs: [ { - name: "owner", + name: "operator", type: "address", internalType: "address", }, - ], - outputs: [ { - name: "requestId_", - type: "uint256", - internalType: "uint256", + name: "approved", + type: "bool", + internalType: "bool", }, ], + outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "requestUnlock", + name: "supportsInterface", inputs: [ { - name: "owner", - type: "address", - internalType: "address", + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", }, + ], + outputs: [ { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", + name: "", + type: "bool", + internalType: "bool", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "uri", + inputs: [ { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "", + type: "uint256", + internalType: "uint256", }, ], outputs: [ { name: "", - type: "uint256", - internalType: "uint256", + type: "string", + internalType: "string", }, ], - stateMutability: "nonpayable", + stateMutability: "view", }, { - type: "function", - name: "revokeRole", + type: "event", + name: "ApprovalForAll", inputs: [ { - name: "role", - type: "bytes32", - internalType: "bytes32", + name: "account", + type: "address", + indexed: true, + internalType: "address", }, { - name: "account", + name: "operator", type: "address", + indexed: true, internalType: "address", }, + { + name: "approved", + type: "bool", + indexed: false, + internalType: "bool", + }, ], - outputs: [], - stateMutability: "nonpayable", + anonymous: false, }, { - type: "function", - name: "safeBatchTransferFrom", + 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: "amounts", + name: "values", type: "uint256[]", + indexed: false, internalType: "uint256[]", }, - { - name: "data", - type: "bytes", - internalType: "bytes", - }, ], - outputs: [], - stateMutability: "nonpayable", + anonymous: false, }, { - type: "function", - name: "safeTransferFrom", + 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: "amount", + name: "value", type: "uint256", + indexed: false, internalType: "uint256", }, - { - name: "data", - type: "bytes", - internalType: "bytes", - }, ], - outputs: [], - stateMutability: "nonpayable", + anonymous: false, }, { - type: "function", - name: "scale", - inputs: [], - outputs: [ + type: "event", + name: "URI", + inputs: [ { - name: "scale_", - type: "uint256", + name: "value", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "id", + type: "uint256", + indexed: true, internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "setApprovalForAll", + type: "error", + name: "ERC1155InsufficientBalance", inputs: [ { - name: "operator", + name: "sender", type: "address", internalType: "address", }, { - name: "approved", - type: "bool", - internalType: "bool", + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "function", - name: "setRedeemOptimizer", + type: "error", + name: "ERC1155InvalidApprover", inputs: [ { - name: "redeemOptimizer", + name: "approver", type: "address", - internalType: "contract IRedeemOptimizer", + internalType: "address", }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "function", - name: "setReducedRate", + type: "error", + name: "ERC1155InvalidArrayLength", inputs: [ { - name: "reducedRateScaled_", + name: "idsLength", type: "uint256", internalType: "uint256", }, { - name: "effectiveFromPeriod_", + name: "valuesLength", type: "uint256", internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "function", - name: "setReducedRateAtCurrent", + type: "error", + name: "ERC1155InvalidOperator", inputs: [ { - name: "reducedRateScaled_", - type: "uint256", - internalType: "uint256", + name: "operator", + type: "address", + internalType: "address", }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "function", - name: "setVaultStartTimestamp", + type: "error", + name: "ERC1155InvalidReceiver", inputs: [ { - name: "vaultStartTimestamp", - type: "uint256", - internalType: "uint256", + name: "receiver", + type: "address", + internalType: "address", }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "function", - name: "setYieldStrategy", + type: "error", + name: "ERC1155InvalidSender", inputs: [ { - name: "yieldStrategy", + name: "sender", type: "address", - internalType: "contract IYieldStrategy", + internalType: "address", }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "function", - name: "sharesAtPeriod", + type: "error", + name: "ERC1155MissingApprovalForAll", inputs: [ { - name: "owner", + name: "operator", type: "address", internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "owner", + type: "address", + internalType: "address", }, ], + }, + ], + inheritedFunctions: {}, + }, + "SimpleTimelockAsyncUnlock#0": { + address: "0x0165878a594ca255338adfa4d48449f69242eb8f", + abi: [ + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], outputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "", + type: "string", + internalType: "string", }, ], stateMutability: "view", }, { type: "function", - name: "supportsInterface", - inputs: [ + name: "_currentPeriod", + inputs: [], + outputs: [ { - name: "interfaceId", - type: "bytes4", - internalType: "bytes4", + name: "", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", + }, + { + type: "function", + name: "_deposits", + inputs: [], outputs: [ { name: "", - type: "bool", - internalType: "bool", + type: "address", + internalType: "contract IERC5679Ext1155", }, ], stateMutability: "view", }, { type: "function", - name: "totalAssets", - inputs: [], - outputs: [ + name: "cancelRequestUnlock", + inputs: [ { - name: "totalManagedAssets", + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { type: "function", - name: "totalSupply", + name: "currentPeriod", inputs: [], outputs: [ { - name: "", + name: "currentPeriod_", type: "uint256", internalType: "uint256", }, @@ -7669,55 +7702,48 @@ const deployedContracts = { }, { type: "function", - name: "totalSupply", + name: "initialize", inputs: [ { - name: "id", + name: "noticePeriod_", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "", - type: "uint256", - internalType: "uint256", + name: "deposits", + type: "address", + internalType: "contract IERC5679Ext1155", }, ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { type: "function", - name: "unlock", + name: "lock", inputs: [ { - name: "owner", + name: "account", type: "address", internalType: "address", }, { - name: "requestId", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, - ], - outputs: [ - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "amount", + type: "uint256", + internalType: "uint256", }, ], + outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "unlockRequestAmount", + name: "lockedAmount", inputs: [ { name: "owner", @@ -7725,14 +7751,14 @@ const deployedContracts = { internalType: "address", }, { - name: "requestId", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "amount_", + name: "lockedAmount_", type: "uint256", internalType: "uint256", }, @@ -7741,7 +7767,7 @@ const deployedContracts = { }, { type: "function", - name: "unlockRequestAmountByDepositPeriod", + name: "maxRequestUnlock", inputs: [ { name: "owner", @@ -7756,7 +7782,7 @@ const deployedContracts = { ], outputs: [ { - name: "amount", + name: "", type: "uint256", internalType: "uint256", }, @@ -7765,44 +7791,52 @@ const deployedContracts = { }, { type: "function", - name: "unlockRequestDepositPeriods", - inputs: [ + name: "minUnlockPeriod", + inputs: [], + outputs: [ { - name: "owner", - type: "address", - internalType: "address", + name: "minUnlockPeriod_", + type: "uint256", + internalType: "uint256", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "noticePeriod", + inputs: [], + outputs: [ { - name: "requestId", + name: "noticePeriod_", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], outputs: [ { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "", + type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "view", }, { type: "function", - name: "unlockRequests", + name: "requestUnlock", inputs: [ { name: "owner", type: "address", internalType: "address", }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ { name: "depositPeriods", type: "uint256[]", @@ -7814,267 +7848,199 @@ const deployedContracts = { internalType: "uint256[]", }, ], - stateMutability: "view", + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", }, { type: "function", - name: "unpause", - inputs: [], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "upgradeToAndCall", + name: "setCurrentPeriod", inputs: [ { - name: "newImplementation", - type: "address", - internalType: "address", - }, - { - name: "data", - type: "bytes", - internalType: "bytes", + name: "currentPeriod_", + type: "uint256", + internalType: "uint256", }, ], outputs: [], - stateMutability: "payable", + stateMutability: "nonpayable", }, { type: "function", - name: "uri", + name: "supportsInterface", inputs: [ { - name: "", - type: "uint256", - internalType: "uint256", + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", }, ], outputs: [ { name: "", - type: "string", - internalType: "string", + type: "bool", + internalType: "bool", }, ], stateMutability: "view", }, { type: "function", - name: "withdrawAsset", + name: "unlock", inputs: [ { - name: "to", + name: "owner", type: "address", internalType: "address", }, { - name: "amount", + name: "unlockPeriod", type: "uint256", internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "event", - name: "ApprovalForAll", - inputs: [ - { - name: "account", - type: "address", - indexed: true, - internalType: "address", - }, + outputs: [ { - name: "operator", - type: "address", - indexed: true, - internalType: "address", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", }, { - name: "approved", - type: "bool", - indexed: false, - internalType: "bool", + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", }, ], - anonymous: false, + stateMutability: "nonpayable", }, { - type: "event", - name: "AssetTransfer", + type: "function", + name: "unlockRequestAmount", inputs: [ { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", + name: "owner", type: "address", - indexed: true, internalType: "address", }, { - name: "asset", - type: "address", - indexed: false, - internalType: "address", + name: "requestId", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "amount", + name: "amount_", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "CancelRedeemRequest", + type: "function", + name: "unlockRequestAmountByDepositPeriod", inputs: [ { name: "owner", type: "address", - indexed: true, internalType: "address", }, { - name: "requestId", + name: "depositPeriod", 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", - }, + outputs: [ { - name: "effectiveFromPeriod", + name: "amount", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "CurrentTenorPeriodAndRateChanged", + type: "function", + name: "unlockRequestDepositPeriods", inputs: [ { - name: "tenorPeriod", - type: "uint256", - indexed: false, - internalType: "uint256", + name: "owner", + type: "address", + internalType: "address", }, { - name: "reducedRate", + name: "requestId", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + outputs: [ + { + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", }, { - type: "event", - name: "Deposit", + type: "function", + name: "unlockRequests", inputs: [ { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", + name: "owner", type: "address", - indexed: true, internalType: "address", }, { - name: "depositPeriod", + name: "requestId", type: "uint256", - indexed: false, internalType: "uint256", }, + ], + outputs: [ { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", }, { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "Deposit", + type: "function", + name: "upgradeToAndCall", inputs: [ { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "owner", + name: "newImplementation", type: "address", - indexed: true, internalType: "address", }, { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", + name: "data", + type: "bytes", + internalType: "bytes", }, ], - anonymous: false, + outputs: [], + stateMutability: "payable", }, { type: "event", - name: "DepositRequest", + name: "CancelRedeemRequest", inputs: [ - { - name: "controller", - type: "address", - indexed: true, - internalType: "address", - }, { name: "owner", type: "address", @@ -8090,15 +8056,9 @@ const deployedContracts = { { name: "sender", type: "address", - indexed: false, + indexed: true, internalType: "address", }, - { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", - }, ], anonymous: false, }, @@ -8117,351 +8077,263 @@ const deployedContracts = { }, { type: "event", - name: "Paused", + name: "Upgraded", inputs: [ { - name: "account", + name: "implementation", type: "address", - indexed: false, + indexed: true, internalType: "address", }, ], anonymous: false, }, { - type: "event", - name: "RedeemRequest", + type: "error", + name: "AddressEmptyCode", inputs: [ { - name: "controller", + name: "target", type: "address", - indexed: true, internalType: "address", }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ { - name: "owner", + name: "implementation", 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: "error", + name: "ERC1967NonPayable", + inputs: [], }, { - type: "event", - name: "RoleGranted", + type: "error", + name: "EnumerableMapNonexistentKey", inputs: [ { - name: "role", + name: "key", 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", + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "TimelockAsyncUnlock__AuthorizeCallerFailed", inputs: [ { - name: "role", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "account", + name: "caller", type: "address", - indexed: true, internalType: "address", }, { - name: "sender", + name: "owner", type: "address", - indexed: true, internalType: "address", }, ], - anonymous: false, }, { - type: "event", - name: "TransferBatch", + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", inputs: [ { - name: "operator", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "from", + name: "owner", type: "address", - indexed: true, internalType: "address", }, { - name: "to", - type: "address", - indexed: true, - internalType: "address", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", }, { - name: "ids", - type: "uint256[]", - indexed: false, - internalType: "uint256[]", + name: "amount", + type: "uint256", + internalType: "uint256", }, { - name: "values", - type: "uint256[]", - indexed: false, - internalType: "uint256[]", + name: "maxRequestUnlockAmount", + type: "uint256", + internalType: "uint256", }, ], - anonymous: false, }, { - type: "event", - name: "TransferSingle", + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxUnlock", inputs: [ { - name: "operator", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "from", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "to", + name: "owner", type: "address", - indexed: true, internalType: "address", }, { - name: "id", + name: "depositPeriod", type: "uint256", - indexed: false, internalType: "uint256", }, { - name: "value", + name: "amount", type: "uint256", - indexed: false, internalType: "uint256", }, - ], - anonymous: false, - }, - { - type: "event", - name: "URI", - inputs: [ - { - name: "value", - type: "string", - indexed: false, - internalType: "string", - }, { - name: "id", + name: "maxUnlockAmount", type: "uint256", - indexed: true, internalType: "uint256", }, ], - anonymous: false, }, { - type: "event", - name: "Unpaused", + type: "error", + name: "TimelockAsyncUnlock__InvalidArrayLength", inputs: [ { - name: "account", - type: "address", - indexed: false, - internalType: "address", + name: "depositPeriodsLength", + type: "uint256", + internalType: "uint256", }, - ], - anonymous: false, - }, - { - type: "event", - name: "Upgraded", - inputs: [ { - name: "implementation", - type: "address", - indexed: true, - internalType: "address", + name: "amountsLength", + type: "uint256", + internalType: "uint256", }, ], - anonymous: false, }, { - type: "event", - name: "Withdraw", + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", inputs: [ { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", + name: "caller", type: "address", - indexed: true, internalType: "address", }, { name: "owner", type: "address", - indexed: true, internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "assets", + name: "currentPeriod", type: "uint256", - indexed: false, internalType: "uint256", }, { - name: "shares", + name: "unlockPeriod", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, }, { - type: "event", - name: "Withdraw", + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", inputs: [ { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", + name: "caller", type: "address", - indexed: true, internalType: "address", }, { name: "owner", type: "address", - indexed: true, internalType: "address", }, { - name: "assets", + name: "depositPeriod", type: "uint256", - indexed: false, internalType: "uint256", }, { - name: "shares", + name: "unlockPeriod", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, }, { type: "error", - name: "AccessControlBadConfirmation", + name: "UUPSUnauthorizedCallContext", inputs: [], }, { type: "error", - name: "AccessControlUnauthorizedAccount", + name: "UUPSUnsupportedProxiableUUID", inputs: [ { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "neededRole", + name: "slot", type: "bytes32", internalType: "bytes32", }, ], }, - { - type: "error", + ], + inheritedFunctions: {}, + }, + "ERC1967Proxy#1": { + address: "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", + abi: [ + { + type: "constructor", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + { + name: "_data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "payable", + }, + { + type: "fallback", + stateMutability: "payable", + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", name: "AddressEmptyCode", inputs: [ { @@ -8473,7 +8345,100 @@ const deployedContracts = { }, { type: "error", - name: "AddressInsufficientBalance", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + ], + inheritedFunctions: {}, + }, + }, + 98864: { + "SimpleUSDC#0": { + address: "0x401eCb1D350407f13ba348573E5630B83638E30D", + abi: [ + { + type: "constructor", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "initialSupply", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", inputs: [ { name: "account", @@ -8481,285 +8446,13452 @@ const deployedContracts = { internalType: "address", }, ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "mint", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "owner", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceOwnership", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferOwnership", + inputs: [ + { + name: "newOwner", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "OwnershipTransferred", + inputs: [ + { + name: "previousOwner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "newOwner", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "ERC20InsufficientAllowance", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "allowance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InsufficientBalance", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSpender", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableInvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + ], + inheritedFunctions: {}, + }, + "TripleRateYieldStrategy#0": { + address: "0xe8fe4e1153d6010aa42b5ad8d98201c2517e8c9f", + abi: [ + { + type: "function", + name: "calcPrice", + inputs: [ + { + name: "contextContract", + type: "address", + internalType: "address", + }, + { + name: "numPeriodsElapsed", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "price", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "calcYield", + inputs: [ + { + name: "contextContract", + type: "address", + internalType: "address", + }, + { + name: "principal", + type: "uint256", + internalType: "uint256", + }, + { + name: "fromPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "toPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "yield", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "error", + name: "IYieldStrategy_InvalidContextAddress", + inputs: [], + }, + { + type: "error", + name: "IYieldStrategy_InvalidPeriodRange", + inputs: [ + { + name: "from", + type: "uint256", + internalType: "uint256", + }, + { + name: "to", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MathOverflowedMulDiv", + inputs: [], + }, + ], + inheritedFunctions: {}, + }, + "RedeemOptimizerFIFO#0": { + address: "0x5b0504d26cc97c7ea2c18c407c664e586cb24543", + abi: [ + { + type: "constructor", + inputs: [ + { + name: "defaultBasis", + type: "uint8", + internalType: "enum IRedeemOptimizer.OptimizerBasis", + }, + { + name: "startDepositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "DEFAULT_BASIS", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "enum IRedeemOptimizer.OptimizerBasis", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "START_DEPOSIT_PERIOD", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "optimize", + inputs: [ + { + name: "vault", + type: "address", + internalType: "contract IMultiTokenVault", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "sharesAtPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "optimizeRedeemShares", + inputs: [ + { + name: "vault", + type: "address", + internalType: "contract IMultiTokenVault", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "sharesAtPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "optimizeWithdrawAssets", + inputs: [ + { + name: "vault", + type: "address", + internalType: "contract IMultiTokenVault", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "sharesAtPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "error", + name: "MathOverflowedMulDiv", + inputs: [], + }, + { + type: "error", + name: "RedeemOptimizer__FutureToDepositPeriod", + inputs: [ + { + name: "toPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "currentPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "RedeemOptimizer__InvalidDepositPeriodRange", + inputs: [ + { + name: "fromPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "toPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "RedeemOptimizer__OptimizerFailed", + inputs: [ + { + name: "amountFound", + type: "uint256", + internalType: "uint256", + }, + { + name: "amountToFind", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + inheritedFunctions: {}, + }, + "LiquidContinuousMultiTokenVaultAsProxy#0": { + address: "0x4b1fc984f324d2a0fdd5cd83925124b61175f5c6", + 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: "0x9db9df1d91c5cde0c92cf02b9992d42f47028b4a", + 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: {}, + }, + "ERC1967Proxy#0": { + address: "0x4b1fc984f324d2a0fdd5cd83925124b61175f5c6", + abi: [ + { + type: "constructor", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + { + name: "_data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "payable", + }, + { + type: "fallback", + stateMutability: "payable", + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + ], + inheritedFunctions: {}, + }, + "ERC1155MintableBurnable#0": { + address: "0xaabb58721346ff226495e99582c775f4aadcb68e", + abi: [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", + }, + { + 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: "burn", + inputs: [ + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_id", + type: "uint256", + internalType: "uint256", + }, + { + name: "_amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "burnBatch", + inputs: [ + { + name: "_from", + type: "address", + internalType: "address", + }, + { + name: "_ids", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "_amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "", + type: "bytes", + internalType: "bytes", + }, + ], + 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: "safeBatchTransferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "ids", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "values", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "safeMint", + inputs: [ + { + 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: "safeMintBatch", + inputs: [ + { + 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: "value", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "approved", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "uri", + inputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + 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: "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: "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", + }, + ], + }, + ], + inheritedFunctions: {}, + }, + "SimpleTimelockAsyncUnlock#0": { + address: "0x7c486fa077b84f7fae63ff1f2a3090890c996e77", + abi: [ + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "_currentPeriod", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "_deposits", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IERC5679Ext1155", + }, + ], + 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: "currentPeriod", + inputs: [], + outputs: [ + { + name: "currentPeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "noticePeriod_", + type: "uint256", + internalType: "uint256", + }, + { + name: "deposits", + type: "address", + internalType: "contract IERC5679Ext1155", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + 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: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "lockedAmount_", + 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: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + 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: "setCurrentPeriod", + inputs: [ + { + name: "currentPeriod_", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unlock", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "unlockPeriod", + 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: "upgradeToAndCall", + inputs: [ + { + name: "newImplementation", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + 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: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "EnumerableMapNonexistentKey", + inputs: [ + { + name: "key", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + 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: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + ], + inheritedFunctions: {}, + }, + "ERC1967Proxy#1": { + address: "0x816566e4f7a8812999a58e7f18a1357569318999", + abi: [ + { + type: "constructor", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + { + name: "_data", + type: "bytes", + internalType: "bytes", + }, + ], + stateMutability: "payable", + }, + { + type: "fallback", + stateMutability: "payable", + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + ], + inheritedFunctions: {}, + }, + }, + 98865: { + "SimpleUSDC#0": { + address: "0x0F3B6CC558A714ecf4Cc9ec8caFF0b57ECf65890", + abi: [ + { + type: "constructor", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "initialSupply", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "decimals", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "mint", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "owner", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceOwnership", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transfer", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "transferOwnership", + inputs: [ + { + name: "newOwner", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "spender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "OwnershipTransferred", + inputs: [ + { + name: "previousOwner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "newOwner", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "ERC20InsufficientAllowance", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + { + name: "allowance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InsufficientBalance", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC20InvalidSpender", + inputs: [ + { + name: "spender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableInvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "OwnableUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + ], + }, + ], + inheritedFunctions: {}, + }, + "TripleRateYieldStrategy#0": { + address: "0x797ccfe4063e0c0cc6c1eb580f29bbcec6f62e4b", + abi: [ + { + type: "function", + name: "calcPrice", + inputs: [ + { + name: "contextContract", + type: "address", + internalType: "address", + }, + { + name: "numPeriodsElapsed", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "price", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "calcYield", + inputs: [ + { + name: "contextContract", + type: "address", + internalType: "address", + }, + { + name: "principal", + type: "uint256", + internalType: "uint256", + }, + { + name: "fromPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "toPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "yield", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "error", + name: "IYieldStrategy_InvalidContextAddress", + inputs: [], + }, + { + type: "error", + name: "IYieldStrategy_InvalidPeriodRange", + inputs: [ + { + name: "from", + type: "uint256", + internalType: "uint256", + }, + { + name: "to", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MathOverflowedMulDiv", + inputs: [], + }, + ], + inheritedFunctions: {}, + }, + "RedeemOptimizerFIFO#0": { + address: "0x1e0d689be9cab9ef4db8b24eb2a34feab54b0b8b", + abi: [ + { + type: "constructor", + inputs: [ + { + name: "defaultBasis", + type: "uint8", + internalType: "enum IRedeemOptimizer.OptimizerBasis", + }, + { + name: "startDepositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "DEFAULT_BASIS", + inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "enum IRedeemOptimizer.OptimizerBasis", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "START_DEPOSIT_PERIOD", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "optimize", + inputs: [ + { + name: "vault", + type: "address", + internalType: "contract IMultiTokenVault", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "sharesAtPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "optimizeRedeemShares", + inputs: [ + { + name: "vault", + type: "address", + internalType: "contract IMultiTokenVault", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "sharesAtPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "optimizeWithdrawAssets", + inputs: [ + { + name: "vault", + type: "address", + internalType: "contract IMultiTokenVault", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "sharesAtPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "error", + name: "MathOverflowedMulDiv", + inputs: [], + }, + { + type: "error", + name: "RedeemOptimizer__FutureToDepositPeriod", + inputs: [ + { + name: "toPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "currentPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "RedeemOptimizer__InvalidDepositPeriodRange", + inputs: [ + { + name: "fromPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "toPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "RedeemOptimizer__OptimizerFailed", + inputs: [ + { + name: "amountFound", + type: "uint256", + internalType: "uint256", + }, + { + name: "amountToFind", + type: "uint256", + internalType: "uint256", + }, + ], + }, + ], + inheritedFunctions: {}, + }, + "LiquidContinuousMultiTokenVaultAsProxy#0": { + address: "0xb89846b74f3b190f6e00fc35b3affcdf5d4bb9f9", + 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: "0x8f87e1258d645d948f270221c34202be0583f29b", + 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: "error", - name: "ERC1155InsufficientBalance", + type: "function", + name: "maxRequestUnlock", inputs: [ { - name: "sender", + name: "owner", type: "address", internalType: "address", }, { - name: "balance", - type: "uint256", - internalType: "uint256", - }, - { - name: "needed", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "tokenId", + name: "", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1155InvalidApprover", - inputs: [ + type: "function", + name: "minUnlockPeriod", + inputs: [], + outputs: [ { - name: "approver", - type: "address", - internalType: "address", + name: "minUnlockPeriod_", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1155InvalidArrayLength", - inputs: [ + type: "function", + name: "noticePeriod", + inputs: [], + outputs: [ { - name: "idsLength", + name: "noticePeriod_", type: "uint256", internalType: "uint256", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "numPeriodsForFullRate", + inputs: [], + outputs: [ { - name: "valuesLength", + name: "numPeriods", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1155InvalidOperator", - inputs: [ + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ { - name: "operator", - type: "address", - internalType: "address", + name: "", + type: "bool", + internalType: "bool", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1155InvalidReceiver", + type: "function", + name: "pendingDepositRequest", inputs: [ { - name: "receiver", + name: "", + type: "uint256", + internalType: "uint256", + }, + { + name: "", type: "address", internalType: "address", }, ], - }, - { - type: "error", - name: "ERC1155InvalidSender", - inputs: [ + outputs: [ { - name: "sender", - type: "address", - internalType: "address", + name: "assets", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "pure", }, { - type: "error", - name: "ERC1155MissingApprovalForAll", + type: "function", + name: "pendingRedeemRequest", inputs: [ { - name: "operator", - type: "address", - internalType: "address", + name: "requestId", + type: "uint256", + internalType: "uint256", }, { - name: "owner", + name: "", type: "address", internalType: "address", }, ], - }, - { - type: "error", - name: "ERC1967InvalidImplementation", - inputs: [ + outputs: [ { - name: "implementation", - type: "address", - internalType: "address", + name: "shares", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1967NonPayable", - inputs: [], - }, - { - type: "error", - name: "EnforcedPause", - inputs: [], - }, - { - type: "error", - name: "EnumerableMapNonexistentKey", + type: "function", + name: "previewDeposit", inputs: [ { - name: "key", - type: "bytes32", - internalType: "bytes32", + name: "assets", + type: "uint256", + internalType: "uint256", }, ], + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", }, { - type: "error", - name: "ExpectedPause", - inputs: [], - }, - { - type: "error", - name: "FailedInnerCall", - inputs: [], - }, - { - type: "error", - name: "InvalidInitialization", - inputs: [], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__AmountMismatch", + type: "function", + name: "previewRedeemForDepositPeriod", inputs: [ { - name: "amount1", + name: "shares", type: "uint256", internalType: "uint256", }, { - name: "amount2", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "assets", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "LiquidContinuousMultiTokenVault__ControllerNotSender", + type: "function", + name: "previewRedeemForDepositPeriod", inputs: [ { - name: "sender", - type: "address", - internalType: "address", + name: "shares", + type: "uint256", + internalType: "uint256", }, { - name: "controller", - type: "address", - internalType: "address", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", }, ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidAuthAddress", - inputs: [ + outputs: [ { - name: "authName", - type: "string", - internalType: "string", + name: "assets", + type: "uint256", + internalType: "uint256", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "previousPeriodRate", + inputs: [], + outputs: [ { - name: "authAddress", - type: "address", - internalType: "address", + name: "previousPeriodRate_", + type: "tuple", + internalType: "struct ITripleRateContext.PeriodRate", + components: [ + { + name: "interestRate", + type: "uint256", + internalType: "uint256", + }, + { + name: "effectiveFromPeriod", + type: "uint256", + internalType: "uint256", + }, + ], }, ], + stateMutability: "view", }, { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidComponentTokenAmount", - inputs: [ + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ { - name: "componentTokenAmount", - type: "uint256", - internalType: "uint256", + name: "", + type: "bytes32", + internalType: "bytes32", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "rateScaled", + inputs: [], + outputs: [ { - name: "unlockRequestedAmount", + name: "ratePercentageScaled_", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidFrequency", + type: "function", + name: "redeem", inputs: [ { - name: "frequency", + name: "shares", type: "uint256", internalType: "uint256", }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__UnAuthorized", - inputs: [ { - name: "sender", + name: "receiver", type: "address", internalType: "address", }, { - name: "authorizedOwner", + name: "controller", type: "address", internalType: "address", }, ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__UnlockPeriodMismatch", - inputs: [ - { - name: "unlockPeriod1", - type: "uint256", - internalType: "uint256", - }, + outputs: [ { - name: "unlockPeriod2", + name: "assets", type: "uint256", internalType: "uint256", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "MultiTokenVault__CallerMissingApprovalForAll", + type: "function", + name: "redeemForDepositPeriod", inputs: [ { - name: "operator", - type: "address", - internalType: "address", + name: "shares", + type: "uint256", + internalType: "uint256", }, { - name: "owner", + name: "receiver", type: "address", internalType: "address", }, - ], - }, - { - type: "error", - name: "MultiTokenVault__ExceededMaxDeposit", - inputs: [ { - name: "receiver", + name: "owner", type: "address", internalType: "address", }, @@ -8769,144 +21901,112 @@ const deployedContracts = { internalType: "uint256", }, { - name: "assets", + name: "redeemPeriod", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "maxAssets", + name: "assets", type: "uint256", internalType: "uint256", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "MultiTokenVault__ExceededMaxRedeem", + type: "function", + name: "redeemForDepositPeriod", inputs: [ { - name: "owner", + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "receiver", type: "address", internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "owner", + type: "address", + internalType: "address", }, { - name: "shares", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "maxShares", + name: "", type: "uint256", internalType: "uint256", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "MultiTokenVault__InvalidArrayLength", + type: "function", + name: "renounceRole", inputs: [ { - name: "depositPeriodsLength", - type: "uint256", - internalType: "uint256", + name: "role", + type: "bytes32", + internalType: "bytes32", }, { - name: "sharesLength", - type: "uint256", - internalType: "uint256", + name: "callerConfirmation", + type: "address", + internalType: "address", }, ], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "MultiTokenVault__RedeemBeforeDeposit", + type: "function", + name: "requestDeposit", inputs: [ { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", + name: "assets", type: "uint256", internalType: "uint256", }, { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", + name: "controller", + type: "address", + internalType: "address", }, - ], - }, - { - type: "error", - name: "MultiTokenVault__RedeemTimePeriodNotSupported", - inputs: [ { name: "owner", type: "address", internalType: "address", }, + ], + outputs: [ { - name: "period", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", + name: "requestId_", type: "uint256", internalType: "uint256", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "NotInitializing", - inputs: [], - }, - { - type: "error", - name: "ReentrancyGuardReentrantCall", - inputs: [], - }, - { - type: "error", - name: "SafeCastOverflowedUintDowncast", + type: "function", + name: "requestRedeem", inputs: [ { - name: "bits", - type: "uint8", - internalType: "uint8", - }, - { - name: "value", + name: "shares", type: "uint256", internalType: "uint256", }, - ], - }, - { - type: "error", - name: "SafeERC20FailedOperation", - inputs: [ - { - name: "token", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__AuthorizeCallerFailed", - inputs: [ { - name: "caller", + name: "controller", type: "address", internalType: "address", }, @@ -8916,36 +22016,18 @@ const deployedContracts = { 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", - }, + outputs: [ { - name: "maxRequestUnlockAmount", + name: "requestId_", type: "uint256", internalType: "uint256", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "TimelockAsyncUnlock__ExceededMaxUnlock", + type: "function", + name: "requestUnlock", inputs: [ { name: "owner", @@ -8953,254 +22035,228 @@ const deployedContracts = { internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", }, { - name: "amount", - type: "uint256", - internalType: "uint256", + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", }, + ], + outputs: [ { - name: "maxUnlockAmount", + name: "", type: "uint256", internalType: "uint256", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "TimelockAsyncUnlock__InvalidArrayLength", + type: "function", + name: "revokeRole", inputs: [ { - name: "depositPeriodsLength", - type: "uint256", - internalType: "uint256", + name: "role", + type: "bytes32", + internalType: "bytes32", }, { - name: "amountsLength", - type: "uint256", - internalType: "uint256", + name: "account", + type: "address", + internalType: "address", }, ], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", + type: "function", + name: "safeBatchTransferFrom", inputs: [ { - name: "caller", + name: "from", type: "address", internalType: "address", }, { - name: "owner", + name: "to", type: "address", internalType: "address", }, { - name: "currentPeriod", - type: "uint256", - internalType: "uint256", + name: "ids", + type: "uint256[]", + internalType: "uint256[]", }, { - name: "unlockPeriod", - type: "uint256", - internalType: "uint256", + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", }, ], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", + type: "function", + name: "safeTransferFrom", inputs: [ { - name: "caller", + name: "from", type: "address", internalType: "address", }, { - name: "owner", + name: "to", type: "address", internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockPeriod", + name: "id", type: "uint256", internalType: "uint256", }, - ], - }, - { - type: "error", - name: "Timer__StartTimeNotReached", - inputs: [ { - name: "currentTime", + name: "amount", type: "uint256", internalType: "uint256", }, { - name: "startTime", - type: "uint256", - internalType: "uint256", + name: "data", + type: "bytes", + internalType: "bytes", }, ], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "TripleRateContext_PeriodRegressionNotAllowed", - inputs: [ - { - name: "currentPeriod", - type: "uint256", - internalType: "uint256", - }, + type: "function", + name: "scale", + inputs: [], + outputs: [ { - name: "updatePeriod", + name: "scale_", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "TripleRateContext_TenorPeriodRegressionNotAllowed", + type: "function", + name: "setApprovalForAll", inputs: [ { - name: "tenorPeriod", - type: "uint256", - internalType: "uint256", + name: "operator", + type: "address", + internalType: "address", }, { - name: "newTenorPeriod", - type: "uint256", - internalType: "uint256", + name: "approved", + type: "bool", + internalType: "bool", }, ], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "UUPSUnauthorizedCallContext", - inputs: [], - }, - { - type: "error", - name: "UUPSUnsupportedProxiableUUID", + type: "function", + name: "setRedeemOptimizer", inputs: [ { - name: "slot", - type: "bytes32", - internalType: "bytes32", + name: "redeemOptimizer", + type: "address", + internalType: "contract IRedeemOptimizer", }, ], + outputs: [], + stateMutability: "nonpayable", }, - ], - inheritedFunctions: {}, - }, - "ERC1967Proxy#0": { - address: "0x4b1fc984f324d2a0fdd5cd83925124b61175f5c6", - abi: [ { - type: "constructor", + type: "function", + name: "setReducedRate", inputs: [ { - name: "implementation", - type: "address", - internalType: "address", + name: "reducedRateScaled_", + type: "uint256", + internalType: "uint256", }, { - name: "_data", - type: "bytes", - internalType: "bytes", + name: "effectiveFromPeriod_", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "payable", - }, - { - type: "fallback", - stateMutability: "payable", + outputs: [], + stateMutability: "nonpayable", }, { - type: "event", - name: "Upgraded", + type: "function", + name: "setReducedRateAtCurrent", inputs: [ { - name: "implementation", - type: "address", - indexed: true, - internalType: "address", + name: "reducedRateScaled_", + type: "uint256", + internalType: "uint256", }, ], - anonymous: false, + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "AddressEmptyCode", + type: "function", + name: "setVaultStartTimestamp", inputs: [ { - name: "target", - type: "address", - internalType: "address", + name: "vaultStartTimestamp", + type: "uint256", + internalType: "uint256", }, ], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "ERC1967InvalidImplementation", + type: "function", + name: "setYieldStrategy", inputs: [ { - name: "implementation", + name: "yieldStrategy", type: "address", - internalType: "address", + internalType: "contract IYieldStrategy", }, ], - }, - { - type: "error", - name: "ERC1967NonPayable", - inputs: [], - }, - { - type: "error", - name: "FailedInnerCall", - inputs: [], - }, - ], - inheritedFunctions: {}, - }, - "ERC1155MintableBurnable#0": { - address: "0xaabb58721346ff226495e99582c775f4aadcb68e", - abi: [ - { - type: "constructor", - inputs: [], + outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "balanceOf", + name: "sharesAtPeriod", inputs: [ { - name: "account", + name: "owner", type: "address", internalType: "address", }, { - name: "id", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "", + name: "shares", type: "uint256", internalType: "uint256", }, @@ -9209,285 +22265,259 @@ const deployedContracts = { }, { type: "function", - name: "balanceOfBatch", + name: "supportsInterface", inputs: [ { - name: "accounts", - type: "address[]", - internalType: "address[]", - }, - { - name: "ids", - type: "uint256[]", - internalType: "uint256[]", + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", }, ], outputs: [ { name: "", - type: "uint256[]", - internalType: "uint256[]", + type: "bool", + internalType: "bool", }, ], stateMutability: "view", }, { type: "function", - name: "burn", - inputs: [ - { - name: "_from", - type: "address", - internalType: "address", - }, - { - name: "_id", - type: "uint256", - internalType: "uint256", - }, + name: "totalAssets", + inputs: [], + outputs: [ { - name: "_amount", + name: "totalManagedAssets", type: "uint256", internalType: "uint256", }, - { - name: "", - type: "bytes[]", - internalType: "bytes[]", - }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "burnBatch", - inputs: [ - { - name: "_from", - type: "address", - internalType: "address", - }, - { - name: "_ids", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "_amounts", - type: "uint256[]", - internalType: "uint256[]", - }, + name: "totalSupply", + inputs: [], + outputs: [ { name: "", - type: "bytes", - internalType: "bytes", + type: "uint256", + internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "isApprovedForAll", + name: "totalSupply", inputs: [ { - name: "account", - type: "address", - internalType: "address", - }, - { - name: "operator", - type: "address", - internalType: "address", + name: "id", + type: "uint256", + internalType: "uint256", }, ], outputs: [ { name: "", - type: "bool", - internalType: "bool", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", - name: "safeBatchTransferFrom", + name: "unlock", inputs: [ { - name: "from", + name: "owner", type: "address", internalType: "address", }, { - name: "to", - type: "address", - internalType: "address", + name: "requestId", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "ids", + name: "depositPeriods", type: "uint256[]", internalType: "uint256[]", }, { - name: "values", + name: "amounts", type: "uint256[]", internalType: "uint256[]", }, - { - name: "data", - type: "bytes", - internalType: "bytes", - }, ], - outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "safeMint", + name: "unlockRequestAmount", inputs: [ { - name: "_to", + name: "owner", type: "address", internalType: "address", }, { - name: "_id", + name: "requestId", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "_amount", + name: "amount_", type: "uint256", internalType: "uint256", }, - { - name: "_data", - type: "bytes", - internalType: "bytes", - }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "safeMintBatch", + name: "unlockRequestAmountByDepositPeriod", inputs: [ { - name: "_to", + name: "owner", type: "address", internalType: "address", }, { - name: "_ids", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "_amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "_data", - type: "bytes", - internalType: "bytes", + name: "amount", + type: "uint256", + internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "safeTransferFrom", + name: "unlockRequestDepositPeriods", inputs: [ { - name: "from", + name: "owner", type: "address", internalType: "address", }, { - name: "to", + 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: "id", + name: "requestId", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "value", - type: "uint256", - internalType: "uint256", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", }, { - name: "data", - type: "bytes", - internalType: "bytes", + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", }, ], + stateMutability: "view", + }, + { + type: "function", + name: "unpause", + inputs: [], outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "setApprovalForAll", + name: "upgradeToAndCall", inputs: [ { - name: "operator", + name: "newImplementation", type: "address", internalType: "address", }, { - name: "approved", - type: "bool", - internalType: "bool", + name: "data", + type: "bytes", + internalType: "bytes", }, ], outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", }, { type: "function", - name: "supportsInterface", + name: "uri", inputs: [ { - name: "interfaceId", - type: "bytes4", - internalType: "bytes4", + name: "", + type: "uint256", + internalType: "uint256", }, ], outputs: [ { name: "", - type: "bool", - internalType: "bool", + type: "string", + internalType: "string", }, ], stateMutability: "view", }, { type: "function", - name: "uri", + name: "withdrawAsset", inputs: [ { - name: "", - type: "uint256", - internalType: "uint256", + name: "to", + type: "address", + internalType: "address", }, - ], - outputs: [ { - name: "", - type: "string", - internalType: "string", + name: "amount", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { type: "event", @@ -9516,669 +22546,680 @@ const deployedContracts = { }, { type: "event", - name: "TransferBatch", + name: "AssetTransfer", inputs: [ { - name: "operator", + name: "sender", type: "address", indexed: true, internalType: "address", }, { - name: "from", + name: "receiver", type: "address", indexed: true, internalType: "address", }, { - name: "to", + 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: "ids", - type: "uint256[]", + 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[]", + internalType: "uint256", }, { - name: "values", - type: "uint256[]", + name: "effectiveFromPeriod", + type: "uint256", indexed: false, - internalType: "uint256[]", + internalType: "uint256", }, ], anonymous: false, }, { type: "event", - name: "TransferSingle", + 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: "operator", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "from", + name: "sender", type: "address", indexed: true, internalType: "address", }, { - name: "to", + name: "receiver", type: "address", indexed: true, internalType: "address", }, { - name: "id", + name: "depositPeriod", type: "uint256", indexed: false, internalType: "uint256", }, { - name: "value", + name: "assets", type: "uint256", indexed: false, internalType: "uint256", }, - ], - anonymous: false, - }, - { - type: "event", - name: "URI", - inputs: [ - { - name: "value", - type: "string", - indexed: false, - internalType: "string", - }, { - name: "id", + name: "shares", type: "uint256", - indexed: true, + indexed: false, internalType: "uint256", }, ], anonymous: false, }, { - type: "error", - name: "ERC1155InsufficientBalance", + type: "event", + name: "Deposit", inputs: [ { name: "sender", type: "address", + indexed: true, internalType: "address", }, { - name: "balance", - type: "uint256", - internalType: "uint256", + name: "owner", + type: "address", + indexed: true, + internalType: "address", }, { - name: "needed", + name: "assets", type: "uint256", + indexed: false, internalType: "uint256", }, { - name: "tokenId", + name: "shares", type: "uint256", + indexed: false, internalType: "uint256", }, ], + anonymous: false, }, { - type: "error", - name: "ERC1155InvalidApprover", + type: "event", + name: "DepositRequest", inputs: [ { - name: "approver", + name: "controller", type: "address", + indexed: true, internalType: "address", }, - ], - }, - { - type: "error", - name: "ERC1155InvalidArrayLength", - inputs: [ { - name: "idsLength", - type: "uint256", - internalType: "uint256", + name: "owner", + type: "address", + indexed: true, + internalType: "address", }, { - name: "valuesLength", + name: "requestId", type: "uint256", + indexed: true, internalType: "uint256", }, - ], - }, - { - type: "error", - name: "ERC1155InvalidOperator", - inputs: [ { - name: "operator", + name: "sender", type: "address", + indexed: false, internalType: "address", }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, ], + anonymous: false, }, { - type: "error", - name: "ERC1155InvalidReceiver", + type: "event", + name: "Initialized", inputs: [ { - name: "receiver", - type: "address", - internalType: "address", + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", }, ], + anonymous: false, }, { - type: "error", - name: "ERC1155InvalidSender", + type: "event", + name: "Paused", inputs: [ { - name: "sender", + name: "account", type: "address", + indexed: false, internalType: "address", }, ], + anonymous: false, }, { - type: "error", - name: "ERC1155MissingApprovalForAll", + type: "event", + name: "RedeemRequest", inputs: [ { - name: "operator", + name: "controller", type: "address", + indexed: true, internalType: "address", }, { name: "owner", type: "address", + indexed: true, internalType: "address", }, - ], - }, - ], - inheritedFunctions: {}, - }, - "SimpleTimelockAsyncUnlock#0": { - address: "0x7c486fa077b84f7fae63ff1f2a3090890c996e77", - abi: [ - { - type: "function", - name: "UPGRADE_INTERFACE_VERSION", - inputs: [], - outputs: [ { - name: "", - type: "string", - internalType: "string", + name: "requestId", + type: "uint256", + indexed: true, + internalType: "uint256", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "_currentPeriod", - inputs: [], - outputs: [ { - name: "", + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "shares", type: "uint256", + indexed: false, internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "_deposits", - inputs: [], - outputs: [ + type: "event", + name: "RoleAdminChanged", + inputs: [ { - name: "", - type: "address", - internalType: "contract IERC5679Ext1155", + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "cancelRequestUnlock", + type: "event", + name: "RoleGranted", inputs: [ { - name: "owner", + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", type: "address", + indexed: true, internalType: "address", }, { - name: "requestId", - type: "uint256", - internalType: "uint256", + name: "sender", + type: "address", + indexed: true, + internalType: "address", }, ], - outputs: [], - stateMutability: "nonpayable", + anonymous: false, }, { - type: "function", - name: "currentPeriod", - inputs: [], - outputs: [ + type: "event", + name: "RoleRevoked", + inputs: [ { - name: "currentPeriod_", - type: "uint256", - internalType: "uint256", + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "initialize", - inputs: [ { - name: "noticePeriod_", - type: "uint256", - internalType: "uint256", + name: "account", + type: "address", + indexed: true, + internalType: "address", }, { - name: "deposits", + name: "sender", type: "address", - internalType: "contract IERC5679Ext1155", + indexed: true, + internalType: "address", }, ], - outputs: [], - stateMutability: "nonpayable", + anonymous: false, }, { - type: "function", - name: "lock", + type: "event", + name: "TransferBatch", inputs: [ { - name: "account", + 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: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "ids", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", }, { - name: "amount", - type: "uint256", - internalType: "uint256", + name: "values", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", }, ], - outputs: [], - stateMutability: "nonpayable", + anonymous: false, }, { - type: "function", - name: "lockedAmount", + type: "event", + name: "TransferSingle", inputs: [ { - name: "owner", + name: "operator", type: "address", + indexed: true, internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "lockedAmount_", - type: "uint256", - internalType: "uint256", + name: "from", + type: "address", + indexed: true, + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "maxRequestUnlock", - inputs: [ { - name: "owner", + name: "to", type: "address", + indexed: true, internalType: "address", }, { - name: "depositPeriod", + name: "id", type: "uint256", + indexed: false, internalType: "uint256", }, - ], - outputs: [ { - name: "", + name: "value", type: "uint256", + indexed: false, internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "minUnlockPeriod", - inputs: [], - outputs: [ + type: "event", + name: "URI", + inputs: [ { - name: "minUnlockPeriod_", + name: "value", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "id", type: "uint256", + indexed: true, internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "noticePeriod", - inputs: [], - outputs: [ + type: "event", + name: "Unpaused", + inputs: [ { - name: "noticePeriod_", - type: "uint256", - internalType: "uint256", + name: "account", + type: "address", + indexed: false, + internalType: "address", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "proxiableUUID", - inputs: [], - outputs: [ + type: "event", + name: "Upgraded", + inputs: [ { - name: "", - type: "bytes32", - internalType: "bytes32", + name: "implementation", + type: "address", + indexed: true, + internalType: "address", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "requestUnlock", + type: "event", + name: "Withdraw", inputs: [ { - name: "owner", + name: "sender", type: "address", + indexed: true, internalType: "address", }, { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", + name: "receiver", + type: "address", + indexed: true, + internalType: "address", }, { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "owner", + type: "address", + indexed: true, + internalType: "address", }, - ], - outputs: [ { - name: "", + name: "depositPeriod", type: "uint256", + indexed: false, internalType: "uint256", }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setCurrentPeriod", - inputs: [ { - name: "currentPeriod_", + name: "assets", type: "uint256", + indexed: false, internalType: "uint256", }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "supportsInterface", - inputs: [ - { - name: "interfaceId", - type: "bytes4", - internalType: "bytes4", - }, - ], - outputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "unlock", + type: "event", + name: "Withdraw", inputs: [ { - name: "owner", + name: "sender", type: "address", + indexed: true, internalType: "address", }, { - name: "unlockPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "receiver", + type: "address", + indexed: true, + internalType: "address", }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "unlockRequestAmount", - inputs: [ { name: "owner", type: "address", + indexed: true, internalType: "address", }, { - name: "requestId", + name: "assets", type: "uint256", + indexed: false, internalType: "uint256", }, - ], - outputs: [ { - name: "amount_", + name: "shares", type: "uint256", + indexed: false, internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "unlockRequestAmountByDepositPeriod", + type: "error", + name: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", inputs: [ { - name: "owner", + name: "account", type: "address", internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "amount", - type: "uint256", - internalType: "uint256", + name: "neededRole", + type: "bytes32", + internalType: "bytes32", }, ], - stateMutability: "view", }, { - type: "function", - name: "unlockRequestDepositPeriods", + type: "error", + name: "AddressEmptyCode", inputs: [ { - name: "owner", + name: "target", type: "address", internalType: "address", }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, ], - outputs: [ + }, + { + type: "error", + name: "AddressInsufficientBalance", + inputs: [ { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "account", + type: "address", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "unlockRequests", + type: "error", + name: "ERC1155InsufficientBalance", inputs: [ { - name: "owner", + name: "sender", type: "address", internalType: "address", }, { - name: "requestId", + name: "balance", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", + name: "needed", + type: "uint256", + internalType: "uint256", }, { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "tokenId", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "upgradeToAndCall", + type: "error", + name: "ERC1155InvalidApprover", inputs: [ { - name: "newImplementation", + name: "approver", type: "address", internalType: "address", }, - { - name: "data", - type: "bytes", - internalType: "bytes", - }, ], - outputs: [], - stateMutability: "payable", }, { - type: "event", - name: "CancelRedeemRequest", + type: "error", + name: "ERC1155InvalidArrayLength", inputs: [ { - name: "owner", - type: "address", - indexed: true, - internalType: "address", + name: "idsLength", + type: "uint256", + internalType: "uint256", }, { - name: "requestId", + name: "valuesLength", type: "uint256", - indexed: true, internalType: "uint256", }, + ], + }, + { + type: "error", + name: "ERC1155InvalidOperator", + inputs: [ { - name: "sender", + name: "operator", type: "address", - indexed: true, internalType: "address", }, ], - anonymous: false, }, { - type: "event", - name: "Initialized", + type: "error", + name: "ERC1155InvalidReceiver", inputs: [ { - name: "version", - type: "uint64", - indexed: false, - internalType: "uint64", + name: "receiver", + type: "address", + internalType: "address", }, ], - anonymous: false, }, { - type: "event", - name: "Upgraded", + type: "error", + name: "ERC1155InvalidSender", inputs: [ { - name: "implementation", + name: "sender", type: "address", - indexed: true, internalType: "address", }, ], - anonymous: false, }, { type: "error", - name: "AddressEmptyCode", + name: "ERC1155MissingApprovalForAll", inputs: [ { - name: "target", + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "owner", type: "address", internalType: "address", }, @@ -10200,6 +23241,11 @@ const deployedContracts = { name: "ERC1967NonPayable", inputs: [], }, + { + type: "error", + name: "EnforcedPause", + inputs: [], + }, { type: "error", name: "EnumerableMapNonexistentKey", @@ -10213,56 +23259,30 @@ const deployedContracts = { }, { type: "error", - name: "FailedInnerCall", + name: "ExpectedPause", inputs: [], }, { type: "error", - name: "InvalidInitialization", + name: "FailedInnerCall", inputs: [], }, { type: "error", - name: "NotInitializing", + name: "InvalidInitialization", inputs: [], }, { type: "error", - name: "TimelockAsyncUnlock__AuthorizeCallerFailed", - inputs: [ - { - name: "caller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", + name: "LiquidContinuousMultiTokenVault__AmountMismatch", inputs: [ { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount", + name: "amount1", type: "uint256", internalType: "uint256", }, { - name: "maxRequestUnlockAmount", + name: "amount2", type: "uint256", internalType: "uint256", }, @@ -10270,67 +23290,47 @@ const deployedContracts = { }, { type: "error", - name: "TimelockAsyncUnlock__ExceededMaxUnlock", + name: "LiquidContinuousMultiTokenVault__ControllerNotSender", inputs: [ { - name: "owner", + name: "sender", type: "address", internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, - { - name: "maxUnlockAmount", - type: "uint256", - internalType: "uint256", + name: "controller", + type: "address", + internalType: "address", }, ], }, { type: "error", - name: "TimelockAsyncUnlock__InvalidArrayLength", + name: "LiquidContinuousMultiTokenVault__InvalidAuthAddress", inputs: [ { - name: "depositPeriodsLength", - type: "uint256", - internalType: "uint256", + name: "authName", + type: "string", + internalType: "string", }, { - name: "amountsLength", - type: "uint256", - internalType: "uint256", + name: "authAddress", + type: "address", + internalType: "address", }, ], }, { type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", + name: "LiquidContinuousMultiTokenVault__InvalidComponentTokenAmount", inputs: [ { - name: "caller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "currentPeriod", + name: "componentTokenAmount", type: "uint256", internalType: "uint256", }, { - name: "unlockPeriod", + name: "unlockRequestedAmount", type: "uint256", internalType: "uint256", }, @@ -10338,25 +23338,10 @@ const deployedContracts = { }, { type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", + name: "LiquidContinuousMultiTokenVault__InvalidFrequency", inputs: [ { - name: "caller", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockPeriod", + name: "frequency", type: "uint256", internalType: "uint256", }, @@ -10364,76 +23349,47 @@ const deployedContracts = { }, { type: "error", - name: "UUPSUnauthorizedCallContext", - inputs: [], - }, - { - type: "error", - name: "UUPSUnsupportedProxiableUUID", - inputs: [ - { - name: "slot", - type: "bytes32", - internalType: "bytes32", - }, - ], - }, - ], - inheritedFunctions: {}, - }, - "ERC1967Proxy#1": { - address: "0x816566e4f7a8812999a58e7f18a1357569318999", - abi: [ - { - type: "constructor", + name: "LiquidContinuousMultiTokenVault__UnAuthorized", inputs: [ { - name: "implementation", + name: "sender", type: "address", internalType: "address", }, { - name: "_data", - type: "bytes", - internalType: "bytes", + name: "authorizedOwner", + type: "address", + internalType: "address", }, ], - stateMutability: "payable", - }, - { - type: "fallback", - stateMutability: "payable", }, { - type: "event", - name: "Upgraded", + type: "error", + name: "LiquidContinuousMultiTokenVault__UnlockPeriodMismatch", inputs: [ { - name: "implementation", - type: "address", - indexed: true, - internalType: "address", + name: "unlockPeriod1", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod2", + type: "uint256", + internalType: "uint256", }, ], - anonymous: false, }, { type: "error", - name: "AddressEmptyCode", + name: "MultiTokenVault__CallerMissingApprovalForAll", inputs: [ { - name: "target", + name: "operator", type: "address", internalType: "address", }, - ], - }, - { - type: "error", - name: "ERC1967InvalidImplementation", - inputs: [ { - name: "implementation", + name: "owner", type: "address", internalType: "address", }, @@ -10441,41 +23397,33 @@ const deployedContracts = { }, { type: "error", - name: "ERC1967NonPayable", - inputs: [], - }, - { - type: "error", - name: "FailedInnerCall", - inputs: [], - }, - ], - inheritedFunctions: {}, - }, - }, - 98865: { - "SimpleUSDC#0": { - address: "0x0F3B6CC558A714ecf4Cc9ec8caFF0b57ECf65890", - abi: [ - { - type: "constructor", + name: "MultiTokenVault__ExceededMaxDeposit", inputs: [ { - name: "owner", + name: "receiver", type: "address", internalType: "address", }, { - name: "initialSupply", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAssets", type: "uint256", internalType: "uint256", }, ], - stateMutability: "nonpayable", }, { - type: "function", - name: "allowance", + type: "error", + name: "MultiTokenVault__ExceededMaxRedeem", inputs: [ { name: "owner", @@ -10483,304 +23431,264 @@ const deployedContracts = { internalType: "address", }, { - name: "spender", - type: "address", - internalType: "address", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", }, - ], - outputs: [ { - name: "", + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxShares", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "approve", + type: "error", + name: "MultiTokenVault__InvalidArrayLength", inputs: [ { - name: "spender", - type: "address", - internalType: "address", - }, - { - name: "value", + name: "depositPeriodsLength", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "sharesLength", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "nonpayable", }, { - type: "function", - name: "balanceOf", + type: "error", + name: "MultiTokenVault__RedeemBeforeDeposit", inputs: [ { - name: "account", + name: "owner", type: "address", internalType: "address", }, - ], - outputs: [ { - name: "", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "decimals", - inputs: [], - outputs: [ { - name: "", - type: "uint8", - internalType: "uint8", + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "mint", + type: "error", + name: "MultiTokenVault__RedeemTimePeriodNotSupported", inputs: [ { - name: "to", + name: "owner", type: "address", internalType: "address", }, { - name: "amount", + name: "period", type: "uint256", internalType: "uint256", }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "name", - inputs: [], - outputs: [ { - name: "", - type: "string", - internalType: "string", + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "owner", + type: "error", + name: "NotInitializing", inputs: [], - outputs: [ - { - name: "", - type: "address", - internalType: "address", - }, - ], - stateMutability: "view", }, { - type: "function", - name: "renounceOwnership", + type: "error", + name: "ReentrancyGuardReentrantCall", inputs: [], - outputs: [], - stateMutability: "nonpayable", }, { - type: "function", - name: "symbol", - inputs: [], - outputs: [ + type: "error", + name: "SafeCastOverflowedUintDowncast", + inputs: [ { - name: "", - type: "string", - internalType: "string", + name: "bits", + type: "uint8", + internalType: "uint8", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "totalSupply", - inputs: [], - outputs: [ { - name: "", + name: "value", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "transfer", + type: "error", + name: "SafeERC20FailedOperation", inputs: [ { - name: "to", + name: "token", type: "address", internalType: "address", }, + ], + }, + { + type: "error", + name: "TimelockAsyncUnlock__AuthorizeCallerFailed", + inputs: [ { - name: "value", - type: "uint256", - internalType: "uint256", + name: "caller", + type: "address", + internalType: "address", }, - ], - outputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "owner", + type: "address", + internalType: "address", }, ], - stateMutability: "nonpayable", }, { - type: "function", - name: "transferFrom", + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", inputs: [ { - name: "from", + name: "owner", type: "address", internalType: "address", }, { - name: "to", - type: "address", - internalType: "address", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", }, { - name: "value", + name: "amount", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "maxRequestUnlockAmount", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "nonpayable", }, { - type: "function", - name: "transferOwnership", + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxUnlock", inputs: [ { - name: "newOwner", + name: "owner", type: "address", internalType: "address", }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxUnlockAmount", + type: "uint256", + internalType: "uint256", + }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "event", - name: "Approval", + type: "error", + name: "TimelockAsyncUnlock__InvalidArrayLength", inputs: [ { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "spender", - type: "address", - indexed: true, - internalType: "address", + name: "depositPeriodsLength", + type: "uint256", + internalType: "uint256", }, { - name: "value", + name: "amountsLength", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, }, { - type: "event", - name: "OwnershipTransferred", + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", inputs: [ { - name: "previousOwner", + name: "caller", type: "address", - indexed: true, internalType: "address", }, { - name: "newOwner", + name: "owner", type: "address", - indexed: true, internalType: "address", }, + { + name: "currentPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod", + type: "uint256", + internalType: "uint256", + }, ], - anonymous: false, }, { - type: "event", - name: "Transfer", + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", inputs: [ { - name: "from", + name: "caller", type: "address", - indexed: true, internalType: "address", }, { - name: "to", + name: "owner", type: "address", - indexed: true, internalType: "address", }, { - name: "value", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, }, { type: "error", - name: "ERC20InsufficientAllowance", + name: "Timer__StartTimeNotReached", inputs: [ { - name: "spender", - type: "address", - internalType: "address", - }, - { - name: "allowance", + name: "currentTime", type: "uint256", internalType: "uint256", }, { - name: "needed", + name: "startTime", type: "uint256", internalType: "uint256", }, @@ -10788,20 +23696,15 @@ const deployedContracts = { }, { type: "error", - name: "ERC20InsufficientBalance", + name: "TripleRateContext_PeriodRegressionNotAllowed", inputs: [ { - name: "sender", - type: "address", - internalType: "address", - }, - { - name: "balance", + name: "currentPeriod", type: "uint256", internalType: "uint256", }, { - name: "needed", + name: "updatePeriod", type: "uint256", internalType: "uint256", }, @@ -10809,54 +23712,81 @@ const deployedContracts = { }, { type: "error", - name: "ERC20InvalidApprover", + name: "TripleRateContext_TenorPeriodRegressionNotAllowed", inputs: [ { - name: "approver", - type: "address", - internalType: "address", + name: "tenorPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "newTenorPeriod", + type: "uint256", + internalType: "uint256", }, ], }, { type: "error", - name: "ERC20InvalidReceiver", + name: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", inputs: [ { - name: "receiver", - type: "address", - internalType: "address", + name: "slot", + type: "bytes32", + internalType: "bytes32", }, ], }, + ], + inheritedFunctions: {}, + }, + "ERC1967Proxy#0": { + address: "0xb89846b74f3b190f6e00fc35b3affcdf5d4bb9f9", + abi: [ { - type: "error", - name: "ERC20InvalidSender", + type: "constructor", inputs: [ { - name: "sender", + name: "implementation", type: "address", internalType: "address", }, + { + name: "_data", + type: "bytes", + internalType: "bytes", + }, ], + stateMutability: "payable", }, { - type: "error", - name: "ERC20InvalidSpender", + type: "fallback", + stateMutability: "payable", + }, + { + type: "event", + name: "Upgraded", inputs: [ { - name: "spender", + name: "implementation", type: "address", + indexed: true, internalType: "address", }, ], + anonymous: false, }, { type: "error", - name: "OwnableInvalidOwner", + name: "AddressEmptyCode", inputs: [ { - name: "owner", + name: "target", type: "address", internalType: "address", }, @@ -10864,39 +23794,67 @@ const deployedContracts = { }, { type: "error", - name: "OwnableUnauthorizedAccount", + name: "ERC1967InvalidImplementation", inputs: [ { - name: "account", + name: "implementation", type: "address", internalType: "address", }, ], }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, ], inheritedFunctions: {}, }, - "TripleRateYieldStrategy#0": { - address: "0x797ccfe4063e0c0cc6c1eb580f29bbcec6f62e4b", + }, + 421614: { + "SimpleUSDC#0": { + address: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d", abi: [ { - type: "function", - name: "calcPrice", + type: "constructor", inputs: [ { - name: "contextContract", + name: "owner", type: "address", internalType: "address", }, { - name: "numPeriodsElapsed", + name: "initialSupply", type: "uint256", internalType: "uint256", }, ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "allowance", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "spender", + type: "address", + internalType: "address", + }, + ], outputs: [ { - name: "price", + name: "", type: "uint256", internalType: "uint256", }, @@ -10905,534 +23863,397 @@ const deployedContracts = { }, { type: "function", - name: "calcYield", + name: "approve", inputs: [ { - name: "contextContract", + name: "spender", type: "address", internalType: "address", }, { - name: "principal", - type: "uint256", - internalType: "uint256", - }, - { - name: "fromPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "toPeriod", + name: "value", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "yield", - type: "uint256", - internalType: "uint256", + name: "", + type: "bool", + internalType: "bool", }, ], - stateMutability: "view", - }, - { - type: "error", - name: "IYieldStrategy_InvalidContextAddress", - inputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "IYieldStrategy_InvalidPeriodRange", + type: "function", + name: "balanceOf", inputs: [ { - name: "from", - type: "uint256", - internalType: "uint256", + name: "account", + type: "address", + internalType: "address", }, + ], + outputs: [ { - name: "to", + name: "", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "MathOverflowedMulDiv", + type: "function", + name: "decimals", inputs: [], + outputs: [ + { + name: "", + type: "uint8", + internalType: "uint8", + }, + ], + stateMutability: "view", }, - ], - inheritedFunctions: {}, - }, - "RedeemOptimizerFIFO#0": { - address: "0x1e0d689be9cab9ef4db8b24eb2a34feab54b0b8b", - abi: [ { - type: "constructor", + type: "function", + name: "mint", inputs: [ { - name: "defaultBasis", - type: "uint8", - internalType: "enum IRedeemOptimizer.OptimizerBasis", + name: "to", + type: "address", + internalType: "address", }, { - name: "startDepositPeriod", + name: "amount", type: "uint256", internalType: "uint256", }, ], + outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "DEFAULT_BASIS", + name: "name", inputs: [], outputs: [ { name: "", - type: "uint8", - internalType: "enum IRedeemOptimizer.OptimizerBasis", + type: "string", + internalType: "string", }, ], stateMutability: "view", }, { type: "function", - name: "START_DEPOSIT_PERIOD", + name: "owner", inputs: [], outputs: [ { name: "", - type: "uint256", - internalType: "uint256", + type: "address", + internalType: "address", }, ], stateMutability: "view", }, { type: "function", - name: "optimize", - inputs: [ - { - name: "vault", - type: "address", - internalType: "contract IMultiTokenVault", - }, - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, + name: "renounceOwnership", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ { - name: "redeemPeriod", - type: "uint256", - internalType: "uint256", + name: "", + type: "string", + internalType: "string", }, ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], outputs: [ { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "sharesAtPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", - name: "optimizeRedeemShares", + name: "transfer", inputs: [ { - name: "vault", - type: "address", - internalType: "contract IMultiTokenVault", - }, - { - name: "owner", + name: "to", type: "address", internalType: "address", }, { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", + name: "value", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "sharesAtPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "", + type: "bool", + internalType: "bool", }, ], - stateMutability: "view", + stateMutability: "nonpayable", }, { type: "function", - name: "optimizeWithdrawAssets", + name: "transferFrom", inputs: [ { - name: "vault", + name: "from", type: "address", - internalType: "contract IMultiTokenVault", + internalType: "address", }, { - name: "owner", + name: "to", type: "address", internalType: "address", }, { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - { - name: "redeemPeriod", + name: "value", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "sharesAtPeriods", - type: "uint256[]", - internalType: "uint256[]", + name: "", + type: "bool", + internalType: "bool", }, ], - stateMutability: "view", - }, - { - type: "error", - name: "MathOverflowedMulDiv", - inputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "RedeemOptimizer__FutureToDepositPeriod", + type: "function", + name: "transferOwnership", inputs: [ { - name: "toPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "currentPeriod", - type: "uint256", - internalType: "uint256", + name: "newOwner", + type: "address", + internalType: "address", }, ], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "RedeemOptimizer__InvalidDepositPeriodRange", + type: "event", + name: "Approval", inputs: [ { - name: "fromPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "toPeriod", - type: "uint256", - internalType: "uint256", + name: "owner", + type: "address", + indexed: true, + internalType: "address", }, - ], - }, - { - type: "error", - name: "RedeemOptimizer__OptimizerFailed", - inputs: [ { - name: "amountFound", - type: "uint256", - internalType: "uint256", + name: "spender", + type: "address", + indexed: true, + internalType: "address", }, { - name: "amountToFind", + name: "value", type: "uint256", + indexed: false, internalType: "uint256", }, ], - }, - ], - inheritedFunctions: {}, - }, - "LiquidContinuousMultiTokenVault#0": { - address: "0x8f87e1258d645d948f270221c34202be0583f29b", - abi: [ - { - type: "constructor", - inputs: [], - stateMutability: "nonpayable", + anonymous: false, }, { - type: "function", - name: "ASSET_MANAGER_ROLE", - inputs: [], - outputs: [ + type: "event", + name: "OwnershipTransferred", + inputs: [ { - name: "", - type: "bytes32", - internalType: "bytes32", + name: "previousOwner", + type: "address", + indexed: true, + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "CLOCK_MODE", - inputs: [], - outputs: [ { - name: "", - type: "string", - internalType: "string", + name: "newOwner", + type: "address", + indexed: true, + internalType: "address", }, ], - stateMutability: "pure", + anonymous: false, }, { - type: "function", - name: "DEFAULT_ADMIN_ROLE", - inputs: [], - outputs: [ + type: "event", + name: "Transfer", + inputs: [ { - name: "", - type: "bytes32", - internalType: "bytes32", + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "FREQUENCY", - inputs: [], - outputs: [ { - name: "", + name: "value", type: "uint256", + indexed: false, internalType: "uint256", }, ], - stateMutability: "view", + anonymous: false, }, { - type: "function", - name: "OPERATOR_ROLE", - inputs: [], - outputs: [ + type: "error", + name: "ERC20InsufficientAllowance", + inputs: [ { - name: "", - type: "bytes32", - internalType: "bytes32", + name: "spender", + type: "address", + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "RATE_PERCENT_SCALED", - inputs: [], - outputs: [ { - name: "", + name: "allowance", type: "uint256", internalType: "uint256", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "SCALE", - inputs: [], - outputs: [ { - name: "", + name: "needed", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "TENOR", - inputs: [], - outputs: [ + type: "error", + name: "ERC20InsufficientBalance", + inputs: [ { - name: "", + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "balance", type: "uint256", internalType: "uint256", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "UPGRADER_ROLE", - inputs: [], - outputs: [ { - name: "", - type: "bytes32", - internalType: "bytes32", + name: "needed", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "UPGRADE_INTERFACE_VERSION", - inputs: [], - outputs: [ + type: "error", + name: "ERC20InvalidApprover", + inputs: [ { - name: "", - type: "string", - internalType: "string", + name: "approver", + type: "address", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "_redeemOptimizer", - inputs: [], - outputs: [ + type: "error", + name: "ERC20InvalidReceiver", + inputs: [ { - name: "", + name: "receiver", type: "address", - internalType: "contract IRedeemOptimizer", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "_vaultStartTimestamp", - inputs: [], - outputs: [ + type: "error", + name: "ERC20InvalidSender", + inputs: [ { - name: "", - type: "uint256", - internalType: "uint256", + name: "sender", + type: "address", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "_yieldStrategy", - inputs: [], - outputs: [ + type: "error", + name: "ERC20InvalidSpender", + inputs: [ { - name: "", + name: "spender", type: "address", - internalType: "contract IYieldStrategy", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "asset", - inputs: [], - outputs: [ + type: "error", + name: "OwnableInvalidOwner", + inputs: [ { - name: "assetTokenAddress", + name: "owner", type: "address", internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "balanceOf", + type: "error", + name: "OwnableUnauthorizedAccount", inputs: [ { name: "account", type: "address", internalType: "address", }, - { - name: "id", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, ], - stateMutability: "view", }, + ], + inheritedFunctions: {}, + }, + "TripleRateYieldStrategy#0": { + address: "0x6502941de3a54a59a2a2a918ed58868cf168f56b", + abi: [ { type: "function", - name: "balanceOfBatch", + name: "calcPrice", inputs: [ { - name: "accounts", - type: "address[]", - internalType: "address[]", - }, - { - name: "ids", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - outputs: [ - { - name: "", - type: "uint256[]", - internalType: "uint256[]", + name: "contextContract", + type: "address", + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "calcPrice", - inputs: [ { - name: "", + name: "numPeriodsElapsed", type: "uint256", internalType: "uint256", }, @@ -11450,18 +24271,23 @@ const deployedContracts = { type: "function", name: "calcYield", inputs: [ + { + name: "contextContract", + type: "address", + internalType: "address", + }, { name: "principal", type: "uint256", internalType: "uint256", }, { - name: "depositPeriod", + name: "fromPeriod", type: "uint256", internalType: "uint256", }, { - name: "redeemPeriod", + name: "toPeriod", type: "uint256", internalType: "uint256", }, @@ -11476,97 +24302,73 @@ const deployedContracts = { stateMutability: "view", }, { - type: "function", - name: "cancelRequestUnlock", - inputs: [ - { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [], - stateMutability: "nonpayable", + type: "error", + name: "IYieldStrategy_InvalidContextAddress", + inputs: [], }, { - type: "function", - name: "claimableDepositRequest", + type: "error", + name: "IYieldStrategy_InvalidPeriodRange", inputs: [ { - name: "", + name: "from", type: "uint256", internalType: "uint256", }, { - name: "", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "assets", + name: "to", type: "uint256", internalType: "uint256", }, ], - stateMutability: "pure", }, { - type: "function", - name: "claimableRedeemRequest", + type: "error", + name: "MathOverflowedMulDiv", + inputs: [], + }, + ], + inheritedFunctions: {}, + }, + "RedeemOptimizerFIFO#0": { + address: "0x141dd57ef6cb9a5d94942e52f037acc871f70b72", + abi: [ + { + type: "constructor", inputs: [ { - name: "requestId", - type: "uint256", - internalType: "uint256", - }, - { - name: "controller", - type: "address", - internalType: "address", + name: "defaultBasis", + type: "uint8", + internalType: "enum IRedeemOptimizer.OptimizerBasis", }, - ], - outputs: [ { - name: "shares", + name: "startDepositPeriod", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", + stateMutability: "nonpayable", }, { type: "function", - name: "clock", + name: "DEFAULT_BASIS", inputs: [], outputs: [ { - name: "clock_", - type: "uint48", - internalType: "uint48", + name: "", + type: "uint8", + internalType: "enum IRedeemOptimizer.OptimizerBasis", }, ], stateMutability: "view", }, { type: "function", - name: "convertToAssets", - inputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", - }, - ], + name: "START_DEPOSIT_PERIOD", + inputs: [], outputs: [ { - name: "assets_", + name: "", type: "uint256", internalType: "uint256", }, @@ -11575,15 +24377,25 @@ const deployedContracts = { }, { type: "function", - name: "convertToAssetsForDepositPeriod", + name: "optimize", inputs: [ + { + name: "vault", + type: "address", + internalType: "contract IMultiTokenVault", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, { name: "shares", type: "uint256", internalType: "uint256", }, { - name: "depositPeriod", + name: "assets", type: "uint256", internalType: "uint256", }, @@ -11595,51 +24407,37 @@ const deployedContracts = { ], outputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "sharesAtPeriods_", + type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "view", }, { type: "function", - name: "convertToAssetsForDepositPeriod", + name: "optimizeRedeemShares", inputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "vault", + type: "address", + internalType: "contract IMultiTokenVault", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "owner", + type: "address", + internalType: "address", }, - ], - outputs: [ { - name: "", + name: "shares", 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", @@ -11648,7 +24446,12 @@ const deployedContracts = { ], outputs: [ { - name: "assets_", + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "sharesAtPeriods_", type: "uint256[]", internalType: "uint256[]", }, @@ -11657,236 +24460,189 @@ const deployedContracts = { }, { type: "function", - name: "convertToShares", + name: "optimizeWithdrawAssets", inputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "vault", + type: "address", + internalType: "contract IMultiTokenVault", }, - ], - outputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "owner", + type: "address", + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "convertToSharesForDepositPeriod", - inputs: [ { name: "assets", type: "uint256", internalType: "uint256", }, { - name: "", + name: "redeemPeriod", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "currentPeriod", - inputs: [], - outputs: [ { - name: "currentPeriod_", - type: "uint256", - internalType: "uint256", + name: "sharesAtPeriods", + type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "view", }, { - type: "function", - name: "currentPeriodRate", + type: "error", + name: "MathOverflowedMulDiv", 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: [ + type: "error", + name: "RedeemOptimizer__FutureToDepositPeriod", + inputs: [ { - name: "numPeriodsElapsed_", + name: "toPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "currentPeriod", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "deposit", + type: "error", + name: "RedeemOptimizer__InvalidDepositPeriodRange", inputs: [ { - name: "assets", + name: "fromPeriod", type: "uint256", internalType: "uint256", }, { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "controller", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "shares_", + name: "toPeriod", type: "uint256", internalType: "uint256", }, ], - stateMutability: "nonpayable", }, { - type: "function", - name: "deposit", + type: "error", + name: "RedeemOptimizer__OptimizerFailed", inputs: [ { - name: "assets", + name: "amountFound", type: "uint256", internalType: "uint256", }, { - name: "receiver", - type: "address", - internalType: "address", - }, - ], - outputs: [ - { - name: "shares", + name: "amountToFind", type: "uint256", internalType: "uint256", }, ], + }, + ], + inheritedFunctions: {}, + }, + "LiquidContinuousMultiTokenVaultAsProxy#0": { + address: "0x111b6a3dbace7f0b32baad47027907765e88abd2", + abi: [ + { + type: "constructor", + inputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "exists", - inputs: [ - { - name: "id", - type: "uint256", - internalType: "uint256", - }, - ], + name: "ASSET_MANAGER_ROLE", + inputs: [], outputs: [ { name: "", - type: "bool", - internalType: "bool", + type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "view", }, { type: "function", - name: "frequency", + name: "CLOCK_MODE", inputs: [], outputs: [ { - name: "frequency_", - type: "uint256", - internalType: "uint256", + name: "", + type: "string", + internalType: "string", }, ], - stateMutability: "view", + stateMutability: "pure", }, { type: "function", - name: "getRoleAdmin", - inputs: [ + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ { - name: "role", + name: "", type: "bytes32", internalType: "bytes32", }, ], + stateMutability: "view", + }, + { + type: "function", + name: "FREQUENCY", + inputs: [], outputs: [ { name: "", - type: "bytes32", - internalType: "bytes32", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", - name: "getRoleMember", - inputs: [ + name: "OPERATOR_ROLE", + inputs: [], + outputs: [ { - name: "role", + name: "", type: "bytes32", internalType: "bytes32", }, - { - name: "index", - type: "uint256", - internalType: "uint256", - }, ], + stateMutability: "view", + }, + { + type: "function", + name: "RATE_PERCENT_SCALED", + inputs: [], outputs: [ { name: "", - type: "address", - internalType: "address", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", - name: "getRoleMemberCount", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - ], + name: "SCALE", + inputs: [], outputs: [ { name: "", @@ -11898,220 +24654,98 @@ const deployedContracts = { }, { type: "function", - name: "getVersion", + name: "TENOR", inputs: [], outputs: [ { - name: "version", + name: "", type: "uint256", internalType: "uint256", }, ], - stateMutability: "pure", + stateMutability: "view", }, { type: "function", - name: "grantRole", - inputs: [ + name: "UPGRADER_ROLE", + inputs: [], + outputs: [ { - name: "role", + name: "", type: "bytes32", internalType: "bytes32", }, - { - name: "account", - type: "address", - internalType: "address", - }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "hasRole", - inputs: [ - { - name: "role", - type: "bytes32", - internalType: "bytes32", - }, - { - name: "account", - type: "address", - internalType: "address", - }, - ], + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], outputs: [ { name: "", - type: "bool", - internalType: "bool", + type: "string", + internalType: "string", }, ], stateMutability: "view", }, { type: "function", - name: "initialize", - inputs: [ + name: "_redeemOptimizer", + inputs: [], + outputs: [ { - 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", - }, - ], - }, - ], + name: "", + type: "address", + internalType: "contract IRedeemOptimizer", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "isApprovedForAll", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, + name: "_vaultStartTimestamp", + inputs: [], + outputs: [ { - name: "operator", - type: "address", - internalType: "address", + name: "", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", + }, + { + type: "function", + name: "_yieldStrategy", + inputs: [], outputs: [ { name: "", - type: "bool", - internalType: "bool", + type: "address", + internalType: "contract IYieldStrategy", }, ], stateMutability: "view", }, { type: "function", - name: "lock", - inputs: [ + name: "asset", + inputs: [], + outputs: [ { - name: "account", + name: "assetTokenAddress", type: "address", internalType: "address", }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "lockedAmount", + name: "balanceOf", inputs: [ { name: "account", @@ -12119,14 +24753,14 @@ const deployedContracts = { internalType: "address", }, { - name: "depositPeriod", + name: "id", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "lockedAmount_", + name: "", type: "uint256", internalType: "uint256", }, @@ -12135,41 +24769,41 @@ const deployedContracts = { }, { type: "function", - name: "maxDeposit", + name: "balanceOfBatch", inputs: [ { - name: "", - type: "address", - internalType: "address", + name: "accounts", + type: "address[]", + internalType: "address[]", + }, + { + name: "ids", + type: "uint256[]", + internalType: "uint256[]", }, ], outputs: [ { name: "", - type: "uint256", - internalType: "uint256", + type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "view", }, { type: "function", - name: "maxRedeemAtPeriod", + name: "calcPrice", inputs: [ { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", + name: "", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "maxShares", + name: "price", type: "uint256", internalType: "uint256", }, @@ -12178,35 +24812,27 @@ const deployedContracts = { }, { type: "function", - name: "maxRequestUnlock", + name: "calcYield", inputs: [ { - name: "owner", - type: "address", - internalType: "address", + name: "principal", + type: "uint256", + internalType: "uint256", }, { name: "depositPeriod", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "", + name: "redeemPeriod", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", - }, - { - type: "function", - name: "minUnlockPeriod", - inputs: [], outputs: [ { - name: "minUnlockPeriod_", + name: "yield", type: "uint256", internalType: "uint256", }, @@ -12215,53 +24841,25 @@ const deployedContracts = { }, { type: "function", - name: "noticePeriod", - inputs: [], - outputs: [ + name: "cancelRequestUnlock", + inputs: [ { - name: "noticePeriod_", - type: "uint256", - internalType: "uint256", + name: "owner", + type: "address", + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "numPeriodsForFullRate", - inputs: [], - outputs: [ { - name: "numPeriods", + name: "requestId", 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", + name: "claimableDepositRequest", inputs: [ { name: "", @@ -12285,7 +24883,7 @@ const deployedContracts = { }, { type: "function", - name: "pendingRedeemRequest", + name: "claimableRedeemRequest", inputs: [ { name: "requestId", @@ -12293,7 +24891,7 @@ const deployedContracts = { internalType: "uint256", }, { - name: "", + name: "controller", type: "address", internalType: "address", }, @@ -12309,41 +24907,30 @@ const deployedContracts = { }, { type: "function", - name: "previewDeposit", - inputs: [ - { - name: "assets", - type: "uint256", - internalType: "uint256", - }, - ], + name: "clock", + inputs: [], outputs: [ { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "clock_", + type: "uint48", + internalType: "uint48", }, ], stateMutability: "view", }, { type: "function", - name: "previewRedeemForDepositPeriod", + name: "convertToAssets", inputs: [ { name: "shares", type: "uint256", internalType: "uint256", }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, ], outputs: [ { - name: "assets", + name: "assets_", type: "uint256", internalType: "uint256", }, @@ -12352,7 +24939,7 @@ const deployedContracts = { }, { type: "function", - name: "previewRedeemForDepositPeriod", + name: "convertToAssetsForDepositPeriod", inputs: [ { name: "shares", @@ -12381,49 +24968,22 @@ const deployedContracts = { }, { type: "function", - name: "previousPeriodRate", - inputs: [], - outputs: [ + name: "convertToAssetsForDepositPeriod", + inputs: [ { - name: "previousPeriodRate_", - type: "tuple", - internalType: "struct ITripleRateContext.PeriodRate", - components: [ - { - name: "interestRate", - type: "uint256", - internalType: "uint256", - }, - { - name: "effectiveFromPeriod", - type: "uint256", - internalType: "uint256", - }, - ], + name: "shares", + type: "uint256", + internalType: "uint256", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "proxiableUUID", - inputs: [], - outputs: [ { - name: "", - type: "bytes32", - internalType: "bytes32", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", - }, - { - type: "function", - name: "rateScaled", - inputs: [], outputs: [ { - name: "ratePercentageScaled_", + name: "", type: "uint256", internalType: "uint256", }, @@ -12432,127 +24992,130 @@ const deployedContracts = { }, { type: "function", - name: "redeem", + name: "convertToAssetsForDepositPeriodBatch", inputs: [ { name: "shares", - type: "uint256", - internalType: "uint256", + type: "uint256[]", + internalType: "uint256[]", }, { - name: "receiver", - type: "address", - internalType: "address", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", }, { - name: "controller", - type: "address", - internalType: "address", + name: "redeemPeriod", + type: "uint256", + internalType: "uint256", }, ], outputs: [ { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "assets_", + type: "uint256[]", + internalType: "uint256[]", }, ], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "redeemForDepositPeriod", + name: "convertToShares", 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", + name: "assets", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "assets", + name: "shares", type: "uint256", internalType: "uint256", }, ], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "redeemForDepositPeriod", + name: "convertToSharesForDepositPeriod", inputs: [ { - name: "shares", + name: "assets", type: "uint256", internalType: "uint256", }, { - name: "receiver", - type: "address", - internalType: "address", - }, - { - name: "owner", - type: "address", - internalType: "address", + name: "", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "depositPeriod", + name: "shares", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", + }, + { + type: "function", + name: "currentPeriod", + inputs: [], outputs: [ { - name: "", + name: "currentPeriod_", type: "uint256", internalType: "uint256", }, ], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "renounceRole", - inputs: [ + name: "currentPeriodRate", + inputs: [], + outputs: [ { - name: "role", - type: "bytes32", - internalType: "bytes32", + 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: "callerConfirmation", - type: "address", - internalType: "address", + name: "numPeriodsElapsed_", + type: "uint256", + internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "requestDeposit", + name: "deposit", inputs: [ { name: "assets", @@ -12560,19 +25123,19 @@ const deployedContracts = { internalType: "uint256", }, { - name: "controller", + name: "receiver", type: "address", internalType: "address", }, { - name: "owner", + name: "controller", type: "address", internalType: "address", }, ], outputs: [ { - name: "requestId_", + name: "shares_", type: "uint256", internalType: "uint256", }, @@ -12581,27 +25144,22 @@ const deployedContracts = { }, { type: "function", - name: "requestRedeem", + name: "deposit", inputs: [ { - name: "shares", + name: "assets", type: "uint256", internalType: "uint256", }, { - name: "controller", - type: "address", - internalType: "address", - }, - { - name: "owner", + name: "receiver", type: "address", internalType: "address", }, ], outputs: [ { - name: "requestId_", + name: "shares", type: "uint256", internalType: "uint256", }, @@ -12610,213 +25168,124 @@ const deployedContracts = { }, { type: "function", - name: "requestUnlock", + name: "exists", inputs: [ { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", + name: "id", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "", + type: "bool", + internalType: "bool", }, ], + stateMutability: "view", + }, + { + type: "function", + name: "frequency", + inputs: [], outputs: [ { - name: "", + name: "frequency_", type: "uint256", internalType: "uint256", }, ], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "revokeRole", + name: "getRoleAdmin", 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[]", - }, + outputs: [ { - name: "data", - type: "bytes", - internalType: "bytes", + name: "", + type: "bytes32", + internalType: "bytes32", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "safeTransferFrom", + name: "getRoleMember", inputs: [ { - name: "from", - type: "address", - internalType: "address", - }, - { - name: "to", - type: "address", - internalType: "address", - }, - { - name: "id", - type: "uint256", - internalType: "uint256", + name: "role", + type: "bytes32", + internalType: "bytes32", }, { - name: "amount", + name: "index", 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", + name: "", type: "address", internalType: "address", }, - { - name: "approved", - type: "bool", - internalType: "bool", - }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "setRedeemOptimizer", + name: "getRoleMemberCount", inputs: [ { - name: "redeemOptimizer", - type: "address", - internalType: "contract IRedeemOptimizer", + name: "role", + type: "bytes32", + internalType: "bytes32", }, ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setReducedRate", - inputs: [ - { - name: "reducedRateScaled_", - type: "uint256", - internalType: "uint256", - }, + outputs: [ { - name: "effectiveFromPeriod_", + name: "", type: "uint256", internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", }, { type: "function", - name: "setReducedRateAtCurrent", - inputs: [ + name: "getVersion", + inputs: [], + outputs: [ { - name: "reducedRateScaled_", + name: "version", type: "uint256", internalType: "uint256", }, ], - outputs: [], - stateMutability: "nonpayable", + stateMutability: "pure", }, { type: "function", - name: "setVaultStartTimestamp", + name: "grantRole", inputs: [ { - name: "vaultStartTimestamp", - type: "uint256", - internalType: "uint256", + name: "role", + type: "bytes32", + internalType: "bytes32", }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setYieldStrategy", - inputs: [ { - name: "yieldStrategy", + name: "account", type: "address", - internalType: "contract IYieldStrategy", + internalType: "address", }, ], outputs: [], @@ -12824,36 +25293,17 @@ const deployedContracts = { }, { type: "function", - name: "sharesAtPeriod", + name: "hasRole", inputs: [ { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "shares", - type: "uint256", - internalType: "uint256", + name: "role", + type: "bytes32", + internalType: "bytes32", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "supportsInterface", - inputs: [ { - name: "interfaceId", - type: "bytes4", - internalType: "bytes4", + name: "account", + type: "address", + internalType: "address", }, ], outputs: [ @@ -12867,96 +25317,180 @@ const deployedContracts = { }, { type: "function", - name: "totalAssets", - inputs: [], - outputs: [ + name: "initialize", + inputs: [ { - name: "totalManagedAssets", - type: "uint256", - internalType: "uint256", + 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", + }, + ], + }, + ], }, ], - stateMutability: "view", + outputs: [], + stateMutability: "nonpayable", }, { type: "function", - name: "totalSupply", - inputs: [], - outputs: [ + name: "isApprovedForAll", + inputs: [ { - name: "", - type: "uint256", - internalType: "uint256", + name: "account", + type: "address", + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "totalSupply", - inputs: [ { - name: "id", - type: "uint256", - internalType: "uint256", + name: "operator", + type: "address", + internalType: "address", }, ], outputs: [ { name: "", - type: "uint256", - internalType: "uint256", + type: "bool", + internalType: "bool", }, ], stateMutability: "view", }, { type: "function", - name: "unlock", + name: "lock", inputs: [ { - name: "owner", + name: "account", type: "address", internalType: "address", }, { - name: "requestId", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, - ], - outputs: [ - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "amount", + type: "uint256", + internalType: "uint256", }, ], + outputs: [], stateMutability: "nonpayable", }, { type: "function", - name: "unlockRequestAmount", + name: "lockedAmount", inputs: [ { - name: "owner", + name: "account", type: "address", internalType: "address", }, { - name: "requestId", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "amount_", + name: "lockedAmount_", type: "uint256", internalType: "uint256", }, @@ -12965,22 +25499,17 @@ const deployedContracts = { }, { type: "function", - name: "unlockRequestAmountByDepositPeriod", + name: "maxDeposit", inputs: [ { - name: "owner", + name: "", type: "address", internalType: "address", }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, ], outputs: [ { - name: "amount", + name: "", type: "uint256", internalType: "uint256", }, @@ -12989,7 +25518,7 @@ const deployedContracts = { }, { type: "function", - name: "unlockRequestDepositPeriods", + name: "maxRedeemAtPeriod", inputs: [ { name: "owner", @@ -12997,23 +25526,23 @@ const deployedContracts = { internalType: "address", }, { - name: "requestId", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "maxShares", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", - name: "unlockRequests", + name: "maxRequestUnlock", inputs: [ { name: "owner", @@ -13021,1335 +25550,1389 @@ const deployedContracts = { internalType: "address", }, { - name: "requestId", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, ], outputs: [ { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "amounts", - type: "uint256[]", - internalType: "uint256[]", + name: "", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", - name: "unpause", + name: "minUnlockPeriod", inputs: [], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "upgradeToAndCall", - inputs: [ - { - name: "newImplementation", - type: "address", - internalType: "address", - }, + outputs: [ { - name: "data", - type: "bytes", - internalType: "bytes", + name: "minUnlockPeriod_", + type: "uint256", + internalType: "uint256", }, ], - outputs: [], - stateMutability: "payable", + stateMutability: "view", }, { type: "function", - name: "uri", - inputs: [ + name: "noticePeriod", + inputs: [], + outputs: [ { - name: "", + name: "noticePeriod_", type: "uint256", internalType: "uint256", }, ], - outputs: [ - { - name: "", - type: "string", - internalType: "string", - }, - ], stateMutability: "view", }, { type: "function", - name: "withdrawAsset", - inputs: [ - { - name: "to", - type: "address", - internalType: "address", - }, + name: "numPeriodsForFullRate", + inputs: [], + outputs: [ { - name: "amount", + name: "numPeriods", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", + }, + { + type: "function", + name: "pause", + inputs: [], outputs: [], stateMutability: "nonpayable", }, { - type: "event", - name: "ApprovalForAll", - inputs: [ - { - name: "account", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "operator", - type: "address", - indexed: true, - internalType: "address", - }, + type: "function", + name: "paused", + inputs: [], + outputs: [ { - name: "approved", + name: "", type: "bool", - indexed: false, internalType: "bool", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "AssetTransfer", + type: "function", + name: "pendingDepositRequest", inputs: [ { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", - type: "address", - indexed: true, - internalType: "address", + name: "", + type: "uint256", + internalType: "uint256", }, { - name: "asset", + name: "", type: "address", - indexed: false, internalType: "address", }, + ], + outputs: [ { - name: "amount", + name: "assets", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + stateMutability: "pure", }, { - type: "event", - name: "CancelRedeemRequest", + type: "function", + name: "pendingRedeemRequest", inputs: [ - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, { name: "requestId", type: "uint256", - indexed: true, internalType: "uint256", }, { - name: "sender", + name: "", type: "address", - indexed: true, internalType: "address", }, ], - anonymous: false, + outputs: [ + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", }, { - type: "event", - name: "CurrentPeriodRateChanged", + type: "function", + name: "previewDeposit", inputs: [ { - name: "interestRate", + name: "assets", type: "uint256", - indexed: false, internalType: "uint256", }, + ], + outputs: [ { - name: "effectiveFromPeriod", + name: "shares", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "CurrentTenorPeriodAndRateChanged", + type: "function", + name: "previewRedeemForDepositPeriod", inputs: [ { - name: "tenorPeriod", + name: "shares", type: "uint256", - indexed: false, internalType: "uint256", }, { - name: "reducedRate", + name: "depositPeriod", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + outputs: [ + { + name: "assets", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", }, { - type: "event", - name: "Deposit", + type: "function", + name: "previewRedeemForDepositPeriod", inputs: [ { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", - type: "address", - indexed: true, - internalType: "address", + name: "shares", + type: "uint256", + internalType: "uint256", }, { name: "depositPeriod", type: "uint256", - indexed: false, internalType: "uint256", }, { - name: "assets", + name: "redeemPeriod", type: "uint256", - indexed: false, internalType: "uint256", }, + ], + outputs: [ { - name: "shares", + name: "assets", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "Deposit", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, + type: "function", + name: "previousPeriodRate", + inputs: [], + outputs: [ { - name: "owner", - type: "address", - indexed: true, - internalType: "address", + 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: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", + name: "", + type: "bytes32", + internalType: "bytes32", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "rateScaled", + inputs: [], + outputs: [ { - name: "shares", + name: "ratePercentageScaled_", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + stateMutability: "view", }, { - type: "event", - name: "DepositRequest", + type: "function", + name: "redeem", inputs: [ { - name: "controller", - type: "address", - indexed: true, - internalType: "address", + name: "shares", + type: "uint256", + internalType: "uint256", }, { - name: "owner", + name: "receiver", type: "address", - indexed: true, internalType: "address", }, { - name: "requestId", - type: "uint256", - indexed: true, - internalType: "uint256", - }, - { - name: "sender", + name: "controller", type: "address", - indexed: false, internalType: "address", }, + ], + outputs: [ { 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, + stateMutability: "nonpayable", }, { - type: "event", - name: "Paused", + type: "function", + name: "redeemForDepositPeriod", inputs: [ { - name: "account", - type: "address", - indexed: false, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "RedeemRequest", - inputs: [ + name: "shares", + type: "uint256", + internalType: "uint256", + }, { - name: "controller", + name: "receiver", type: "address", - indexed: true, internalType: "address", }, { name: "owner", type: "address", - indexed: true, internalType: "address", }, { - name: "requestId", + name: "depositPeriod", type: "uint256", - indexed: true, internalType: "uint256", }, { - name: "sender", - type: "address", - indexed: false, - internalType: "address", - }, - { - name: "shares", + name: "redeemPeriod", 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", - }, + outputs: [ { - name: "newAdminRole", - type: "bytes32", - indexed: true, - internalType: "bytes32", + name: "assets", + type: "uint256", + internalType: "uint256", }, ], - anonymous: false, + stateMutability: "nonpayable", }, { - type: "event", - name: "RoleGranted", + type: "function", + name: "redeemForDepositPeriod", inputs: [ { - name: "role", - type: "bytes32", - indexed: true, - internalType: "bytes32", + name: "shares", + type: "uint256", + internalType: "uint256", }, { - name: "account", + name: "receiver", type: "address", - indexed: true, internalType: "address", }, { - name: "sender", + name: "owner", type: "address", - indexed: true, internalType: "address", }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, ], - anonymous: false, + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", }, { - type: "event", - name: "RoleRevoked", + type: "function", + name: "renounceRole", inputs: [ { name: "role", type: "bytes32", - indexed: true, internalType: "bytes32", }, { - name: "account", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "sender", + name: "callerConfirmation", type: "address", - indexed: true, internalType: "address", }, ], - anonymous: false, + outputs: [], + stateMutability: "nonpayable", }, { - type: "event", - name: "TransferBatch", + type: "function", + name: "requestDeposit", inputs: [ { - name: "operator", - type: "address", - indexed: true, - internalType: "address", + name: "assets", + type: "uint256", + internalType: "uint256", }, { - name: "from", + name: "controller", type: "address", - indexed: true, internalType: "address", }, { - name: "to", + name: "owner", type: "address", - indexed: true, internalType: "address", }, + ], + outputs: [ { - name: "ids", - type: "uint256[]", - indexed: false, - internalType: "uint256[]", - }, - { - name: "values", - type: "uint256[]", - indexed: false, - internalType: "uint256[]", + name: "requestId_", + type: "uint256", + internalType: "uint256", }, ], - anonymous: false, + stateMutability: "nonpayable", }, { - type: "event", - name: "TransferSingle", + type: "function", + name: "requestRedeem", inputs: [ { - name: "operator", - type: "address", - indexed: true, - internalType: "address", + name: "shares", + type: "uint256", + internalType: "uint256", }, { - name: "from", + name: "controller", type: "address", - indexed: true, internalType: "address", }, { - name: "to", + name: "owner", type: "address", - indexed: true, internalType: "address", }, + ], + outputs: [ { - name: "id", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "value", + name: "requestId_", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, + stateMutability: "nonpayable", }, { - type: "event", - name: "URI", + type: "function", + name: "requestUnlock", inputs: [ { - name: "value", - type: "string", - indexed: false, - internalType: "string", + name: "owner", + type: "address", + internalType: "address", }, { - name: "id", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [ + { + name: "", type: "uint256", - indexed: true, internalType: "uint256", }, ], - anonymous: false, + stateMutability: "nonpayable", }, { - type: "event", - name: "Unpaused", + type: "function", + name: "revokeRole", inputs: [ { - name: "account", - type: "address", - indexed: false, - internalType: "address", + name: "role", + type: "bytes32", + internalType: "bytes32", }, - ], - anonymous: false, - }, - { - type: "event", - name: "Upgraded", - inputs: [ { - name: "implementation", + name: "account", type: "address", - indexed: true, internalType: "address", }, ], - anonymous: false, + outputs: [], + stateMutability: "nonpayable", }, { - type: "event", - name: "Withdraw", + type: "function", + name: "safeBatchTransferFrom", inputs: [ { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", + name: "from", type: "address", - indexed: true, internalType: "address", }, { - name: "owner", + name: "to", type: "address", - indexed: true, internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - indexed: false, - internalType: "uint256", + name: "ids", + type: "uint256[]", + internalType: "uint256[]", }, { - name: "assets", - type: "uint256", - indexed: false, - internalType: "uint256", + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", }, { - name: "shares", - type: "uint256", - indexed: false, - internalType: "uint256", + name: "data", + type: "bytes", + internalType: "bytes", }, ], - anonymous: false, + outputs: [], + stateMutability: "nonpayable", }, { - type: "event", - name: "Withdraw", + type: "function", + name: "safeTransferFrom", inputs: [ { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "receiver", + name: "from", type: "address", - indexed: true, internalType: "address", }, { - name: "owner", + name: "to", type: "address", - indexed: true, internalType: "address", }, { - name: "assets", + name: "id", type: "uint256", - indexed: false, internalType: "uint256", }, { - name: "shares", + name: "amount", type: "uint256", - indexed: false, internalType: "uint256", }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, ], - anonymous: false, + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "AccessControlBadConfirmation", + type: "function", + name: "scale", inputs: [], - }, - { - type: "error", - name: "AccessControlUnauthorizedAccount", - inputs: [ - { - name: "account", - type: "address", - internalType: "address", - }, + outputs: [ { - name: "neededRole", - type: "bytes32", - internalType: "bytes32", + name: "scale_", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "AddressEmptyCode", + type: "function", + name: "setApprovalForAll", inputs: [ { - name: "target", + name: "operator", type: "address", internalType: "address", }, + { + name: "approved", + type: "bool", + internalType: "bool", + }, ], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "AddressInsufficientBalance", + type: "function", + name: "setRedeemOptimizer", inputs: [ { - name: "account", + name: "redeemOptimizer", type: "address", - internalType: "address", + internalType: "contract IRedeemOptimizer", }, ], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "ERC1155InsufficientBalance", + type: "function", + name: "setReducedRate", inputs: [ { - name: "sender", - type: "address", - internalType: "address", + name: "reducedRateScaled_", + type: "uint256", + internalType: "uint256", }, { - name: "balance", + name: "effectiveFromPeriod_", type: "uint256", internalType: "uint256", }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setReducedRateAtCurrent", + inputs: [ { - name: "needed", + name: "reducedRateScaled_", type: "uint256", internalType: "uint256", }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setVaultStartTimestamp", + inputs: [ { - name: "tokenId", + name: "vaultStartTimestamp", type: "uint256", internalType: "uint256", }, ], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "ERC1155InvalidApprover", + type: "function", + name: "setYieldStrategy", inputs: [ { - name: "approver", + name: "yieldStrategy", type: "address", - internalType: "address", + internalType: "contract IYieldStrategy", }, ], + outputs: [], + stateMutability: "nonpayable", }, { - type: "error", - name: "ERC1155InvalidArrayLength", + type: "function", + name: "sharesAtPeriod", inputs: [ { - name: "idsLength", + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "depositPeriod", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "valuesLength", + name: "shares", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1155InvalidOperator", + type: "function", + name: "supportsInterface", inputs: [ { - name: "operator", - type: "address", - internalType: "address", + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1155InvalidReceiver", - inputs: [ + type: "function", + name: "totalAssets", + inputs: [], + outputs: [ { - name: "receiver", - type: "address", - internalType: "address", + name: "totalManagedAssets", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1155InvalidSender", - inputs: [ + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ { - name: "sender", - type: "address", - internalType: "address", + name: "", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1155MissingApprovalForAll", + type: "function", + name: "totalSupply", inputs: [ { - name: "operator", - type: "address", - internalType: "address", + name: "id", + type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - name: "owner", - type: "address", - internalType: "address", + name: "", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "ERC1967InvalidImplementation", + type: "function", + name: "unlock", inputs: [ { - name: "implementation", + name: "owner", type: "address", internalType: "address", }, + { + name: "requestId", + type: "uint256", + internalType: "uint256", + }, ], - }, - { - type: "error", - name: "ERC1967NonPayable", - inputs: [], - }, - { - type: "error", - name: "EnforcedPause", - inputs: [], - }, - { - type: "error", - name: "EnumerableMapNonexistentKey", - inputs: [ + outputs: [ { - name: "key", - type: "bytes32", - internalType: "bytes32", + name: "depositPeriods", + type: "uint256[]", + internalType: "uint256[]", + }, + { + name: "amounts", + type: "uint256[]", + internalType: "uint256[]", }, ], + stateMutability: "nonpayable", }, { - type: "error", - name: "ExpectedPause", - inputs: [], - }, - { - type: "error", - name: "FailedInnerCall", - inputs: [], - }, - { - type: "error", - name: "InvalidInitialization", - inputs: [], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__AmountMismatch", + type: "function", + name: "unlockRequestAmount", inputs: [ { - name: "amount1", + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "requestId", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "amount2", + name: "amount_", type: "uint256", internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "LiquidContinuousMultiTokenVault__ControllerNotSender", + type: "function", + name: "unlockRequestAmountByDepositPeriod", inputs: [ { - name: "sender", + name: "owner", type: "address", internalType: "address", }, { - name: "controller", - type: "address", - internalType: "address", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", }, ], + stateMutability: "view", }, { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidAuthAddress", + type: "function", + name: "unlockRequestDepositPeriods", inputs: [ { - name: "authName", - type: "string", - internalType: "string", - }, - { - name: "authAddress", + name: "owner", type: "address", internalType: "address", }, - ], - }, - { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidComponentTokenAmount", - inputs: [ { - name: "componentTokenAmount", + name: "requestId", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "unlockRequestedAmount", - type: "uint256", - internalType: "uint256", + name: "depositPeriods_", + type: "uint256[]", + internalType: "uint256[]", }, ], + stateMutability: "view", }, { - type: "error", - name: "LiquidContinuousMultiTokenVault__InvalidFrequency", + type: "function", + name: "unlockRequests", inputs: [ { - name: "frequency", + 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: "error", - name: "LiquidContinuousMultiTokenVault__UnAuthorized", + type: "function", + name: "unpause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "upgradeToAndCall", inputs: [ { - name: "sender", + name: "newImplementation", type: "address", internalType: "address", }, { - name: "authorizedOwner", - type: "address", - internalType: "address", + name: "data", + type: "bytes", + internalType: "bytes", }, ], + outputs: [], + stateMutability: "payable", }, { - type: "error", - name: "LiquidContinuousMultiTokenVault__UnlockPeriodMismatch", + type: "function", + name: "uri", inputs: [ { - name: "unlockPeriod1", + name: "", type: "uint256", internalType: "uint256", }, + ], + outputs: [ { - name: "unlockPeriod2", + 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: "error", - name: "MultiTokenVault__CallerMissingApprovalForAll", + type: "event", + name: "ApprovalForAll", inputs: [ { - name: "operator", + name: "account", type: "address", + indexed: true, internalType: "address", }, { - name: "owner", + name: "operator", type: "address", + indexed: true, internalType: "address", }, + { + name: "approved", + type: "bool", + indexed: false, + internalType: "bool", + }, ], + anonymous: false, }, { - type: "error", - name: "MultiTokenVault__ExceededMaxDeposit", + type: "event", + name: "AssetTransfer", inputs: [ { - name: "receiver", + name: "sender", type: "address", + indexed: true, internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "receiver", + type: "address", + indexed: true, + internalType: "address", }, { - name: "assets", - type: "uint256", - internalType: "uint256", + name: "asset", + type: "address", + indexed: false, + internalType: "address", }, { - name: "maxAssets", + name: "amount", type: "uint256", + indexed: false, internalType: "uint256", }, ], + anonymous: false, }, { - type: "error", - name: "MultiTokenVault__ExceededMaxRedeem", + type: "event", + name: "CancelRedeemRequest", inputs: [ { name: "owner", type: "address", + indexed: true, internalType: "address", }, { - name: "depositPeriod", + name: "requestId", type: "uint256", + indexed: true, internalType: "uint256", }, { - name: "shares", + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "CurrentPeriodRateChanged", + inputs: [ + { + name: "interestRate", type: "uint256", + indexed: false, internalType: "uint256", }, { - name: "maxShares", + name: "effectiveFromPeriod", type: "uint256", + indexed: false, internalType: "uint256", }, ], + anonymous: false, }, { - type: "error", - name: "MultiTokenVault__InvalidArrayLength", + type: "event", + name: "CurrentTenorPeriodAndRateChanged", inputs: [ { - name: "depositPeriodsLength", + name: "tenorPeriod", type: "uint256", + indexed: false, internalType: "uint256", }, { - name: "sharesLength", + name: "reducedRate", type: "uint256", + indexed: false, internalType: "uint256", }, ], + anonymous: false, }, { - type: "error", - name: "MultiTokenVault__RedeemBeforeDeposit", + 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: "depositPeriod", + name: "assets", type: "uint256", + indexed: false, internalType: "uint256", }, { - name: "redeemPeriod", + name: "shares", type: "uint256", + indexed: false, internalType: "uint256", }, ], + anonymous: false, }, { - type: "error", - name: "MultiTokenVault__RedeemTimePeriodNotSupported", + type: "event", + name: "DepositRequest", inputs: [ + { + name: "controller", + type: "address", + indexed: true, + internalType: "address", + }, { name: "owner", type: "address", + indexed: true, internalType: "address", }, { - name: "period", + name: "requestId", type: "uint256", + indexed: true, internalType: "uint256", }, { - name: "redeemPeriod", + name: "sender", + type: "address", + indexed: false, + internalType: "address", + }, + { + name: "assets", type: "uint256", + indexed: false, internalType: "uint256", }, ], + anonymous: false, }, { - type: "error", - name: "NotInitializing", - inputs: [], - }, - { - type: "error", - name: "ReentrancyGuardReentrantCall", - inputs: [], - }, - { - type: "error", - name: "SafeCastOverflowedUintDowncast", + type: "event", + name: "Initialized", inputs: [ { - name: "bits", - type: "uint8", - internalType: "uint8", - }, - { - name: "value", - type: "uint256", - internalType: "uint256", + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", }, ], + anonymous: false, }, { - type: "error", - name: "SafeERC20FailedOperation", + type: "event", + name: "Paused", inputs: [ { - name: "token", + name: "account", type: "address", + indexed: false, internalType: "address", }, ], + anonymous: false, }, { - type: "error", - name: "TimelockAsyncUnlock__AuthorizeCallerFailed", + type: "event", + name: "RedeemRequest", inputs: [ { - name: "caller", - type: "address", - internalType: "address", - }, - { - name: "owner", + name: "controller", type: "address", + indexed: true, internalType: "address", }, - ], - }, - { - type: "error", - name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", - inputs: [ { name: "owner", type: "address", + indexed: true, internalType: "address", }, { - name: "depositPeriod", + name: "requestId", type: "uint256", + indexed: true, internalType: "uint256", }, { - name: "amount", - type: "uint256", - internalType: "uint256", + name: "sender", + type: "address", + indexed: false, + internalType: "address", }, { - name: "maxRequestUnlockAmount", + name: "shares", type: "uint256", + indexed: false, internalType: "uint256", }, ], + anonymous: false, }, { - type: "error", - name: "TimelockAsyncUnlock__ExceededMaxUnlock", + type: "event", + name: "RoleAdminChanged", inputs: [ { - name: "owner", - type: "address", - internalType: "address", - }, - { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", }, { - name: "amount", - type: "uint256", - internalType: "uint256", + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", }, { - name: "maxUnlockAmount", - type: "uint256", - internalType: "uint256", + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", }, ], + anonymous: false, }, { - type: "error", - name: "TimelockAsyncUnlock__InvalidArrayLength", + type: "event", + name: "RoleGranted", inputs: [ { - name: "depositPeriodsLength", - type: "uint256", - internalType: "uint256", + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", }, { - name: "amountsLength", - type: "uint256", - internalType: "uint256", + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", }, ], + anonymous: false, }, { - type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", + type: "event", + name: "RoleRevoked", inputs: [ { - name: "caller", - type: "address", - internalType: "address", + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", }, { - name: "owner", + name: "account", type: "address", + indexed: true, internalType: "address", }, { - name: "currentPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockPeriod", - type: "uint256", - internalType: "uint256", + name: "sender", + type: "address", + indexed: true, + internalType: "address", }, ], + anonymous: false, }, { - type: "error", - name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", + type: "event", + name: "TransferBatch", inputs: [ { - name: "caller", + name: "operator", type: "address", + indexed: true, internalType: "address", }, { - name: "owner", + name: "from", type: "address", + indexed: true, internalType: "address", }, { - name: "depositPeriod", - type: "uint256", - internalType: "uint256", - }, - { - name: "unlockPeriod", - type: "uint256", - internalType: "uint256", + name: "to", + type: "address", + indexed: true, + internalType: "address", }, - ], - }, - { - type: "error", - name: "Timer__StartTimeNotReached", - inputs: [ { - name: "currentTime", - type: "uint256", - internalType: "uint256", + name: "ids", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", }, { - name: "startTime", - type: "uint256", - internalType: "uint256", + name: "values", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", }, ], + anonymous: false, }, { - type: "error", - name: "TripleRateContext_PeriodRegressionNotAllowed", + type: "event", + name: "TransferSingle", inputs: [ { - name: "currentPeriod", - type: "uint256", - internalType: "uint256", + name: "operator", + type: "address", + indexed: true, + internalType: "address", }, { - name: "updatePeriod", - type: "uint256", - internalType: "uint256", + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", }, - ], - }, - { - type: "error", - name: "TripleRateContext_TenorPeriodRegressionNotAllowed", - inputs: [ { - name: "tenorPeriod", + name: "id", type: "uint256", + indexed: false, internalType: "uint256", }, { - name: "newTenorPeriod", + name: "value", type: "uint256", + indexed: false, internalType: "uint256", }, ], + anonymous: false, }, { - type: "error", - name: "UUPSUnauthorizedCallContext", - inputs: [], - }, - { - type: "error", - name: "UUPSUnsupportedProxiableUUID", + type: "event", + name: "URI", inputs: [ { - name: "slot", - type: "bytes32", - internalType: "bytes32", + name: "value", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "id", + type: "uint256", + indexed: true, + internalType: "uint256", }, ], + anonymous: false, }, - ], - inheritedFunctions: {}, - }, - "ERC1967Proxy#0": { - address: "0xb89846b74f3b190f6e00fc35b3affcdf5d4bb9f9", - abi: [ { - type: "constructor", + type: "event", + name: "Unpaused", inputs: [ { - name: "implementation", + name: "account", type: "address", + indexed: false, internalType: "address", }, - { - name: "_data", - type: "bytes", - internalType: "bytes", - }, ], - stateMutability: "payable", - }, - { - type: "fallback", - stateMutability: "payable", + anonymous: false, }, { type: "event", @@ -14365,390 +26948,336 @@ const deployedContracts = { anonymous: false, }, { - type: "error", - name: "AddressEmptyCode", + type: "event", + name: "Withdraw", inputs: [ { - name: "target", + name: "sender", type: "address", + indexed: true, internalType: "address", }, - ], - }, - { - type: "error", - name: "ERC1967InvalidImplementation", - inputs: [ { - name: "implementation", + name: "receiver", type: "address", + indexed: true, internalType: "address", }, - ], - }, - { - type: "error", - name: "ERC1967NonPayable", - inputs: [], - }, - { - type: "error", - name: "FailedInnerCall", - inputs: [], - }, - ], - inheritedFunctions: {}, - }, - }, - 421614: { - "SimpleUSDC#0": { - address: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d", - abi: [ - { - type: "constructor", - inputs: [ { name: "owner", type: "address", + indexed: true, internalType: "address", }, { - name: "initialSupply", + name: "depositPeriod", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "assets", + type: "uint256", + indexed: false, + internalType: "uint256", + }, + { + name: "shares", type: "uint256", + indexed: false, internalType: "uint256", }, ], - stateMutability: "nonpayable", + anonymous: false, }, { - type: "function", - name: "allowance", + type: "event", + name: "Withdraw", inputs: [ { - name: "owner", + name: "sender", type: "address", + indexed: true, internalType: "address", }, { - name: "spender", + name: "receiver", type: "address", + indexed: true, internalType: "address", }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "approve", - inputs: [ { - name: "spender", + name: "owner", type: "address", + indexed: true, internalType: "address", }, { - name: "value", + name: "assets", type: "uint256", + indexed: false, internalType: "uint256", }, - ], - outputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "shares", + type: "uint256", + indexed: false, + internalType: "uint256", }, ], - stateMutability: "nonpayable", + anonymous: false, }, { - type: "function", - name: "balanceOf", + type: "error", + name: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", inputs: [ { name: "account", type: "address", internalType: "address", }, - ], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "decimals", - inputs: [], - outputs: [ { - name: "", - type: "uint8", - internalType: "uint8", + name: "neededRole", + type: "bytes32", + internalType: "bytes32", }, ], - stateMutability: "view", }, { - type: "function", - name: "mint", + type: "error", + name: "AddressEmptyCode", inputs: [ { - name: "to", + name: "target", type: "address", internalType: "address", }, - { - name: "amount", - type: "uint256", - internalType: "uint256", - }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "function", - name: "name", - inputs: [], - outputs: [ + type: "error", + name: "AddressInsufficientBalance", + inputs: [ { - name: "", - type: "string", - internalType: "string", + name: "account", + type: "address", + internalType: "address", }, ], - stateMutability: "view", }, { - type: "function", - name: "owner", - inputs: [], - outputs: [ + type: "error", + name: "ERC1155InsufficientBalance", + inputs: [ { - name: "", + name: "sender", type: "address", internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "renounceOwnership", - inputs: [], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "symbol", - inputs: [], - outputs: [ { - name: "", - type: "string", - internalType: "string", + name: "balance", + type: "uint256", + internalType: "uint256", + }, + { + name: "needed", + type: "uint256", + internalType: "uint256", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "totalSupply", - inputs: [], - outputs: [ { - name: "", + name: "tokenId", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "transfer", + type: "error", + name: "ERC1155InvalidApprover", inputs: [ { - name: "to", + name: "approver", type: "address", internalType: "address", }, + ], + }, + { + type: "error", + name: "ERC1155InvalidArrayLength", + inputs: [ { - name: "value", + name: "idsLength", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "", - type: "bool", - internalType: "bool", + name: "valuesLength", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "nonpayable", }, { - type: "function", - name: "transferFrom", + type: "error", + name: "ERC1155InvalidOperator", inputs: [ { - name: "from", + name: "operator", type: "address", internalType: "address", }, + ], + }, + { + type: "error", + name: "ERC1155InvalidReceiver", + inputs: [ { - name: "to", + name: "receiver", type: "address", internalType: "address", }, - { - name: "value", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [ - { - name: "", - type: "bool", - internalType: "bool", - }, ], - stateMutability: "nonpayable", }, { - type: "function", - name: "transferOwnership", + type: "error", + name: "ERC1155InvalidSender", inputs: [ { - name: "newOwner", + name: "sender", type: "address", internalType: "address", }, ], - outputs: [], - stateMutability: "nonpayable", }, { - type: "event", - name: "Approval", + type: "error", + name: "ERC1155MissingApprovalForAll", inputs: [ { - name: "owner", + name: "operator", type: "address", - indexed: true, internalType: "address", }, { - name: "spender", + name: "owner", type: "address", - indexed: true, internalType: "address", }, - { - name: "value", - type: "uint256", - indexed: false, - internalType: "uint256", - }, ], - anonymous: false, }, { - type: "event", - name: "OwnershipTransferred", + type: "error", + name: "ERC1967InvalidImplementation", inputs: [ { - name: "previousOwner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "newOwner", + name: "implementation", type: "address", - indexed: true, internalType: "address", }, ], - anonymous: false, }, { - type: "event", - name: "Transfer", + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "EnumerableMapNonexistentKey", inputs: [ { - name: "from", - type: "address", - indexed: true, - internalType: "address", + 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: "to", - type: "address", - indexed: true, - internalType: "address", + name: "amount1", + type: "uint256", + internalType: "uint256", }, { - name: "value", + name: "amount2", type: "uint256", - indexed: false, internalType: "uint256", }, ], - anonymous: false, }, { type: "error", - name: "ERC20InsufficientAllowance", + name: "LiquidContinuousMultiTokenVault__ControllerNotSender", inputs: [ { - name: "spender", + name: "sender", type: "address", internalType: "address", }, { - name: "allowance", - type: "uint256", - internalType: "uint256", - }, - { - name: "needed", - type: "uint256", - internalType: "uint256", + name: "controller", + type: "address", + internalType: "address", }, ], }, { type: "error", - name: "ERC20InsufficientBalance", + name: "LiquidContinuousMultiTokenVault__InvalidAuthAddress", inputs: [ { - name: "sender", + name: "authName", + type: "string", + internalType: "string", + }, + { + name: "authAddress", type: "address", internalType: "address", }, + ], + }, + { + type: "error", + name: "LiquidContinuousMultiTokenVault__InvalidComponentTokenAmount", + inputs: [ { - name: "balance", + name: "componentTokenAmount", type: "uint256", internalType: "uint256", }, { - name: "needed", + name: "unlockRequestedAmount", type: "uint256", internalType: "uint256", }, @@ -14756,21 +27285,26 @@ const deployedContracts = { }, { type: "error", - name: "ERC20InvalidApprover", + name: "LiquidContinuousMultiTokenVault__InvalidFrequency", inputs: [ { - name: "approver", - type: "address", - internalType: "address", + name: "frequency", + type: "uint256", + internalType: "uint256", }, ], }, { type: "error", - name: "ERC20InvalidReceiver", + name: "LiquidContinuousMultiTokenVault__UnAuthorized", inputs: [ { - name: "receiver", + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "authorizedOwner", type: "address", internalType: "address", }, @@ -14778,21 +27312,31 @@ const deployedContracts = { }, { type: "error", - name: "ERC20InvalidSender", + name: "LiquidContinuousMultiTokenVault__UnlockPeriodMismatch", inputs: [ { - name: "sender", - type: "address", - internalType: "address", + name: "unlockPeriod1", + type: "uint256", + internalType: "uint256", + }, + { + name: "unlockPeriod2", + type: "uint256", + internalType: "uint256", }, ], }, { type: "error", - name: "ERC20InvalidSpender", + name: "MultiTokenVault__CallerMissingApprovalForAll", inputs: [ { - name: "spender", + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "owner", type: "address", internalType: "address", }, @@ -14800,106 +27344,135 @@ const deployedContracts = { }, { type: "error", - name: "OwnableInvalidOwner", + name: "MultiTokenVault__ExceededMaxDeposit", inputs: [ { - name: "owner", + 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: "OwnableUnauthorizedAccount", + name: "MultiTokenVault__ExceededMaxRedeem", inputs: [ { - name: "account", + name: "owner", type: "address", internalType: "address", }, + { + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "shares", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxShares", + type: "uint256", + internalType: "uint256", + }, ], }, - ], - inheritedFunctions: {}, - }, - "TripleRateYieldStrategy#0": { - address: "0x6502941de3a54a59a2a2a918ed58868cf168f56b", - abi: [ { - type: "function", - name: "calcPrice", + type: "error", + name: "MultiTokenVault__InvalidArrayLength", inputs: [ { - name: "contextContract", - type: "address", - internalType: "address", - }, - { - name: "numPeriodsElapsed", + name: "depositPeriodsLength", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "price", + name: "sharesLength", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "calcYield", + type: "error", + name: "MultiTokenVault__RedeemBeforeDeposit", inputs: [ { - name: "contextContract", + name: "owner", type: "address", internalType: "address", }, { - name: "principal", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, { - name: "fromPeriod", + name: "redeemPeriod", type: "uint256", internalType: "uint256", }, + ], + }, + { + type: "error", + name: "MultiTokenVault__RedeemTimePeriodNotSupported", + inputs: [ { - name: "toPeriod", + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "period", type: "uint256", internalType: "uint256", }, - ], - outputs: [ { - name: "yield", + name: "redeemPeriod", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { type: "error", - name: "IYieldStrategy_InvalidContextAddress", + name: "NotInitializing", inputs: [], }, { type: "error", - name: "IYieldStrategy_InvalidPeriodRange", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "SafeCastOverflowedUintDowncast", inputs: [ { - name: "from", - type: "uint256", - internalType: "uint256", + name: "bits", + type: "uint8", + internalType: "uint8", }, { - name: "to", + name: "value", type: "uint256", internalType: "uint256", }, @@ -14907,109 +27480,107 @@ const deployedContracts = { }, { type: "error", - name: "MathOverflowedMulDiv", - inputs: [], + name: "SafeERC20FailedOperation", + inputs: [ + { + name: "token", + type: "address", + internalType: "address", + }, + ], }, - ], - inheritedFunctions: {}, - }, - "RedeemOptimizerFIFO#0": { - address: "0x141dd57ef6cb9a5d94942e52f037acc871f70b72", - abi: [ { - type: "constructor", + type: "error", + name: "TimelockAsyncUnlock__AuthorizeCallerFailed", inputs: [ { - name: "defaultBasis", - type: "uint8", - internalType: "enum IRedeemOptimizer.OptimizerBasis", + name: "caller", + type: "address", + internalType: "address", }, { - name: "startDepositPeriod", - type: "uint256", - internalType: "uint256", + name: "owner", + type: "address", + internalType: "address", }, ], - stateMutability: "nonpayable", }, { - type: "function", - name: "DEFAULT_BASIS", - inputs: [], - outputs: [ + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxRequestUnlock", + inputs: [ { - name: "", - type: "uint8", - internalType: "enum IRedeemOptimizer.OptimizerBasis", + name: "owner", + type: "address", + internalType: "address", }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "START_DEPOSIT_PERIOD", - inputs: [], - outputs: [ { - name: "", + name: "depositPeriod", + type: "uint256", + internalType: "uint256", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxRequestUnlockAmount", type: "uint256", internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "optimize", + type: "error", + name: "TimelockAsyncUnlock__ExceededMaxUnlock", inputs: [ - { - name: "vault", - type: "address", - internalType: "contract IMultiTokenVault", - }, { name: "owner", type: "address", internalType: "address", }, { - name: "shares", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, { - name: "assets", + name: "amount", type: "uint256", internalType: "uint256", }, { - name: "redeemPeriod", + name: "maxUnlockAmount", type: "uint256", internalType: "uint256", }, ], - outputs: [ + }, + { + type: "error", + name: "TimelockAsyncUnlock__InvalidArrayLength", + inputs: [ { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "depositPeriodsLength", + type: "uint256", + internalType: "uint256", }, { - name: "sharesAtPeriods_", - type: "uint256[]", - internalType: "uint256[]", + name: "amountsLength", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", }, { - type: "function", - name: "optimizeRedeemShares", + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeCurrentPeriod", inputs: [ { - name: "vault", + name: "caller", type: "address", - internalType: "contract IMultiTokenVault", + internalType: "address", }, { name: "owner", @@ -15017,38 +27588,25 @@ const deployedContracts = { internalType: "address", }, { - name: "shares", + name: "currentPeriod", type: "uint256", internalType: "uint256", }, { - name: "redeemPeriod", + name: "unlockPeriod", type: "uint256", internalType: "uint256", }, ], - outputs: [ - { - name: "depositPeriods_", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "sharesAtPeriods_", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "view", }, { - type: "function", - name: "optimizeWithdrawAssets", + type: "error", + name: "TimelockAsyncUnlock__UnlockBeforeDepositPeriod", inputs: [ { - name: "vault", + name: "caller", type: "address", - internalType: "contract IMultiTokenVault", + internalType: "address", }, { name: "owner", @@ -15056,46 +27614,28 @@ const deployedContracts = { internalType: "address", }, { - name: "assets", + name: "depositPeriod", type: "uint256", internalType: "uint256", }, { - name: "redeemPeriod", + name: "unlockPeriod", type: "uint256", internalType: "uint256", }, ], - outputs: [ - { - name: "depositPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - { - name: "sharesAtPeriods", - type: "uint256[]", - internalType: "uint256[]", - }, - ], - stateMutability: "view", - }, - { - type: "error", - name: "MathOverflowedMulDiv", - inputs: [], }, { type: "error", - name: "RedeemOptimizer__FutureToDepositPeriod", + name: "Timer__StartTimeNotReached", inputs: [ { - name: "toPeriod", + name: "currentTime", type: "uint256", internalType: "uint256", }, { - name: "currentPeriod", + name: "startTime", type: "uint256", internalType: "uint256", }, @@ -15103,15 +27643,15 @@ const deployedContracts = { }, { type: "error", - name: "RedeemOptimizer__InvalidDepositPeriodRange", + name: "TripleRateContext_PeriodRegressionNotAllowed", inputs: [ { - name: "fromPeriod", + name: "currentPeriod", type: "uint256", internalType: "uint256", }, { - name: "toPeriod", + name: "updatePeriod", type: "uint256", internalType: "uint256", }, @@ -15119,20 +27659,36 @@ const deployedContracts = { }, { type: "error", - name: "RedeemOptimizer__OptimizerFailed", + name: "TripleRateContext_TenorPeriodRegressionNotAllowed", inputs: [ { - name: "amountFound", + name: "tenorPeriod", type: "uint256", internalType: "uint256", }, { - name: "amountToFind", + name: "newTenorPeriod", type: "uint256", internalType: "uint256", }, ], }, + { + type: "error", + name: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, ], inheritedFunctions: {}, }, diff --git a/spikes/spike-liquid-stone/packages/nextjs/scaffold.config.ts b/spikes/spike-liquid-stone/packages/nextjs/scaffold.config.ts index 78499dee..016271ff 100644 --- a/spikes/spike-liquid-stone/packages/nextjs/scaffold.config.ts +++ b/spikes/spike-liquid-stone/packages/nextjs/scaffold.config.ts @@ -48,7 +48,7 @@ export type ScaffoldConfig = { const scaffoldConfig = { // The networks on which your DApp is live - targetNetworks: [chains.foundry, plumeTestnet, plume, chains.arbitrumSepolia], + targetNetworks: [chains.arbitrumSepolia, plumeTestnet, plume, chains.foundry], // The interval at which your front-end polls the RPC servers for new data // it has no effect if you only target the local network (default is 4000)