{ "abi": [ { "inputs": [ { "internalType": "contract IERC20[]", "name": "_pooledTokens", "type": "address[]" }, { "internalType": "contract IERC20[]", "name": "_underlyingTokens", "type": "address[]" }, { "internalType": "uint8[]", "name": "_decimals", "type": "uint8[]" }, { "internalType": "uint256", "name": "_a", "type": "uint256" }, { "internalType": "address", "name": "_lendingPool", "type": "address" }, { "internalType": "address", "name": "_crate", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" } ], "name": "DeadlineCheck", "type": "error" }, { "inputs": [], "name": "MigrationError", "type": "error" }, { "inputs": [], "name": "OnlyCrate", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "a", "type": "uint256" } ], "name": "WrongAFactor", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "expected", "type": "uint256" } ], "name": "WrongBalance", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "WrongDecimals", "type": "error" }, { "inputs": [], "name": "WrongIndex", "type": "error" }, { "inputs": [], "name": "WrongLength", "type": "error" }, { "inputs": [], "name": "WrongToken", "type": "error" }, { "inputs": [], "name": "ZeroAmount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "aTokenBalance", "type": "uint256" } ], "name": "MigrationWithdrawFailed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldA", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newA", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "initialTime", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "futureTime", "type": "uint256" } ], "name": "RampA", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "controller", "type": "address" }, { "indexed": false, "internalType": "address", "name": "manager", "type": "address" } ], "name": "RewardsConfigSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "currentA", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "time", "type": "uint256" } ], "name": "StopRampA", "type": "event" }, { "inputs": [], "name": "CRATE", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LENDING_POOL", "outputs": [ { "internalType": "contract ILendingPool", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "UNDERLYING_TOKENS", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "addLiquidity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "dx", "type": "uint256" } ], "name": "calculateAssetToVirtual", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "tokenIndexFrom", "type": "uint8" }, { "internalType": "uint8", "name": "tokenIndexTo", "type": "uint8" }, { "internalType": "uint256", "name": "dx", "type": "uint256" } ], "name": "calculateSwap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "dx", "type": "uint256" } ], "name": "calculateVirtualToAsset", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getA", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAPrecise", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAssetBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "index", "type": "uint8" } ], "name": "getPooledToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" } ], "name": "getPooledTokenIndex", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "returnsBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "index", "type": "uint8" } ], "name": "getTokenBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getVirtualLpBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getVirtualPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "incentivesController", "outputs": [ { "internalType": "contract ISturdyIncentivesController", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "migrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "migrated", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "futureA", "type": "uint256" }, { "internalType": "uint256", "name": "futureTime", "type": "uint256" } ], "name": "rampA", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "recoverAssets", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "removeLiquidity", "outputs": [ { "internalType": "uint256", "name": "recovered", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardsManager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_controller", "type": "address" }, { "internalType": "address", "name": "_manager", "type": "address" } ], "name": "setRewardsConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stopRampA", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_dx", "type": "uint256" }, { "internalType": "uint256", "name": "_deadline", "type": "uint256" } ], "name": "swapAssetToVirtual", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapStorage", "outputs": [ { "internalType": "uint256", "name": "initialA", "type": "uint256" }, { "internalType": "uint256", "name": "futureA", "type": "uint256" }, { "internalType": "uint256", "name": "initialATime", "type": "uint256" }, { "internalType": "uint256", "name": "futureATime", "type": "uint256" }, { "internalType": "uint256", "name": "virtualLpBalance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_dx", "type": "uint256" }, { "internalType": "uint256", "name": "_minDy", "type": "uint256" }, { "internalType": "uint256", "name": "_deadline", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "swapVirtualToAsset", "outputs": [ { "internalType": "uint256", "name": "dy", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawUnderlyingReturns", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] }