Variable AavePoolAbiConst

AavePoolAbi: readonly [
    {
        inputs: readonly [
            {
                internalType: "contract IPoolAddressesProvider";
                name: "provider";
                type: "address";
            },
        ];
        stateMutability: "nonpayable";
        type: "constructor";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "reserve";
                type: "address";
            },
            {
                indexed: true;
                internalType: "address";
                name: "backer";
                type: "address";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            },
            { indexed: false; internalType: "uint256"; name: "fee"; type: "uint256" },
        ];
        name: "BackUnbacked";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "reserve";
                type: "address";
            },
            {
                indexed: false;
                internalType: "address";
                name: "user";
                type: "address";
            },
            {
                indexed: true;
                internalType: "address";
                name: "onBehalfOf";
                type: "address";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "enum DataTypes.InterestRateMode";
                name: "interestRateMode";
                type: "uint8";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "borrowRate";
                type: "uint256";
            },
            {
                indexed: true;
                internalType: "uint16";
                name: "referralCode";
                type: "uint16";
            },
        ];
        name: "Borrow";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "target";
                type: "address";
            },
            {
                indexed: false;
                internalType: "address";
                name: "initiator";
                type: "address";
            },
            {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "enum DataTypes.InterestRateMode";
                name: "interestRateMode";
                type: "uint8";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "premium";
                type: "uint256";
            },
            {
                indexed: true;
                internalType: "uint16";
                name: "referralCode";
                type: "uint16";
            },
        ];
        name: "FlashLoan";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "totalDebt";
                type: "uint256";
            },
        ];
        name: "IsolationModeTotalDebtUpdated";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "collateralAsset";
                type: "address";
            },
            {
                indexed: true;
                internalType: "address";
                name: "debtAsset";
                type: "address";
            },
            { indexed: true; internalType: "address"; name: "user"; type: "address" },
            {
                indexed: false;
                internalType: "uint256";
                name: "debtToCover";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "liquidatedCollateralAmount";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "address";
                name: "liquidator";
                type: "address";
            },
            {
                indexed: false;
                internalType: "bool";
                name: "receiveAToken";
                type: "bool";
            },
        ];
        name: "LiquidationCall";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "reserve";
                type: "address";
            },
            {
                indexed: false;
                internalType: "address";
                name: "user";
                type: "address";
            },
            {
                indexed: true;
                internalType: "address";
                name: "onBehalfOf";
                type: "address";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            },
            {
                indexed: true;
                internalType: "uint16";
                name: "referralCode";
                type: "uint16";
            },
        ];
        name: "MintUnbacked";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "reserve";
                type: "address";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "amountMinted";
                type: "uint256";
            },
        ];
        name: "MintedToTreasury";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "reserve";
                type: "address";
            },
            { indexed: true; internalType: "address"; name: "user"; type: "address" },
            {
                indexed: true;
                internalType: "address";
                name: "repayer";
                type: "address";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "bool";
                name: "useATokens";
                type: "bool";
            },
        ];
        name: "Repay";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "reserve";
                type: "address";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "liquidityRate";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "stableBorrowRate";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "variableBorrowRate";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "liquidityIndex";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "variableBorrowIndex";
                type: "uint256";
            },
        ];
        name: "ReserveDataUpdated";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "reserve";
                type: "address";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "liquidityRate";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "stableBorrowRate";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "variableBorrowRate";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "liquidityIndex";
                type: "uint256";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "variableBorrowIndex";
                type: "uint256";
            },
        ];
        name: "ReserveDataUpdated";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "reserve";
                type: "address";
            },
            { indexed: true; internalType: "address"; name: "user"; type: "address" },
        ];
        name: "ReserveUsedAsCollateralDisabled";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "reserve";
                type: "address";
            },
            { indexed: true; internalType: "address"; name: "user"; type: "address" },
        ];
        name: "ReserveUsedAsCollateralEnabled";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "reserve";
                type: "address";
            },
            {
                indexed: false;
                internalType: "address";
                name: "user";
                type: "address";
            },
            {
                indexed: true;
                internalType: "address";
                name: "onBehalfOf";
                type: "address";
            },
            {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            },
            {
                indexed: true;
                internalType: "uint16";
                name: "referralCode";
                type: "uint16";
            },
        ];
        name: "Supply";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "user";
                type: "address";
            },
            {
                indexed: false;
                internalType: "uint8";
                name: "categoryId";
                type: "uint8";
            },
        ];
        name: "UserEModeSet";
        type: "event";
    },
    {
        anonymous: false;
        inputs: readonly [
            {
                indexed: true;
                internalType: "address";
                name: "reserve";
                type: "address";
            },
            { indexed: true; internalType: "address"; name: "user"; type: "address" },
            { indexed: true; internalType: "address"; name: "to"; type: "address" },
            {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            },
        ];
        name: "Withdraw";
        type: "event";
    },
    {
        inputs: readonly [];
        name: "ADDRESSES_PROVIDER";
        outputs: readonly [
            {
                internalType: "contract IPoolAddressesProvider";
                name: "";
                type: "address";
            },
        ];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "BRIDGE_PROTOCOL_FEE";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "FLASHLOAN_PREMIUM_TOTAL";
        outputs: readonly [{ internalType: "uint128"; name: ""; type: "uint128" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "FLASHLOAN_PREMIUM_TO_PROTOCOL";
        outputs: readonly [{ internalType: "uint128"; name: ""; type: "uint128" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "MAX_NUMBER_RESERVES";
        outputs: readonly [{ internalType: "uint16"; name: ""; type: "uint16" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "POOL_REVISION";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "uint256"; name: "fee"; type: "uint256" },
        ];
        name: "backUnbacked";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "uint256"; name: "interestRateMode"; type: "uint256" },
            { internalType: "uint16"; name: "referralCode"; type: "uint16" },
            { internalType: "address"; name: "onBehalfOf"; type: "address" },
        ];
        name: "borrow";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "bytes32"; name: "args"; type: "bytes32" },
        ];
        name: "borrow";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "uint8"; name: "id"; type: "uint8" },
            {
                components: readonly [
                    { internalType: "uint16"; name: "ltv"; type: "uint16" },
                    {
                        internalType: "uint16";
                        name: "liquidationThreshold";
                        type: "uint16";
                    },
                    { internalType: "uint16"; name: "liquidationBonus"; type: "uint16" },
                    { internalType: "string"; name: "label"; type: "string" },
                ];
                internalType: "struct DataTypes.EModeCategoryBaseConfiguration";
                name: "category";
                type: "tuple";
            },
        ];
        name: "configureEModeCategory";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "uint8"; name: "id"; type: "uint8" },
            { internalType: "uint128"; name: "borrowableBitmap"; type: "uint128" },
        ];
        name: "configureEModeCategoryBorrowableBitmap";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "uint8"; name: "id"; type: "uint8" },
            { internalType: "uint128"; name: "collateralBitmap"; type: "uint128" },
        ];
        name: "configureEModeCategoryCollateralBitmap";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "address"; name: "onBehalfOf"; type: "address" },
            { internalType: "uint16"; name: "referralCode"; type: "uint16" },
        ];
        name: "deposit";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
        ];
        name: "dropReserve";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "address"; name: "from"; type: "address" },
            { internalType: "address"; name: "to"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "uint256"; name: "balanceFromBefore"; type: "uint256" },
            { internalType: "uint256"; name: "balanceToBefore"; type: "uint256" },
        ];
        name: "finalizeTransfer";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "receiverAddress"; type: "address" },
            { internalType: "address[]"; name: "assets"; type: "address[]" },
            { internalType: "uint256[]"; name: "amounts"; type: "uint256[]" },
            {
                internalType: "uint256[]";
                name: "interestRateModes";
                type: "uint256[]";
            },
            { internalType: "address"; name: "onBehalfOf"; type: "address" },
            { internalType: "bytes"; name: "params"; type: "bytes" },
            { internalType: "uint16"; name: "referralCode"; type: "uint16" },
        ];
        name: "flashLoan";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "receiverAddress"; type: "address" },
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "bytes"; name: "params"; type: "bytes" },
            { internalType: "uint16"; name: "referralCode"; type: "uint16" },
        ];
        name: "flashLoanSimple";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "getBorrowLogic";
        outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
        stateMutability: "pure";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "getBridgeLogic";
        outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
        stateMutability: "pure";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
        ];
        name: "getConfiguration";
        outputs: readonly [
            {
                components: readonly [
                    { internalType: "uint256"; name: "data"; type: "uint256" },
                ];
                internalType: "struct DataTypes.ReserveConfigurationMap";
                name: "";
                type: "tuple";
            },
        ];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [{ internalType: "uint8"; name: "id"; type: "uint8" }];
        name: "getEModeCategoryBorrowableBitmap";
        outputs: readonly [{ internalType: "uint128"; name: ""; type: "uint128" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [{ internalType: "uint8"; name: "id"; type: "uint8" }];
        name: "getEModeCategoryCollateralBitmap";
        outputs: readonly [{ internalType: "uint128"; name: ""; type: "uint128" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [{ internalType: "uint8"; name: "id"; type: "uint8" }];
        name: "getEModeCategoryCollateralConfig";
        outputs: readonly [
            {
                components: readonly [
                    { internalType: "uint16"; name: "ltv"; type: "uint16" },
                    {
                        internalType: "uint16";
                        name: "liquidationThreshold";
                        type: "uint16";
                    },
                    { internalType: "uint16"; name: "liquidationBonus"; type: "uint16" },
                ];
                internalType: "struct DataTypes.CollateralConfig";
                name: "";
                type: "tuple";
            },
        ];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [{ internalType: "uint8"; name: "id"; type: "uint8" }];
        name: "getEModeCategoryData";
        outputs: readonly [
            {
                components: readonly [
                    { internalType: "uint16"; name: "ltv"; type: "uint16" },
                    {
                        internalType: "uint16";
                        name: "liquidationThreshold";
                        type: "uint16";
                    },
                    { internalType: "uint16"; name: "liquidationBonus"; type: "uint16" },
                    { internalType: "address"; name: "priceSource"; type: "address" },
                    { internalType: "string"; name: "label"; type: "string" },
                ];
                internalType: "struct DataTypes.EModeCategoryLegacy";
                name: "";
                type: "tuple";
            },
        ];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [{ internalType: "uint8"; name: "id"; type: "uint8" }];
        name: "getEModeCategoryLabel";
        outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "getEModeLogic";
        outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
        stateMutability: "pure";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "getFlashLoanLogic";
        outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
        stateMutability: "pure";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
        ];
        name: "getLiquidationGracePeriod";
        outputs: readonly [{ internalType: "uint40"; name: ""; type: "uint40" }];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "getLiquidationLogic";
        outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
        stateMutability: "pure";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "getPoolLogic";
        outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
        stateMutability: "pure";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "uint16"; name: "id"; type: "uint16" },
        ];
        name: "getReserveAddressById";
        outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
        ];
        name: "getReserveData";
        outputs: readonly [
            {
                components: readonly [
                    {
                        components: readonly [
                            { internalType: "uint256"; name: "data"; type: "uint256" },
                        ];
                        internalType: "struct DataTypes.ReserveConfigurationMap";
                        name: "configuration";
                        type: "tuple";
                    },
                    { internalType: "uint128"; name: "liquidityIndex"; type: "uint128" },
                    {
                        internalType: "uint128";
                        name: "currentLiquidityRate";
                        type: "uint128";
                    },
                    {
                        internalType: "uint128";
                        name: "variableBorrowIndex";
                        type: "uint128";
                    },
                    {
                        internalType: "uint128";
                        name: "currentVariableBorrowRate";
                        type: "uint128";
                    },
                    {
                        internalType: "uint128";
                        name: "currentStableBorrowRate";
                        type: "uint128";
                    },
                    { internalType: "uint40"; name: "lastUpdateTimestamp"; type: "uint40" },
                    { internalType: "uint16"; name: "id"; type: "uint16" },
                    { internalType: "address"; name: "aTokenAddress"; type: "address" },
                    {
                        internalType: "address";
                        name: "stableDebtTokenAddress";
                        type: "address";
                    },
                    {
                        internalType: "address";
                        name: "variableDebtTokenAddress";
                        type: "address";
                    },
                    {
                        internalType: "address";
                        name: "interestRateStrategyAddress";
                        type: "address";
                    },
                    { internalType: "uint128"; name: "accruedToTreasury"; type: "uint128" },
                    { internalType: "uint128"; name: "unbacked"; type: "uint128" },
                    {
                        internalType: "uint128";
                        name: "isolationModeTotalDebt";
                        type: "uint128";
                    },
                ];
                internalType: "struct DataTypes.ReserveDataLegacy";
                name: "";
                type: "tuple";
            },
        ];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
        ];
        name: "getReserveDataExtended";
        outputs: readonly [
            {
                components: readonly [
                    {
                        components: readonly [
                            { internalType: "uint256"; name: "data"; type: "uint256" },
                        ];
                        internalType: "struct DataTypes.ReserveConfigurationMap";
                        name: "configuration";
                        type: "tuple";
                    },
                    { internalType: "uint128"; name: "liquidityIndex"; type: "uint128" },
                    {
                        internalType: "uint128";
                        name: "currentLiquidityRate";
                        type: "uint128";
                    },
                    {
                        internalType: "uint128";
                        name: "variableBorrowIndex";
                        type: "uint128";
                    },
                    {
                        internalType: "uint128";
                        name: "currentVariableBorrowRate";
                        type: "uint128";
                    },
                    {
                        internalType: "uint128";
                        name: "__deprecatedStableBorrowRate";
                        type: "uint128";
                    },
                    { internalType: "uint40"; name: "lastUpdateTimestamp"; type: "uint40" },
                    { internalType: "uint16"; name: "id"; type: "uint16" },
                    {
                        internalType: "uint40";
                        name: "liquidationGracePeriodUntil";
                        type: "uint40";
                    },
                    { internalType: "address"; name: "aTokenAddress"; type: "address" },
                    {
                        internalType: "address";
                        name: "__deprecatedStableDebtTokenAddress";
                        type: "address";
                    },
                    {
                        internalType: "address";
                        name: "variableDebtTokenAddress";
                        type: "address";
                    },
                    {
                        internalType: "address";
                        name: "interestRateStrategyAddress";
                        type: "address";
                    },
                    { internalType: "uint128"; name: "accruedToTreasury"; type: "uint128" },
                    { internalType: "uint128"; name: "unbacked"; type: "uint128" },
                    {
                        internalType: "uint128";
                        name: "isolationModeTotalDebt";
                        type: "uint128";
                    },
                    {
                        internalType: "uint128";
                        name: "virtualUnderlyingBalance";
                        type: "uint128";
                    },
                ];
                internalType: "struct DataTypes.ReserveData";
                name: "";
                type: "tuple";
            },
        ];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
        ];
        name: "getReserveNormalizedIncome";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
        ];
        name: "getReserveNormalizedVariableDebt";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "getReservesCount";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "getReservesList";
        outputs: readonly [
            { internalType: "address[]"; name: ""; type: "address[]" },
        ];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [];
        name: "getSupplyLogic";
        outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
        stateMutability: "pure";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "user"; type: "address" },
        ];
        name: "getUserAccountData";
        outputs: readonly [
            {
                internalType: "uint256";
                name: "totalCollateralBase";
                type: "uint256";
            },
            { internalType: "uint256"; name: "totalDebtBase"; type: "uint256" },
            {
                internalType: "uint256";
                name: "availableBorrowsBase";
                type: "uint256";
            },
            {
                internalType: "uint256";
                name: "currentLiquidationThreshold";
                type: "uint256";
            },
            { internalType: "uint256"; name: "ltv"; type: "uint256" },
            { internalType: "uint256"; name: "healthFactor"; type: "uint256" },
        ];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "user"; type: "address" },
        ];
        name: "getUserConfiguration";
        outputs: readonly [
            {
                components: readonly [
                    { internalType: "uint256"; name: "data"; type: "uint256" },
                ];
                internalType: "struct DataTypes.UserConfigurationMap";
                name: "";
                type: "tuple";
            },
        ];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "user"; type: "address" },
        ];
        name: "getUserEMode";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
        ];
        name: "getVirtualUnderlyingBalance";
        outputs: readonly [{ internalType: "uint128"; name: ""; type: "uint128" }];
        stateMutability: "view";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "address"; name: "aTokenAddress"; type: "address" },
            { internalType: "address"; name: "variableDebtAddress"; type: "address" },
            {
                internalType: "address";
                name: "interestRateStrategyAddress";
                type: "address";
            },
        ];
        name: "initReserve";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            {
                internalType: "contract IPoolAddressesProvider";
                name: "provider";
                type: "address";
            },
        ];
        name: "initialize";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "collateralAsset"; type: "address" },
            { internalType: "address"; name: "debtAsset"; type: "address" },
            { internalType: "address"; name: "user"; type: "address" },
            { internalType: "uint256"; name: "debtToCover"; type: "uint256" },
            { internalType: "bool"; name: "receiveAToken"; type: "bool" },
        ];
        name: "liquidationCall";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "bytes32"; name: "args1"; type: "bytes32" },
            { internalType: "bytes32"; name: "args2"; type: "bytes32" },
        ];
        name: "liquidationCall";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address[]"; name: "assets"; type: "address[]" },
        ];
        name: "mintToTreasury";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "address"; name: "onBehalfOf"; type: "address" },
            { internalType: "uint16"; name: "referralCode"; type: "uint16" },
        ];
        name: "mintUnbacked";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "bytes32"; name: "args"; type: "bytes32" },
        ];
        name: "repay";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "uint256"; name: "interestRateMode"; type: "uint256" },
            { internalType: "address"; name: "onBehalfOf"; type: "address" },
        ];
        name: "repay";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "uint256"; name: "interestRateMode"; type: "uint256" },
        ];
        name: "repayWithATokens";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "bytes32"; name: "args"; type: "bytes32" },
        ];
        name: "repayWithATokens";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "bytes32"; name: "args"; type: "bytes32" },
            { internalType: "bytes32"; name: "r"; type: "bytes32" },
            { internalType: "bytes32"; name: "s"; type: "bytes32" },
        ];
        name: "repayWithPermit";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "uint256"; name: "interestRateMode"; type: "uint256" },
            { internalType: "address"; name: "onBehalfOf"; type: "address" },
            { internalType: "uint256"; name: "deadline"; type: "uint256" },
            { internalType: "uint8"; name: "permitV"; type: "uint8" },
            { internalType: "bytes32"; name: "permitR"; type: "bytes32" },
            { internalType: "bytes32"; name: "permitS"; type: "bytes32" },
        ];
        name: "repayWithPermit";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "token"; type: "address" },
            { internalType: "address"; name: "to"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
        ];
        name: "rescueTokens";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
        ];
        name: "resetIsolationModeTotalDebt";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            {
                components: readonly [
                    { internalType: "uint256"; name: "data"; type: "uint256" },
                ];
                internalType: "struct DataTypes.ReserveConfigurationMap";
                name: "configuration";
                type: "tuple";
            },
        ];
        name: "setConfiguration";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint40"; name: "until"; type: "uint40" },
        ];
        name: "setLiquidationGracePeriod";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "address"; name: "rateStrategyAddress"; type: "address" },
        ];
        name: "setReserveInterestRateStrategyAddress";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "uint8"; name: "categoryId"; type: "uint8" },
        ];
        name: "setUserEMode";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "bytes32"; name: "args"; type: "bytes32" },
        ];
        name: "setUserUseReserveAsCollateral";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "bool"; name: "useAsCollateral"; type: "bool" },
        ];
        name: "setUserUseReserveAsCollateral";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "address"; name: "onBehalfOf"; type: "address" },
            { internalType: "uint16"; name: "referralCode"; type: "uint16" },
        ];
        name: "supply";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "bytes32"; name: "args"; type: "bytes32" },
        ];
        name: "supply";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "address"; name: "onBehalfOf"; type: "address" },
            { internalType: "uint16"; name: "referralCode"; type: "uint16" },
            { internalType: "uint256"; name: "deadline"; type: "uint256" },
            { internalType: "uint8"; name: "permitV"; type: "uint8" },
            { internalType: "bytes32"; name: "permitR"; type: "bytes32" },
            { internalType: "bytes32"; name: "permitS"; type: "bytes32" },
        ];
        name: "supplyWithPermit";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "bytes32"; name: "args"; type: "bytes32" },
            { internalType: "bytes32"; name: "r"; type: "bytes32" },
            { internalType: "bytes32"; name: "s"; type: "bytes32" },
        ];
        name: "supplyWithPermit";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
        ];
        name: "syncIndexesState";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
        ];
        name: "syncRatesState";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "uint256"; name: "protocolFee"; type: "uint256" },
        ];
        name: "updateBridgeProtocolFee";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            {
                internalType: "uint128";
                name: "flashLoanPremiumTotal";
                type: "uint128";
            },
            {
                internalType: "uint128";
                name: "flashLoanPremiumToProtocol";
                type: "uint128";
            },
        ];
        name: "updateFlashloanPremiums";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "address"; name: "asset"; type: "address" },
            { internalType: "uint256"; name: "amount"; type: "uint256" },
            { internalType: "address"; name: "to"; type: "address" },
        ];
        name: "withdraw";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "nonpayable";
        type: "function";
    },
    {
        inputs: readonly [
            { internalType: "bytes32"; name: "args"; type: "bytes32" },
        ];
        name: "withdraw";
        outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
        stateMutability: "nonpayable";
        type: "function";
    },
] = ...