Variable mcAaveV3PoolConst

mcAaveV3Pool: MultichainContract<
    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";
        },
    ],
> = ...