[
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "address",
                "name": "newValue",
                "type": "address"
            }
        ],
        "name": "ToolAddressUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "address",
                "name": "oldValue",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "address",
                "name": "newValue",
                "type": "address"
            }
        ],
        "name": "UpdateController",
        "type": "event"
    },
    {
        "inputs": [],
        "name": "PRECISION",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "VERSION",
        "outputs": [
            {
                "internalType": "string",
                "name": "",
                "type": "string"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "bookkeeper",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "tvl",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "rewards",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "duration",
                "type": "uint256"
            }
        ],
        "name": "computeApr",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "rt",
                "type": "address"
            }
        ],
        "name": "computeRewardApr",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "controller",
        "outputs": [
            {
                "internalType": "address",
                "name": "adr",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "created",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "ts",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_token",
                "type": "address"
            }
        ],
        "name": "getPrice",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_controller",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_calculator",
                "type": "address"
            }
        ],
        "name": "initialize",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_controller",
                "type": "address"
            }
        ],
        "name": "initializeControllable",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_adr",
                "type": "address"
            }
        ],
        "name": "isController",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_adr",
                "type": "address"
            }
        ],
        "name": "isGovernance",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "priceCalculator",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "newValue",
                "type": "address"
            }
        ],
        "name": "setPriceCalculator",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "strategies",
        "outputs": [
            {
                "internalType": "address[]",
                "name": "",
                "type": "address[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "strategiesLength",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_strategy",
                "type": "address"
            }
        ],
        "name": "strategyAssets",
        "outputs": [
            {
                "internalType": "address[]",
                "name": "",
                "type": "address[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_strategy",
                "type": "address"
            }
        ],
        "name": "strategyCreated",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_strategy",
                "type": "address"
            }
        ],
        "name": "strategyEarned",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_strategy",
                "type": "address"
            }
        ],
        "name": "strategyPausedInvesting",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_strategy",
                "type": "address"
            }
        ],
        "name": "strategyPlatform",
        "outputs": [
            {
                "internalType": "enum IStrategy.Platform",
                "name": "",
                "type": "uint8"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_strategy",
                "type": "address"
            }
        ],
        "name": "strategyRewardTokens",
        "outputs": [
            {
                "internalType": "address[]",
                "name": "",
                "type": "address[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "tetuTokenValues",
        "outputs": [
            {
                "internalType": "uint256[]",
                "name": "",
                "type": "uint256[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address[]",
                "name": "_vaults",
                "type": "address[]"
            }
        ],
        "name": "totalTetuBoughBack",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address[]",
                "name": "_strategies",
                "type": "address[]"
            }
        ],
        "name": "totalTetuBoughBack2",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address[]",
                "name": "_vaults",
                "type": "address[]"
            }
        ],
        "name": "totalTvlUsdc",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address[]",
                "name": "_vaults",
                "type": "address[]"
            }
        ],
        "name": "totalUsers",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "totalUsersForAllVaults",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "userDepositedShare",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "userDepositedUnderlying",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "userDepositedUnderlyingUsdc",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "userInfo",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "address",
                        "name": "wallet",
                        "type": "address"
                    },
                    {
                        "internalType": "address",
                        "name": "vault",
                        "type": "address"
                    },
                    {
                        "internalType": "uint256",
                        "name": "underlyingBalance",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "underlyingBalanceUsdc",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "depositedUnderlying",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "depositedUnderlyingUsdc",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "depositedShare",
                        "type": "uint256"
                    },
                    {
                        "internalType": "address[]",
                        "name": "rewardTokens",
                        "type": "address[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewards",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewardsUsdc",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewardsBoost",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewardsBoostUsdc",
                        "type": "uint256[]"
                    }
                ],
                "internalType": "struct ContractReader.UserInfo",
                "name": "",
                "type": "tuple"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "userInfoLight",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "depositedUnderlying",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "depositedUnderlyingUsdc",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "depositedShare",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct ContractReader.UserInfoLight",
                "name": "",
                "type": "tuple"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address[]",
                "name": "_vaults",
                "type": "address[]"
            }
        ],
        "name": "userInfosLight",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "depositedUnderlying",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "depositedUnderlyingUsdc",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "depositedShare",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct ContractReader.UserInfoLight[]",
                "name": "",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "userRewards",
        "outputs": [
            {
                "internalType": "uint256[]",
                "name": "",
                "type": "uint256[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "userRewardsBoost",
        "outputs": [
            {
                "internalType": "uint256[]",
                "name": "",
                "type": "uint256[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "userRewardsBoostUsdc",
        "outputs": [
            {
                "internalType": "uint256[]",
                "name": "",
                "type": "uint256[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "userRewardsUsdc",
        "outputs": [
            {
                "internalType": "uint256[]",
                "name": "",
                "type": "uint256[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "userUnderlyingBalance",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "userUnderlyingBalanceUsdc",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultActive",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultCreated",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultDecimals",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultDuration",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "vault",
                "type": "address"
            }
        ],
        "name": "vaultInfo",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "address",
                        "name": "addr",
                        "type": "address"
                    },
                    {
                        "internalType": "string",
                        "name": "name",
                        "type": "string"
                    },
                    {
                        "internalType": "uint256",
                        "name": "created",
                        "type": "uint256"
                    },
                    {
                        "internalType": "bool",
                        "name": "active",
                        "type": "bool"
                    },
                    {
                        "internalType": "uint256",
                        "name": "tvl",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "tvlUsdc",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "decimals",
                        "type": "uint256"
                    },
                    {
                        "internalType": "address",
                        "name": "underlying",
                        "type": "address"
                    },
                    {
                        "internalType": "address[]",
                        "name": "rewardTokens",
                        "type": "address[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewardTokensBal",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewardTokensBalUsdc",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256",
                        "name": "duration",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewardsApr",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256",
                        "name": "ppfsApr",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "users",
                        "type": "uint256"
                    },
                    {
                        "internalType": "address",
                        "name": "strategy",
                        "type": "address"
                    },
                    {
                        "internalType": "uint256",
                        "name": "strategyCreated",
                        "type": "uint256"
                    },
                    {
                        "internalType": "enum IStrategy.Platform",
                        "name": "platform",
                        "type": "uint8"
                    },
                    {
                        "internalType": "address[]",
                        "name": "assets",
                        "type": "address[]"
                    },
                    {
                        "internalType": "address[]",
                        "name": "strategyRewards",
                        "type": "address[]"
                    },
                    {
                        "internalType": "bool",
                        "name": "strategyOnPause",
                        "type": "bool"
                    },
                    {
                        "internalType": "uint256",
                        "name": "earned",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct ContractReader.VaultInfo",
                "name": "",
                "type": "tuple"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "vault",
                "type": "address"
            }
        ],
        "name": "vaultInfoLight",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "address",
                        "name": "addr",
                        "type": "address"
                    },
                    {
                        "internalType": "uint256",
                        "name": "created",
                        "type": "uint256"
                    },
                    {
                        "internalType": "bool",
                        "name": "active",
                        "type": "bool"
                    },
                    {
                        "internalType": "uint256",
                        "name": "tvl",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "tvlUsdc",
                        "type": "uint256"
                    },
                    {
                        "internalType": "address",
                        "name": "underlying",
                        "type": "address"
                    },
                    {
                        "internalType": "address[]",
                        "name": "rewardTokens",
                        "type": "address[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewardsApr",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256",
                        "name": "ppfsApr",
                        "type": "uint256"
                    },
                    {
                        "internalType": "enum IStrategy.Platform",
                        "name": "platform",
                        "type": "uint8"
                    },
                    {
                        "internalType": "address[]",
                        "name": "assets",
                        "type": "address[]"
                    },
                    {
                        "internalType": "uint256",
                        "name": "earned",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct ContractReader.VaultInfoLight",
                "name": "",
                "type": "tuple"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address[]",
                "name": "_vaults",
                "type": "address[]"
            }
        ],
        "name": "vaultInfos",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "address",
                        "name": "addr",
                        "type": "address"
                    },
                    {
                        "internalType": "string",
                        "name": "name",
                        "type": "string"
                    },
                    {
                        "internalType": "uint256",
                        "name": "created",
                        "type": "uint256"
                    },
                    {
                        "internalType": "bool",
                        "name": "active",
                        "type": "bool"
                    },
                    {
                        "internalType": "uint256",
                        "name": "tvl",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "tvlUsdc",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "decimals",
                        "type": "uint256"
                    },
                    {
                        "internalType": "address",
                        "name": "underlying",
                        "type": "address"
                    },
                    {
                        "internalType": "address[]",
                        "name": "rewardTokens",
                        "type": "address[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewardTokensBal",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewardTokensBalUsdc",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256",
                        "name": "duration",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewardsApr",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256",
                        "name": "ppfsApr",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "users",
                        "type": "uint256"
                    },
                    {
                        "internalType": "address",
                        "name": "strategy",
                        "type": "address"
                    },
                    {
                        "internalType": "uint256",
                        "name": "strategyCreated",
                        "type": "uint256"
                    },
                    {
                        "internalType": "enum IStrategy.Platform",
                        "name": "platform",
                        "type": "uint8"
                    },
                    {
                        "internalType": "address[]",
                        "name": "assets",
                        "type": "address[]"
                    },
                    {
                        "internalType": "address[]",
                        "name": "strategyRewards",
                        "type": "address[]"
                    },
                    {
                        "internalType": "bool",
                        "name": "strategyOnPause",
                        "type": "bool"
                    },
                    {
                        "internalType": "uint256",
                        "name": "earned",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct ContractReader.VaultInfo[]",
                "name": "",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address[]",
                "name": "_vaults",
                "type": "address[]"
            }
        ],
        "name": "vaultInfosLight",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "address",
                        "name": "addr",
                        "type": "address"
                    },
                    {
                        "internalType": "uint256",
                        "name": "created",
                        "type": "uint256"
                    },
                    {
                        "internalType": "bool",
                        "name": "active",
                        "type": "bool"
                    },
                    {
                        "internalType": "uint256",
                        "name": "tvl",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "tvlUsdc",
                        "type": "uint256"
                    },
                    {
                        "internalType": "address",
                        "name": "underlying",
                        "type": "address"
                    },
                    {
                        "internalType": "address[]",
                        "name": "rewardTokens",
                        "type": "address[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "rewardsApr",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256",
                        "name": "ppfsApr",
                        "type": "uint256"
                    },
                    {
                        "internalType": "enum IStrategy.Platform",
                        "name": "platform",
                        "type": "uint8"
                    },
                    {
                        "internalType": "address[]",
                        "name": "assets",
                        "type": "address[]"
                    },
                    {
                        "internalType": "uint256",
                        "name": "earned",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct ContractReader.VaultInfoLight[]",
                "name": "",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultName",
        "outputs": [
            {
                "internalType": "string",
                "name": "",
                "type": "string"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultPlatform",
        "outputs": [
            {
                "internalType": "enum IStrategy.Platform",
                "name": "",
                "type": "uint8"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultPpfs",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultPpfsApr",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultPpfsLastApr",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultRewardTokens",
        "outputs": [
            {
                "internalType": "address[]",
                "name": "",
                "type": "address[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultRewardTokensBal",
        "outputs": [
            {
                "internalType": "uint256[]",
                "name": "",
                "type": "uint256[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultRewardTokensBalUsdc",
        "outputs": [
            {
                "internalType": "uint256[]",
                "name": "",
                "type": "uint256[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultRewardsApr",
        "outputs": [
            {
                "internalType": "uint256[]",
                "name": "",
                "type": "uint256[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultTvl",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultTvlUsdc",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultUnderlying",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "vaultUsers",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "page",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "pageSize",
                "type": "uint256"
            }
        ],
        "name": "vaultWithUserInfoPages",
        "outputs": [
            {
                "components": [
                    {
                        "components": [
                            {
                                "internalType": "address",
                                "name": "addr",
                                "type": "address"
                            },
                            {
                                "internalType": "string",
                                "name": "name",
                                "type": "string"
                            },
                            {
                                "internalType": "uint256",
                                "name": "created",
                                "type": "uint256"
                            },
                            {
                                "internalType": "bool",
                                "name": "active",
                                "type": "bool"
                            },
                            {
                                "internalType": "uint256",
                                "name": "tvl",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "tvlUsdc",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "decimals",
                                "type": "uint256"
                            },
                            {
                                "internalType": "address",
                                "name": "underlying",
                                "type": "address"
                            },
                            {
                                "internalType": "address[]",
                                "name": "rewardTokens",
                                "type": "address[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardTokensBal",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardTokensBalUsdc",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256",
                                "name": "duration",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardsApr",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256",
                                "name": "ppfsApr",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "users",
                                "type": "uint256"
                            },
                            {
                                "internalType": "address",
                                "name": "strategy",
                                "type": "address"
                            },
                            {
                                "internalType": "uint256",
                                "name": "strategyCreated",
                                "type": "uint256"
                            },
                            {
                                "internalType": "enum IStrategy.Platform",
                                "name": "platform",
                                "type": "uint8"
                            },
                            {
                                "internalType": "address[]",
                                "name": "assets",
                                "type": "address[]"
                            },
                            {
                                "internalType": "address[]",
                                "name": "strategyRewards",
                                "type": "address[]"
                            },
                            {
                                "internalType": "bool",
                                "name": "strategyOnPause",
                                "type": "bool"
                            },
                            {
                                "internalType": "uint256",
                                "name": "earned",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct ContractReader.VaultInfo",
                        "name": "vault",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "address",
                                "name": "wallet",
                                "type": "address"
                            },
                            {
                                "internalType": "address",
                                "name": "vault",
                                "type": "address"
                            },
                            {
                                "internalType": "uint256",
                                "name": "underlyingBalance",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "underlyingBalanceUsdc",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "depositedUnderlying",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "depositedUnderlyingUsdc",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "depositedShare",
                                "type": "uint256"
                            },
                            {
                                "internalType": "address[]",
                                "name": "rewardTokens",
                                "type": "address[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewards",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardsUsdc",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardsBoost",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardsBoostUsdc",
                                "type": "uint256[]"
                            }
                        ],
                        "internalType": "struct ContractReader.UserInfo",
                        "name": "user",
                        "type": "tuple"
                    }
                ],
                "internalType": "struct ContractReader.VaultWithUserInfo[]",
                "name": "",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "page",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "pageSize",
                "type": "uint256"
            }
        ],
        "name": "vaultWithUserInfoPagesLight",
        "outputs": [
            {
                "components": [
                    {
                        "components": [
                            {
                                "internalType": "address",
                                "name": "addr",
                                "type": "address"
                            },
                            {
                                "internalType": "uint256",
                                "name": "created",
                                "type": "uint256"
                            },
                            {
                                "internalType": "bool",
                                "name": "active",
                                "type": "bool"
                            },
                            {
                                "internalType": "uint256",
                                "name": "tvl",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "tvlUsdc",
                                "type": "uint256"
                            },
                            {
                                "internalType": "address",
                                "name": "underlying",
                                "type": "address"
                            },
                            {
                                "internalType": "address[]",
                                "name": "rewardTokens",
                                "type": "address[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardsApr",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256",
                                "name": "ppfsApr",
                                "type": "uint256"
                            },
                            {
                                "internalType": "enum IStrategy.Platform",
                                "name": "platform",
                                "type": "uint8"
                            },
                            {
                                "internalType": "address[]",
                                "name": "assets",
                                "type": "address[]"
                            },
                            {
                                "internalType": "uint256",
                                "name": "earned",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct ContractReader.VaultInfoLight",
                        "name": "vault",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "depositedUnderlying",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "depositedUnderlyingUsdc",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "depositedShare",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct ContractReader.UserInfoLight",
                        "name": "user",
                        "type": "tuple"
                    }
                ],
                "internalType": "struct ContractReader.VaultWithUserInfoLight[]",
                "name": "",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address[]",
                "name": "_vaults",
                "type": "address[]"
            }
        ],
        "name": "vaultWithUserInfos",
        "outputs": [
            {
                "components": [
                    {
                        "components": [
                            {
                                "internalType": "address",
                                "name": "addr",
                                "type": "address"
                            },
                            {
                                "internalType": "string",
                                "name": "name",
                                "type": "string"
                            },
                            {
                                "internalType": "uint256",
                                "name": "created",
                                "type": "uint256"
                            },
                            {
                                "internalType": "bool",
                                "name": "active",
                                "type": "bool"
                            },
                            {
                                "internalType": "uint256",
                                "name": "tvl",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "tvlUsdc",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "decimals",
                                "type": "uint256"
                            },
                            {
                                "internalType": "address",
                                "name": "underlying",
                                "type": "address"
                            },
                            {
                                "internalType": "address[]",
                                "name": "rewardTokens",
                                "type": "address[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardTokensBal",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardTokensBalUsdc",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256",
                                "name": "duration",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardsApr",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256",
                                "name": "ppfsApr",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "users",
                                "type": "uint256"
                            },
                            {
                                "internalType": "address",
                                "name": "strategy",
                                "type": "address"
                            },
                            {
                                "internalType": "uint256",
                                "name": "strategyCreated",
                                "type": "uint256"
                            },
                            {
                                "internalType": "enum IStrategy.Platform",
                                "name": "platform",
                                "type": "uint8"
                            },
                            {
                                "internalType": "address[]",
                                "name": "assets",
                                "type": "address[]"
                            },
                            {
                                "internalType": "address[]",
                                "name": "strategyRewards",
                                "type": "address[]"
                            },
                            {
                                "internalType": "bool",
                                "name": "strategyOnPause",
                                "type": "bool"
                            },
                            {
                                "internalType": "uint256",
                                "name": "earned",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct ContractReader.VaultInfo",
                        "name": "vault",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "address",
                                "name": "wallet",
                                "type": "address"
                            },
                            {
                                "internalType": "address",
                                "name": "vault",
                                "type": "address"
                            },
                            {
                                "internalType": "uint256",
                                "name": "underlyingBalance",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "underlyingBalanceUsdc",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "depositedUnderlying",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "depositedUnderlyingUsdc",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "depositedShare",
                                "type": "uint256"
                            },
                            {
                                "internalType": "address[]",
                                "name": "rewardTokens",
                                "type": "address[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewards",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardsUsdc",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardsBoost",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardsBoostUsdc",
                                "type": "uint256[]"
                            }
                        ],
                        "internalType": "struct ContractReader.UserInfo",
                        "name": "user",
                        "type": "tuple"
                    }
                ],
                "internalType": "struct ContractReader.VaultWithUserInfo[]",
                "name": "",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_user",
                "type": "address"
            },
            {
                "internalType": "address[]",
                "name": "_vaults",
                "type": "address[]"
            }
        ],
        "name": "vaultWithUserInfosLight",
        "outputs": [
            {
                "components": [
                    {
                        "components": [
                            {
                                "internalType": "address",
                                "name": "addr",
                                "type": "address"
                            },
                            {
                                "internalType": "uint256",
                                "name": "created",
                                "type": "uint256"
                            },
                            {
                                "internalType": "bool",
                                "name": "active",
                                "type": "bool"
                            },
                            {
                                "internalType": "uint256",
                                "name": "tvl",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "tvlUsdc",
                                "type": "uint256"
                            },
                            {
                                "internalType": "address",
                                "name": "underlying",
                                "type": "address"
                            },
                            {
                                "internalType": "address[]",
                                "name": "rewardTokens",
                                "type": "address[]"
                            },
                            {
                                "internalType": "uint256[]",
                                "name": "rewardsApr",
                                "type": "uint256[]"
                            },
                            {
                                "internalType": "uint256",
                                "name": "ppfsApr",
                                "type": "uint256"
                            },
                            {
                                "internalType": "enum IStrategy.Platform",
                                "name": "platform",
                                "type": "uint8"
                            },
                            {
                                "internalType": "address[]",
                                "name": "assets",
                                "type": "address[]"
                            },
                            {
                                "internalType": "uint256",
                                "name": "earned",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct ContractReader.VaultInfoLight",
                        "name": "vault",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "depositedUnderlying",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "depositedUnderlyingUsdc",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "depositedShare",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct ContractReader.UserInfoLight",
                        "name": "user",
                        "type": "tuple"
                    }
                ],
                "internalType": "struct ContractReader.VaultWithUserInfoLight[]",
                "name": "",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "vaults",
        "outputs": [
            {
                "internalType": "address[]",
                "name": "",
                "type": "address[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "vaultsLength",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    }
]