import { type Address } from "@morpho-org/blue-sdk"; import type { Abi } from "viem"; import { addressesProviderAbi as addressesProviderAbi_v2, lendingPoolAbi, protocolDataProviderAbi as protocolDataProviderAbi_v2 } from "./abis/aaveV2.js"; import { addressesProviderAbi as addressesProviderAbi_v3, poolAbi, protocolDataProviderAbi as protocolDataProviderAbi_v3 } from "./abis/aaveV3.js"; import { morphoAaveV3Abi } from "./abis/aaveV3Optimizer.js"; import { comptrollerAbi, type crossChainCErc20Abi } from "./abis/compoundV2.js"; import { cometAbi } from "./abis/compoundV3.js"; import { MigratableProtocol } from "./types/index.js"; declare module "@morpho-org/blue-sdk" { interface ChainAddresses { aaveV3Optimizer?: Address; cEth?: Address; } } interface Contract { abi: abi; address: Address; } export interface ProtocolMigrationContracts { [MigratableProtocol.aaveV3Optimizer]: { morpho: Contract; poolDataProvider: Contract; } | null; [MigratableProtocol.aaveV2]: { protocolDataProvider: Contract; lendingPool: Contract; addressesProvider: Contract; } | null; [MigratableProtocol.aaveV3]: { pool: Contract; protocolDataProvider: Contract; addressesProvider: Contract; } | null; [MigratableProtocol.compoundV3]: Record> | null; [MigratableProtocol.compoundV2]: (Record> & { comptroller: Contract; }) | null; } export declare const migrationAddressesRegistry: { readonly 1: { readonly aaveV3Optimizer: { readonly morpho: { readonly address: "0x33333aea097c193e66081E930c33020272b33333"; readonly abi: readonly [{ readonly inputs: readonly []; readonly name: "AddressIsZero"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "AmountIsZero"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "AssetIsCollateralOnMorpho"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "AssetNotCollateralOnPool"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BorrowNotPaused"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "ClaimRewardsPaused"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "ExceedsMaxBasisPoints"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidNonce"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidSignatory"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidValueS"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidValueV"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "MarketAlreadyCreated"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "MarketIsDeprecated"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "MarketIsNotListedOnAave"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "MarketLtTooLow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "MarketNotCreated"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SetAsCollateralOnPoolButMarketNotCreated"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SignatureExpired"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SiloedBorrowMarket"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "UnsafeCast"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint8"; readonly name: "version"; readonly type: "uint8"; }]; readonly name: "Initialized"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferStarted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "DOMAIN_SEPARATOR"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "acceptOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "addressesProvider"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isAllowed"; readonly type: "bool"; }]; readonly name: "approveManager"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "delegator"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isAllowed"; readonly type: "bool"; }, { readonly internalType: "uint256"; readonly name: "nonce"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "v"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "r"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "s"; readonly type: "bytes32"; }]; readonly internalType: "struct Types.Signature"; readonly name: "signature"; readonly type: "tuple"; }]; readonly name: "approveManagerWithSig"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalf"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "maxIterations"; readonly type: "uint256"; }]; readonly name: "borrow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "borrowBalance"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "assets"; readonly type: "address[]"; }, { readonly internalType: "address"; readonly name: "onBehalf"; readonly type: "address"; }]; readonly name: "claimRewards"; readonly outputs: readonly [{ readonly internalType: "address[]"; readonly name: "rewardTokens"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "claimedAmounts"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "underlyings"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }]; readonly name: "claimToTreasury"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "collateralBalance"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "reserveFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "p2pIndexCursor"; readonly type: "uint16"; }]; readonly name: "createMarket"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "defaultIterations"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint128"; readonly name: "repay"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "withdraw"; readonly type: "uint128"; }]; readonly internalType: "struct Types.Iterations"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "eModeCategoryId"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "enum Types.Position"; readonly name: "position"; readonly type: "uint8"; }]; readonly name: "getBucketsMask"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "enum Types.Position"; readonly name: "position"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getNext"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "increaseP2PDeltas"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "addressesProvider"; readonly type: "address"; }, { readonly internalType: "uint8"; readonly name: "eModeCategoryId"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "positionsManager"; readonly type: "address"; }, { readonly components: readonly [{ readonly internalType: "uint128"; readonly name: "repay"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "withdraw"; readonly type: "uint128"; }]; readonly internalType: "struct Types.Iterations"; readonly name: "defaultIterations"; readonly type: "tuple"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isClaimRewardsPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "delegator"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }]; readonly name: "isManagedBy"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlyingBorrowed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "underlyingCollateral"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "liquidate"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "liquidityData"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "borrowable"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "maxDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "debt"; readonly type: "uint256"; }]; readonly internalType: "struct Types.LiquidityData"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }]; readonly name: "market"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint128"; readonly name: "poolIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "p2pIndex"; readonly type: "uint128"; }]; readonly internalType: "struct Types.MarketSideIndexes"; readonly name: "supply"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "uint128"; readonly name: "poolIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "p2pIndex"; readonly type: "uint128"; }]; readonly internalType: "struct Types.MarketSideIndexes"; readonly name: "borrow"; readonly type: "tuple"; }]; readonly internalType: "struct Types.Indexes"; readonly name: "indexes"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "scaledDelta"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "scaledP2PTotal"; readonly type: "uint256"; }]; readonly internalType: "struct Types.MarketSideDelta"; readonly name: "supply"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "scaledDelta"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "scaledP2PTotal"; readonly type: "uint256"; }]; readonly internalType: "struct Types.MarketSideDelta"; readonly name: "borrow"; readonly type: "tuple"; }]; readonly internalType: "struct Types.Deltas"; readonly name: "deltas"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly components: readonly [{ readonly internalType: "bool"; readonly name: "isP2PDisabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isSupplyPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isSupplyCollateralPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isBorrowPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isWithdrawPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isWithdrawCollateralPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isRepayPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isLiquidateCollateralPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isLiquidateBorrowPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isDeprecated"; readonly type: "bool"; }]; readonly internalType: "struct Types.PauseStatuses"; readonly name: "pauseStatuses"; readonly type: "tuple"; }, { readonly internalType: "bool"; readonly name: "isCollateral"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "variableDebtToken"; readonly type: "address"; }, { readonly internalType: "uint32"; readonly name: "lastUpdateTimestamp"; readonly type: "uint32"; }, { readonly internalType: "uint16"; readonly name: "reserveFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "p2pIndexCursor"; readonly type: "uint16"; }, { readonly internalType: "address"; readonly name: "aToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "stableDebtToken"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "idleSupply"; readonly type: "uint256"; }]; readonly internalType: "struct Types.Market"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "marketsCreated"; readonly outputs: readonly [{ readonly internalType: "address[]"; readonly name: ""; readonly type: "address[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pendingOwner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pool"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "positionsManager"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalf"; readonly type: "address"; }]; readonly name: "repay"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalf"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "v"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "r"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "s"; readonly type: "bytes32"; }]; readonly internalType: "struct Types.Signature"; readonly name: "signature"; readonly type: "tuple"; }]; readonly name: "repayWithPermit"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "rewardsManager"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "scaledCollateralBalance"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "scaledP2PBorrowBalance"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "scaledP2PSupplyBalance"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "scaledPoolBorrowBalance"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "scaledPoolSupplyBalance"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isCollateral"; readonly type: "bool"; }]; readonly name: "setAssetIsCollateral"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isCollateral"; readonly type: "bool"; }]; readonly name: "setAssetIsCollateralOnPool"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint128"; readonly name: "repay"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "withdraw"; readonly type: "uint128"; }]; readonly internalType: "struct Types.Iterations"; readonly name: "defaultIterations"; readonly type: "tuple"; }]; readonly name: "setDefaultIterations"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly name: "setIsBorrowPaused"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly name: "setIsClaimRewardsPaused"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isDeprecated"; readonly type: "bool"; }]; readonly name: "setIsDeprecated"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly name: "setIsLiquidateBorrowPaused"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly name: "setIsLiquidateCollateralPaused"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isP2PDisabled"; readonly type: "bool"; }]; readonly name: "setIsP2PDisabled"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly name: "setIsPaused"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly name: "setIsPausedForAllMarkets"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly name: "setIsRepayPaused"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly name: "setIsSupplyCollateralPaused"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly name: "setIsSupplyPaused"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly name: "setIsWithdrawCollateralPaused"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly name: "setIsWithdrawPaused"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "p2pIndexCursor"; readonly type: "uint16"; }]; readonly name: "setP2PIndexCursor"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "positionsManager"; readonly type: "address"; }]; readonly name: "setPositionsManager"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "newReserveFactor"; readonly type: "uint16"; }]; readonly name: "setReserveFactor"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "rewardsManager"; readonly type: "address"; }]; readonly name: "setRewardsManager"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "treasuryVault"; readonly type: "address"; }]; readonly name: "setTreasuryVault"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalf"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "maxIterations"; readonly type: "uint256"; }]; readonly name: "supply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "supplyBalance"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalf"; readonly type: "address"; }]; readonly name: "supplyCollateral"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalf"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "v"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "r"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "s"; readonly type: "bytes32"; }]; readonly internalType: "struct Types.Signature"; readonly name: "signature"; readonly type: "tuple"; }]; readonly name: "supplyCollateralWithPermit"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalf"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "maxIterations"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "v"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "r"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "s"; readonly type: "bytes32"; }]; readonly internalType: "struct Types.Signature"; readonly name: "signature"; readonly type: "tuple"; }]; readonly name: "supplyWithPermit"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "transferOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "treasuryVault"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }]; readonly name: "updatedIndexes"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "poolIndex"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "p2pIndex"; readonly type: "uint256"; }]; readonly internalType: "struct Types.MarketSideIndexes256"; readonly name: "supply"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "poolIndex"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "p2pIndex"; readonly type: "uint256"; }]; readonly internalType: "struct Types.MarketSideIndexes256"; readonly name: "borrow"; readonly type: "tuple"; }]; readonly internalType: "struct Types.Indexes256"; readonly name: "indexes"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "userBorrows"; readonly outputs: readonly [{ readonly internalType: "address[]"; readonly name: ""; readonly type: "address[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "userCollaterals"; readonly outputs: readonly [{ readonly internalType: "address[]"; readonly name: ""; readonly type: "address[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "userNonce"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalf"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "maxIterations"; readonly type: "uint256"; }]; readonly name: "withdraw"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "underlying"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalf"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }]; readonly name: "withdrawCollateral"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; readonly poolDataProvider: { readonly address: "0x7B4EB56E7CD4b454BA8ff71E4518426369a138a3"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: "addressesProvider"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "ADDRESSES_PROVIDER"; readonly outputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getATokenTotalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllATokens"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "tokenAddress"; readonly type: "address"; }]; readonly internalType: "struct IPoolDataProvider.TokenData[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllReservesTokens"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "tokenAddress"; readonly type: "address"; }]; readonly internalType: "struct IPoolDataProvider.TokenData[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getDebtCeiling"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getDebtCeilingDecimals"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getFlashLoanEnabled"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getInterestRateStrategyAddress"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "irStrategyAddress"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getLiquidationProtocolFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveCaps"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "borrowCap"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "supplyCap"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveConfigurationData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "ltv"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidationThreshold"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidationBonus"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserveFactor"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "usageAsCollateralEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "borrowingEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "stableBorrowRateEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isActive"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isFrozen"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "unbacked"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "accruedToTreasuryScaled"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalAToken"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "averageStableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveEModeCategory"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveTokensAddresses"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "stableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getSiloedBorrowing"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getTotalDebt"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getUnbackedMintCap"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserReserveData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "currentATokenBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "principalStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "scaledVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly internalType: "uint40"; readonly name: "stableRateLastUpdated"; readonly type: "uint40"; }, { readonly internalType: "bool"; readonly name: "usageAsCollateralEnabled"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; }; }; readonly aaveV2: { readonly protocolDataProvider: { readonly address: "0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract ILendingPoolAddressesProvider"; readonly name: "addressesProvider"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "ADDRESSES_PROVIDER"; readonly outputs: readonly [{ readonly internalType: "contract ILendingPoolAddressesProvider"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllATokens"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "tokenAddress"; readonly type: "address"; }]; readonly internalType: "struct AaveProtocolDataProvider.TokenData[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllReservesTokens"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "tokenAddress"; readonly type: "address"; }]; readonly internalType: "struct AaveProtocolDataProvider.TokenData[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveConfigurationData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "ltv"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidationThreshold"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidationBonus"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserveFactor"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "usageAsCollateralEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "borrowingEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "stableBorrowRateEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isActive"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isFrozen"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "availableLiquidity"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "averageStableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveTokensAddresses"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "stableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserReserveData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "currentATokenBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "principalStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "scaledVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly internalType: "uint40"; readonly name: "stableRateLastUpdated"; readonly type: "uint40"; }, { readonly internalType: "bool"; readonly name: "usageAsCollateralEnabled"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; }; readonly lendingPool: { readonly address: "0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9"; readonly abi: readonly [{ readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "borrowRateMode"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "borrowRate"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referral"; readonly type: "uint16"; }]; readonly name: "Borrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referral"; readonly type: "uint16"; }]; readonly name: "Deposit"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "target"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "initiator"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "premium"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "FlashLoan"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "collateralAsset"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "debtAsset"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "debtToCover"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidatedCollateralAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "receiveAToken"; readonly type: "bool"; }]; readonly name: "LiquidationCall"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly []; readonly name: "Paused"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "RebalanceStableBorrowRate"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "repayer"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Repay"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }]; readonly name: "ReserveDataUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "ReserveUsedAsCollateralDisabled"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "ReserveUsedAsCollateralEnabled"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "rateMode"; readonly type: "uint256"; }]; readonly name: "Swap"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "tokenRescued"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountRescued"; readonly type: "uint256"; }]; readonly name: "TokensRescued"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly []; readonly name: "Unpaused"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Withdraw"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "FLASHLOAN_PREMIUM_TOTAL"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "LENDINGPOOL_REVISION"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MAX_NUMBER_RESERVES"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MAX_STABLE_RATE_BORROW_SIZE_PERCENT"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly name: "borrow"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "deposit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "balanceFromBefore"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "balanceToBefore"; readonly type: "uint256"; }]; readonly name: "finalizeTransfer"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "receiverAddress"; readonly type: "address"; }, { readonly internalType: "address[]"; readonly name: "assets"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "modes"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "bytes"; readonly name: "params"; readonly type: "bytes"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "flashLoan"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAddressesProvider"; readonly outputs: readonly [{ readonly internalType: "contract ILendingPoolAddressesProvider"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getConfiguration"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveData"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: "configuration"; readonly type: "tuple"; }, { readonly internalType: "uint128"; readonly name: "liquidityIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "variableBorrowIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentLiquidityRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentVariableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentStableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }, { readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "stableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "interestRateStrategyAddress"; readonly type: "address"; }, { readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly internalType: "struct DataTypes.ReserveData"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveNormalizedIncome"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveNormalizedVariableDebt"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReservesList"; readonly outputs: readonly [{ readonly internalType: "address[]"; readonly name: ""; readonly type: "address[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserAccountData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "totalCollateralETH"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalDebtETH"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "availableBorrowsETH"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentLiquidationThreshold"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "ltv"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "healthFactor"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserConfiguration"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.UserConfigurationMap"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "stableDebtAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "interestRateStrategyAddress"; readonly type: "address"; }]; readonly name: "initReserve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILendingPoolAddressesProvider"; readonly name: "provider"; readonly type: "address"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "collateralAsset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "debtAsset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "debtToCover"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "receiveAToken"; readonly type: "bool"; }]; readonly name: "liquidationCall"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "paused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "rebalanceStableBorrowRate"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rateMode"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly name: "repay"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "rescueTokens"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "configuration"; readonly type: "uint256"; }]; readonly name: "setConfiguration"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "val"; readonly type: "bool"; }]; readonly name: "setPause"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "rateStrategyAddress"; readonly type: "address"; }]; readonly name: "setReserveInterestRateStrategyAddress"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "useAsCollateral"; readonly type: "bool"; }]; readonly name: "setUserUseReserveAsCollateral"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "rateMode"; readonly type: "uint256"; }]; readonly name: "swapBorrowRateMode"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "swapToVariable"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "withdraw"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; readonly addressesProvider: { readonly address: "0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "string"; readonly name: "marketId"; readonly type: "string"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "hasProxy"; readonly type: "bool"; }]; readonly name: "AddressSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "ConfigurationAdminUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "EmergencyAdminUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "LendingPoolCollateralManagerUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "LendingPoolConfiguratorUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "LendingPoolUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "LendingRateOracleUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: "newMarketId"; readonly type: "string"; }]; readonly name: "MarketIdSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PriceOracleUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "ProxyCreated"; readonly type: "event"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }]; readonly name: "getAddress"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getEmergencyAdmin"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLendingPool"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLendingPoolCollateralManager"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLendingPoolConfigurator"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLendingRateOracle"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getMarketId"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPoolAdmin"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPriceOracle"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "setAddress"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "implementationAddress"; readonly type: "address"; }]; readonly name: "setAddressAsProxy"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "emergencyAdmin"; readonly type: "address"; }]; readonly name: "setEmergencyAdmin"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }]; readonly name: "setLendingPoolCollateralManager"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "configurator"; readonly type: "address"; }]; readonly name: "setLendingPoolConfiguratorImpl"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "pool"; readonly type: "address"; }]; readonly name: "setLendingPoolImpl"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "lendingRateOracle"; readonly type: "address"; }]; readonly name: "setLendingRateOracle"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "string"; readonly name: "marketId"; readonly type: "string"; }]; readonly name: "setMarketId"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "admin"; readonly type: "address"; }]; readonly name: "setPoolAdmin"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "priceOracle"; readonly type: "address"; }]; readonly name: "setPriceOracle"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "transferOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; }; readonly aaveV3: { readonly pool: { readonly address: "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: "provider"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "backer"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "fee"; readonly type: "uint256"; }]; readonly name: "BackUnbacked"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "enum DataTypes.InterestRateMode"; readonly name: "interestRateMode"; readonly type: "uint8"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "borrowRate"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "Borrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "target"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "initiator"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "enum DataTypes.InterestRateMode"; readonly name: "interestRateMode"; readonly type: "uint8"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "premium"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "FlashLoan"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "totalDebt"; readonly type: "uint256"; }]; readonly name: "IsolationModeTotalDebtUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "collateralAsset"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "debtAsset"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "debtToCover"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidatedCollateralAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "receiveAToken"; readonly type: "bool"; }]; readonly name: "LiquidationCall"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "MintUnbacked"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountMinted"; readonly type: "uint256"; }]; readonly name: "MintedToTreasury"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "repayer"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "useATokens"; readonly type: "bool"; }]; readonly name: "Repay"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }]; readonly name: "ReserveDataUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }]; readonly name: "ReserveDataUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "ReserveUsedAsCollateralDisabled"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "ReserveUsedAsCollateralEnabled"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "Supply"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint8"; readonly name: "categoryId"; readonly type: "uint8"; }]; readonly name: "UserEModeSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Withdraw"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "ADDRESSES_PROVIDER"; readonly outputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "BRIDGE_PROTOCOL_FEE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "FLASHLOAN_PREMIUM_TOTAL"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "FLASHLOAN_PREMIUM_TO_PROTOCOL"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MAX_NUMBER_RESERVES"; readonly outputs: readonly [{ readonly internalType: "uint16"; readonly name: ""; readonly type: "uint16"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "POOL_REVISION"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "fee"; readonly type: "uint256"; }]; readonly name: "backUnbacked"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly name: "borrow"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }, { readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "ltv"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationThreshold"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationBonus"; readonly type: "uint16"; }, { readonly internalType: "string"; readonly name: "label"; readonly type: "string"; }]; readonly internalType: "struct DataTypes.EModeCategoryBaseConfiguration"; readonly name: "category"; readonly type: "tuple"; }]; readonly name: "configureEModeCategory"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }, { readonly internalType: "uint128"; readonly name: "borrowableBitmap"; readonly type: "uint128"; }]; readonly name: "configureEModeCategoryBorrowableBitmap"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }, { readonly internalType: "uint128"; readonly name: "collateralBitmap"; readonly type: "uint128"; }]; readonly name: "configureEModeCategoryCollateralBitmap"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "deposit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "dropReserve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "balanceFromBefore"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "balanceToBefore"; readonly type: "uint256"; }]; readonly name: "finalizeTransfer"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "receiverAddress"; readonly type: "address"; }, { readonly internalType: "address[]"; readonly name: "assets"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "interestRateModes"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "bytes"; readonly name: "params"; readonly type: "bytes"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "flashLoan"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "receiverAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "bytes"; readonly name: "params"; readonly type: "bytes"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "flashLoanSimple"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getBorrowLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getBridgeLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getConfiguration"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryBorrowableBitmap"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryCollateralBitmap"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryCollateralConfig"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "ltv"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationThreshold"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationBonus"; readonly type: "uint16"; }]; readonly internalType: "struct DataTypes.CollateralConfig"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryData"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "ltv"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationThreshold"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationBonus"; readonly type: "uint16"; }, { readonly internalType: "address"; readonly name: "priceSource"; readonly type: "address"; }, { readonly internalType: "string"; readonly name: "label"; readonly type: "string"; }]; readonly internalType: "struct DataTypes.EModeCategoryLegacy"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryLabel"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getEModeLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFlashLoanLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getLiquidationGracePeriod"; readonly outputs: readonly [{ readonly internalType: "uint40"; readonly name: ""; readonly type: "uint40"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLiquidationLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPoolLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "id"; readonly type: "uint16"; }]; readonly name: "getReserveAddressById"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveData"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: "configuration"; readonly type: "tuple"; }, { readonly internalType: "uint128"; readonly name: "liquidityIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentLiquidityRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "variableBorrowIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentVariableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentStableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }, { readonly internalType: "uint16"; readonly name: "id"; readonly type: "uint16"; }, { readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "stableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "interestRateStrategyAddress"; readonly type: "address"; }, { readonly internalType: "uint128"; readonly name: "accruedToTreasury"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "unbacked"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "isolationModeTotalDebt"; readonly type: "uint128"; }]; readonly internalType: "struct DataTypes.ReserveDataLegacy"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveDataExtended"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: "configuration"; readonly type: "tuple"; }, { readonly internalType: "uint128"; readonly name: "liquidityIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentLiquidityRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "variableBorrowIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentVariableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "__deprecatedStableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }, { readonly internalType: "uint16"; readonly name: "id"; readonly type: "uint16"; }, { readonly internalType: "uint40"; readonly name: "liquidationGracePeriodUntil"; readonly type: "uint40"; }, { readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "__deprecatedStableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "interestRateStrategyAddress"; readonly type: "address"; }, { readonly internalType: "uint128"; readonly name: "accruedToTreasury"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "unbacked"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "isolationModeTotalDebt"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "virtualUnderlyingBalance"; readonly type: "uint128"; }]; readonly internalType: "struct DataTypes.ReserveData"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveNormalizedIncome"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveNormalizedVariableDebt"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReservesCount"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReservesList"; readonly outputs: readonly [{ readonly internalType: "address[]"; readonly name: ""; readonly type: "address[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getSupplyLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserAccountData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "totalCollateralBase"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalDebtBase"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "availableBorrowsBase"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentLiquidationThreshold"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "ltv"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "healthFactor"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserConfiguration"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.UserConfigurationMap"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserEMode"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getVirtualUnderlyingBalance"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "interestRateStrategyAddress"; readonly type: "address"; }]; readonly name: "initReserve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: "provider"; readonly type: "address"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "collateralAsset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "debtAsset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "debtToCover"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "receiveAToken"; readonly type: "bool"; }]; readonly name: "liquidationCall"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "assets"; readonly type: "address[]"; }]; readonly name: "mintToTreasury"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "mintUnbacked"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly name: "repay"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }]; readonly name: "repayWithATokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "uint8"; readonly name: "permitV"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "permitR"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "permitS"; readonly type: "bytes32"; }]; readonly name: "repayWithPermit"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "rescueTokens"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "resetIsolationModeTotalDebt"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: "configuration"; readonly type: "tuple"; }]; readonly name: "setConfiguration"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint40"; readonly name: "until"; readonly type: "uint40"; }]; readonly name: "setLiquidationGracePeriod"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "rateStrategyAddress"; readonly type: "address"; }]; readonly name: "setReserveInterestRateStrategyAddress"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "categoryId"; readonly type: "uint8"; }]; readonly name: "setUserEMode"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "useAsCollateral"; readonly type: "bool"; }]; readonly name: "setUserUseReserveAsCollateral"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "supply"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "uint8"; readonly name: "permitV"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "permitR"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "permitS"; readonly type: "bytes32"; }]; readonly name: "supplyWithPermit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "syncIndexesState"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "syncRatesState"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "protocolFee"; readonly type: "uint256"; }]; readonly name: "updateBridgeProtocolFee"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint128"; readonly name: "flashLoanPremiumTotal"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "flashLoanPremiumToProtocol"; readonly type: "uint128"; }]; readonly name: "updateFlashloanPremiums"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "withdraw"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; readonly protocolDataProvider: { readonly address: "0x7B4EB56E7CD4b454BA8ff71E4518426369a138a3"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: "addressesProvider"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "ADDRESSES_PROVIDER"; readonly outputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getATokenTotalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllATokens"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "tokenAddress"; readonly type: "address"; }]; readonly internalType: "struct IPoolDataProvider.TokenData[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllReservesTokens"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "tokenAddress"; readonly type: "address"; }]; readonly internalType: "struct IPoolDataProvider.TokenData[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getDebtCeiling"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getDebtCeilingDecimals"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getFlashLoanEnabled"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getInterestRateStrategyAddress"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "irStrategyAddress"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getLiquidationProtocolFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveCaps"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "borrowCap"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "supplyCap"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveConfigurationData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "ltv"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidationThreshold"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidationBonus"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserveFactor"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "usageAsCollateralEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "borrowingEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "stableBorrowRateEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isActive"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isFrozen"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "unbacked"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "accruedToTreasuryScaled"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalAToken"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "averageStableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveEModeCategory"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveTokensAddresses"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "stableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getSiloedBorrowing"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getTotalDebt"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getUnbackedMintCap"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserReserveData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "currentATokenBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "principalStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "scaledVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly internalType: "uint40"; readonly name: "stableRateLastUpdated"; readonly type: "uint40"; }, { readonly internalType: "bool"; readonly name: "usageAsCollateralEnabled"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; }; readonly addressesProvider: { readonly address: "0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "string"; readonly name: "marketId"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "ACLAdminUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "ACLManagerUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "AddressSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "proxyAddress"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "oldImplementationAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newImplementationAddress"; readonly type: "address"; }]; readonly name: "AddressSetAsProxy"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "string"; readonly name: "oldMarketId"; readonly type: "string"; }, { readonly indexed: true; readonly internalType: "string"; readonly name: "newMarketId"; readonly type: "string"; }]; readonly name: "MarketIdSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PoolConfiguratorUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PoolDataProviderUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PoolUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PriceOracleSentinelUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PriceOracleUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "proxyAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "implementationAddress"; readonly type: "address"; }]; readonly name: "ProxyCreated"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "getACLAdmin"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getACLManager"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }]; readonly name: "getAddress"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getMarketId"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPool"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPoolConfigurator"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPoolDataProvider"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPriceOracle"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPriceOracleSentinel"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newAclAdmin"; readonly type: "address"; }]; readonly name: "setACLAdmin"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newAclManager"; readonly type: "address"; }]; readonly name: "setACLManager"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "setAddress"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "newImplementationAddress"; readonly type: "address"; }]; readonly name: "setAddressAsProxy"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "string"; readonly name: "newMarketId"; readonly type: "string"; }]; readonly name: "setMarketId"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPoolConfiguratorImpl"; readonly type: "address"; }]; readonly name: "setPoolConfiguratorImpl"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newDataProvider"; readonly type: "address"; }]; readonly name: "setPoolDataProvider"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPoolImpl"; readonly type: "address"; }]; readonly name: "setPoolImpl"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPriceOracle"; readonly type: "address"; }]; readonly name: "setPriceOracle"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPriceOracleSentinel"; readonly type: "address"; }]; readonly name: "setPriceOracleSentinel"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "transferOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; }; readonly compoundV3: { readonly usdc: { readonly address: "0xc3d688B66703497DAA19211EEdff47f25384cdc3"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "governor"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "pauseGuardian"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "baseToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "baseTokenPriceFeed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "extensionDelegate"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "supplyKink"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateSlopeLow"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateSlopeHigh"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateBase"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowKink"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateSlopeLow"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateSlopeHigh"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateBase"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "storeFrontPriceFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "trackingIndexScale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingSupplySpeed"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingBorrowSpeed"; readonly type: "uint64"; }, { readonly internalType: "uint104"; readonly name: "baseMinForRewards"; readonly type: "uint104"; }, { readonly internalType: "uint104"; readonly name: "baseBorrowMin"; readonly type: "uint104"; }, { readonly internalType: "uint104"; readonly name: "targetReserves"; readonly type: "uint104"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint8"; readonly name: "decimals"; readonly type: "uint8"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometConfiguration.AssetConfig[]"; readonly name: "assetConfigs"; readonly type: "tuple[]"; }]; readonly internalType: "struct CometConfiguration.Configuration"; readonly name: "config"; readonly type: "tuple"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "Absurd"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "AlreadyInitialized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadAsset"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadDecimals"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadDiscount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadMinimum"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadPrice"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BorrowCFTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BorrowTooSmall"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InsufficientReserves"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidInt104"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidInt256"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt104"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt128"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt64"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LiquidateCFTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NegativeNumber"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NoSelfTransfer"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotCollateralized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotForSale"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotLiquidatable"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Paused"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SupplyCapExceeded"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TimestampTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TooManyAssets"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TooMuchSlippage"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TransferInFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TransferOutFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Unauthorized"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "collateralAbsorbed"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "usdValue"; readonly type: "uint256"; }]; readonly name: "AbsorbCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "basePaidOut"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "usdValue"; readonly type: "uint256"; }]; readonly name: "AbsorbDebt"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "buyer"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "collateralAmount"; readonly type: "uint256"; }]; readonly name: "BuyCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bool"; readonly name: "supplyPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "transferPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "withdrawPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "absorbPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "buyPaused"; readonly type: "bool"; }]; readonly name: "PauseAction"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Supply"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "SupplyCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Transfer"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "TransferCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Withdraw"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "WithdrawCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "WithdrawReserves"; readonly type: "event"; }, { readonly stateMutability: "payable"; readonly type: "fallback"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly internalType: "address[]"; readonly name: "accounts"; readonly type: "address[]"; }]; readonly name: "absorb"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "accrueAccount"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "approveThis"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseBorrowMin"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseMinForRewards"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseScale"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseToken"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTokenPriceFeed"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTrackingBorrowSpeed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTrackingSupplySpeed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowKink"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateBase"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateSlopeHigh"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateSlopeLow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "minAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }]; readonly name: "buyCollateral"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "decimals"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "extensionDelegate"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "i"; readonly type: "uint8"; }]; readonly name: "getAssetInfo"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "offset"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "scale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometCore.AssetInfo"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getAssetInfoByAddress"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "offset"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "scale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometCore.AssetInfo"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "utilization"; readonly type: "uint256"; }]; readonly name: "getBorrowRate"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: ""; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getCollateralReserves"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }]; readonly name: "getPrice"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReserves"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: ""; readonly type: "int256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "utilization"; readonly type: "uint256"; }]; readonly name: "getSupplyRate"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: ""; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getUtilization"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "governor"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }]; readonly name: "hasPermission"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "initializeStorage"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isAbsorbPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "isAllowed"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "isBorrowCollateralized"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isBuyPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "isLiquidatable"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isSupplyPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isTransferPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isWithdrawPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "liquidatorPoints"; readonly outputs: readonly [{ readonly internalType: "uint32"; readonly name: "numAbsorbs"; readonly type: "uint32"; }, { readonly internalType: "uint64"; readonly name: "numAbsorbed"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "approxSpend"; readonly type: "uint128"; }, { readonly internalType: "uint32"; readonly name: "_reserved"; readonly type: "uint32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "numAssets"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "supplyPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "transferPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "withdrawPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "absorbPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "buyPaused"; readonly type: "bool"; }]; readonly name: "pause"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pauseGuardian"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }]; readonly name: "quoteCollateral"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "storeFrontPriceFactor"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supply"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supplyFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyKink"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateBase"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateSlopeHigh"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateSlopeLow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supplyTo"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "targetReserves"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "totalBorrow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "totalsCollateral"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "totalSupplyAsset"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "_reserved"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "trackingIndexScale"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transfer"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferAssetFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferFrom"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userBasic"; readonly outputs: readonly [{ readonly internalType: "int104"; readonly name: "principal"; readonly type: "int104"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingIndex"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingAccrued"; readonly type: "uint64"; }, { readonly internalType: "uint16"; readonly name: "assetsIn"; readonly type: "uint16"; }, { readonly internalType: "uint8"; readonly name: "_reserved"; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userCollateral"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "balance"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "_reserved"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userNonce"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdraw"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawReserves"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawTo"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; readonly weth: { readonly address: "0xA17581A9E3356d9A858b789D68B4d866e593aE94"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "governor"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "pauseGuardian"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "baseToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "baseTokenPriceFeed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "extensionDelegate"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "supplyKink"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateSlopeLow"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateSlopeHigh"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateBase"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowKink"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateSlopeLow"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateSlopeHigh"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateBase"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "storeFrontPriceFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "trackingIndexScale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingSupplySpeed"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingBorrowSpeed"; readonly type: "uint64"; }, { readonly internalType: "uint104"; readonly name: "baseMinForRewards"; readonly type: "uint104"; }, { readonly internalType: "uint104"; readonly name: "baseBorrowMin"; readonly type: "uint104"; }, { readonly internalType: "uint104"; readonly name: "targetReserves"; readonly type: "uint104"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint8"; readonly name: "decimals"; readonly type: "uint8"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometConfiguration.AssetConfig[]"; readonly name: "assetConfigs"; readonly type: "tuple[]"; }]; readonly internalType: "struct CometConfiguration.Configuration"; readonly name: "config"; readonly type: "tuple"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "Absurd"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "AlreadyInitialized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadAsset"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadDecimals"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadDiscount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadMinimum"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadPrice"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BorrowCFTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BorrowTooSmall"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InsufficientReserves"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidInt104"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidInt256"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt104"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt128"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt64"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LiquidateCFTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NegativeNumber"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NoSelfTransfer"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotCollateralized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotForSale"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotLiquidatable"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Paused"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SupplyCapExceeded"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TimestampTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TooManyAssets"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TooMuchSlippage"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TransferInFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TransferOutFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Unauthorized"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "collateralAbsorbed"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "usdValue"; readonly type: "uint256"; }]; readonly name: "AbsorbCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "basePaidOut"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "usdValue"; readonly type: "uint256"; }]; readonly name: "AbsorbDebt"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "buyer"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "collateralAmount"; readonly type: "uint256"; }]; readonly name: "BuyCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bool"; readonly name: "supplyPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "transferPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "withdrawPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "absorbPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "buyPaused"; readonly type: "bool"; }]; readonly name: "PauseAction"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Supply"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "SupplyCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Transfer"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "TransferCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Withdraw"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "WithdrawCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "WithdrawReserves"; readonly type: "event"; }, { readonly stateMutability: "payable"; readonly type: "fallback"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly internalType: "address[]"; readonly name: "accounts"; readonly type: "address[]"; }]; readonly name: "absorb"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "accrueAccount"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "approveThis"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseBorrowMin"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseMinForRewards"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseScale"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseToken"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTokenPriceFeed"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTrackingBorrowSpeed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTrackingSupplySpeed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowKink"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateBase"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateSlopeHigh"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateSlopeLow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "minAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }]; readonly name: "buyCollateral"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "decimals"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "extensionDelegate"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "i"; readonly type: "uint8"; }]; readonly name: "getAssetInfo"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "offset"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "scale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometCore.AssetInfo"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getAssetInfoByAddress"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "offset"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "scale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometCore.AssetInfo"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "utilization"; readonly type: "uint256"; }]; readonly name: "getBorrowRate"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: ""; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getCollateralReserves"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }]; readonly name: "getPrice"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReserves"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: ""; readonly type: "int256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "utilization"; readonly type: "uint256"; }]; readonly name: "getSupplyRate"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: ""; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getUtilization"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "governor"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }]; readonly name: "hasPermission"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "initializeStorage"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isAbsorbPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "isAllowed"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "isBorrowCollateralized"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isBuyPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "isLiquidatable"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isSupplyPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isTransferPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isWithdrawPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "liquidatorPoints"; readonly outputs: readonly [{ readonly internalType: "uint32"; readonly name: "numAbsorbs"; readonly type: "uint32"; }, { readonly internalType: "uint64"; readonly name: "numAbsorbed"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "approxSpend"; readonly type: "uint128"; }, { readonly internalType: "uint32"; readonly name: "_reserved"; readonly type: "uint32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "numAssets"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "supplyPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "transferPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "withdrawPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "absorbPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "buyPaused"; readonly type: "bool"; }]; readonly name: "pause"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pauseGuardian"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }]; readonly name: "quoteCollateral"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "storeFrontPriceFactor"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supply"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supplyFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyKink"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateBase"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateSlopeHigh"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateSlopeLow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supplyTo"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "targetReserves"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "totalBorrow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "totalsCollateral"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "totalSupplyAsset"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "_reserved"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "trackingIndexScale"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transfer"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferAssetFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferFrom"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userBasic"; readonly outputs: readonly [{ readonly internalType: "int104"; readonly name: "principal"; readonly type: "int104"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingIndex"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingAccrued"; readonly type: "uint64"; }, { readonly internalType: "uint16"; readonly name: "assetsIn"; readonly type: "uint16"; }, { readonly internalType: "uint8"; readonly name: "_reserved"; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userCollateral"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "balance"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "_reserved"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userNonce"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdraw"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawReserves"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawTo"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; }; readonly compoundV2: { readonly cEth: { readonly address: "0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5"; readonly abi: readonly [{ readonly constant: true; readonly inputs: readonly []; readonly name: "name"; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "spender"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "approve"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "mint"; readonly outputs: readonly []; readonly payable: true; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "reserveFactorMantissa"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "exchangeRateStored"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "src"; readonly type: "address"; }, { readonly name: "dst"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferFrom"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "pendingAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "decimals"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly name: "balanceOfUnderlying"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "getCash"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newComptroller"; readonly type: "address"; }]; readonly name: "_setComptroller"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalBorrows"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "repayBorrow"; readonly outputs: readonly []; readonly payable: true; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "comptroller"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "reduceAmount"; readonly type: "uint256"; }]; readonly name: "_reduceReserves"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "initialExchangeRateMantissa"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "accrualBlockNumber"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "totalBorrowsCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "redeemAmount"; readonly type: "uint256"; }]; readonly name: "redeemUnderlying"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalReserves"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "symbol"; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceStored"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "accrueInterest"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "dst"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transfer"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "borrowIndex"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrower"; readonly type: "address"; }, { readonly name: "cTokenCollateral"; readonly type: "address"; }]; readonly name: "liquidateBorrow"; readonly outputs: readonly []; readonly payable: true; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "supplyRatePerBlock"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "liquidator"; readonly type: "address"; }, { readonly name: "borrower"; readonly type: "address"; }, { readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "seize"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newPendingAdmin"; readonly type: "address"; }]; readonly name: "_setPendingAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "exchangeRateCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "getAccountSnapshot"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrowAmount"; readonly type: "uint256"; }]; readonly name: "borrow"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "redeem"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }, { readonly name: "spender"; readonly type: "address"; }]; readonly name: "allowance"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrower"; readonly type: "address"; }]; readonly name: "repayBorrowBehalf"; readonly outputs: readonly []; readonly payable: true; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "_acceptAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newInterestRateModel"; readonly type: "address"; }]; readonly name: "_setInterestRateModel"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "interestRateModel"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "admin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "borrowRatePerBlock"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newReserveFactorMantissa"; readonly type: "uint256"; }]; readonly name: "_setReserveFactor"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "isCToken"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly name: "comptroller_"; readonly type: "address"; }, { readonly name: "interestRateModel_"; readonly type: "address"; }, { readonly name: "initialExchangeRateMantissa_"; readonly type: "uint256"; }, { readonly name: "name_"; readonly type: "string"; }, { readonly name: "symbol_"; readonly type: "string"; }, { readonly name: "decimals_"; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly payable: true; readonly stateMutability: "payable"; readonly type: "fallback"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "interestAccumulated"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "borrowIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "AccrueInterest"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "minter"; readonly type: "address"; }, { readonly indexed: false; readonly name: "mintAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "mintTokens"; readonly type: "uint256"; }]; readonly name: "Mint"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "redeemer"; readonly type: "address"; }, { readonly indexed: false; readonly name: "redeemAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "Redeem"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrowAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "accountBorrows"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "Borrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "payer"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "repayAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "accountBorrows"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "RepayBorrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "liquidator"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "repayAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly indexed: false; readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "LiquidateBorrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldPendingAdmin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newPendingAdmin"; readonly type: "address"; }]; readonly name: "NewPendingAdmin"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldAdmin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newAdmin"; readonly type: "address"; }]; readonly name: "NewAdmin"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldComptroller"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newComptroller"; readonly type: "address"; }]; readonly name: "NewComptroller"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldInterestRateModel"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newInterestRateModel"; readonly type: "address"; }]; readonly name: "NewMarketInterestRateModel"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldReserveFactorMantissa"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "newReserveFactorMantissa"; readonly type: "uint256"; }]; readonly name: "NewReserveFactor"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "admin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "reduceAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "newTotalReserves"; readonly type: "uint256"; }]; readonly name: "ReservesReduced"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "error"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "info"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "detail"; readonly type: "uint256"; }]; readonly name: "Failure"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Transfer"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly name: "spender"; readonly type: "address"; }, { readonly indexed: false; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Approval"; readonly type: "event"; }]; }; readonly cUsdc: { readonly address: "0x39AA39c021dfbaE8faC545936693aC917d5E7563"; readonly abi: readonly [{ readonly constant: true; readonly inputs: readonly []; readonly name: "name"; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "spender"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "approve"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "repayAmount"; readonly type: "uint256"; }]; readonly name: "repayBorrow"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "reserveFactorMantissa"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "exchangeRateStored"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "src"; readonly type: "address"; }, { readonly name: "dst"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferFrom"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrower"; readonly type: "address"; }, { readonly name: "repayAmount"; readonly type: "uint256"; }]; readonly name: "repayBorrowBehalf"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "pendingAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "decimals"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly name: "balanceOfUnderlying"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "getCash"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newComptroller"; readonly type: "address"; }]; readonly name: "_setComptroller"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalBorrows"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "comptroller"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "reduceAmount"; readonly type: "uint256"; }]; readonly name: "_reduceReserves"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "initialExchangeRateMantissa"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "underlying"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "totalBorrowsCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "redeemAmount"; readonly type: "uint256"; }]; readonly name: "redeemUnderlying"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalReserves"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "symbol"; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceStored"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "mintAmount"; readonly type: "uint256"; }]; readonly name: "mint"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "accrueInterest"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "dst"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transfer"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "borrowIndex"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "liquidator"; readonly type: "address"; }, { readonly name: "borrower"; readonly type: "address"; }, { readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "seize"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newPendingAdmin"; readonly type: "address"; }]; readonly name: "_setPendingAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "exchangeRateCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "getAccountSnapshot"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrowAmount"; readonly type: "uint256"; }]; readonly name: "borrow"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "redeem"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }, { readonly name: "spender"; readonly type: "address"; }]; readonly name: "allowance"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "_acceptAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newInterestRateModel"; readonly type: "address"; }]; readonly name: "_setInterestRateModel"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "interestRateModel"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrower"; readonly type: "address"; }, { readonly name: "repayAmount"; readonly type: "uint256"; }, { readonly name: "cTokenCollateral"; readonly type: "address"; }]; readonly name: "liquidateBorrow"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "admin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newReserveFactorMantissa"; readonly type: "uint256"; }]; readonly name: "_setReserveFactor"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "isCToken"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly name: "underlying_"; readonly type: "address"; }, { readonly name: "comptroller_"; readonly type: "address"; }, { readonly name: "interestRateModel_"; readonly type: "address"; }, { readonly name: "initialExchangeRateMantissa_"; readonly type: "uint256"; }, { readonly name: "name_"; readonly type: "string"; }, { readonly name: "symbol_"; readonly type: "string"; }, { readonly name: "decimals_"; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "interestAccumulated"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "borrowIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "AccrueInterest"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "minter"; readonly type: "address"; }, { readonly indexed: false; readonly name: "mintAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "mintTokens"; readonly type: "uint256"; }]; readonly name: "Mint"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "redeemer"; readonly type: "address"; }, { readonly indexed: false; readonly name: "redeemAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "Redeem"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrowAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "accountBorrows"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "Borrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "payer"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "repayAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "accountBorrows"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "RepayBorrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "liquidator"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "repayAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly indexed: false; readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "LiquidateBorrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldPendingAdmin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newPendingAdmin"; readonly type: "address"; }]; readonly name: "NewPendingAdmin"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldAdmin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newAdmin"; readonly type: "address"; }]; readonly name: "NewAdmin"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldComptroller"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newComptroller"; readonly type: "address"; }]; readonly name: "NewComptroller"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldInterestRateModel"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newInterestRateModel"; readonly type: "address"; }]; readonly name: "NewMarketInterestRateModel"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldReserveFactorMantissa"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "newReserveFactorMantissa"; readonly type: "uint256"; }]; readonly name: "NewReserveFactor"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "admin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "reduceAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "newTotalReserves"; readonly type: "uint256"; }]; readonly name: "ReservesReduced"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "error"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "info"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "detail"; readonly type: "uint256"; }]; readonly name: "Failure"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Transfer"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly name: "spender"; readonly type: "address"; }, { readonly indexed: false; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Approval"; readonly type: "event"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "accrualBlockNumber"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "supplyRatePerBlock"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "borrowRatePerBlock"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }]; }; readonly comptroller: { readonly address: "0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B"; readonly abi: readonly [{ readonly inputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: "action"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "pauseState"; readonly type: "bool"; }]; readonly name: "ActionPaused"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "string"; readonly name: "action"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "pauseState"; readonly type: "bool"; }]; readonly name: "ActionPaused"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldCompAccrued"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newCompAccrued"; readonly type: "uint256"; }]; readonly name: "CompAccruedAdjusted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newSpeed"; readonly type: "uint256"; }]; readonly name: "CompBorrowSpeedUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "CompGranted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldCompReceivable"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newCompReceivable"; readonly type: "uint256"; }]; readonly name: "CompReceivableUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newSpeed"; readonly type: "uint256"; }]; readonly name: "CompSupplySpeedUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "contributor"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newSpeed"; readonly type: "uint256"; }]; readonly name: "ContributorCompSpeedUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "compDelta"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "compBorrowIndex"; readonly type: "uint256"; }]; readonly name: "DistributedBorrowerComp"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "supplier"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "compDelta"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "compSupplyIndex"; readonly type: "uint256"; }]; readonly name: "DistributedSupplierComp"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "error"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "info"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "detail"; readonly type: "uint256"; }]; readonly name: "Failure"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "MarketEntered"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "MarketExited"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }]; readonly name: "MarketListed"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newBorrowCap"; readonly type: "uint256"; }]; readonly name: "NewBorrowCap"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "oldBorrowCapGuardian"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "newBorrowCapGuardian"; readonly type: "address"; }]; readonly name: "NewBorrowCapGuardian"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldCloseFactorMantissa"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newCloseFactorMantissa"; readonly type: "uint256"; }]; readonly name: "NewCloseFactor"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldCollateralFactorMantissa"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newCollateralFactorMantissa"; readonly type: "uint256"; }]; readonly name: "NewCollateralFactor"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldLiquidationIncentiveMantissa"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newLiquidationIncentiveMantissa"; readonly type: "uint256"; }]; readonly name: "NewLiquidationIncentive"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "oldPauseGuardian"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "newPauseGuardian"; readonly type: "address"; }]; readonly name: "NewPauseGuardian"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract PriceOracle"; readonly name: "oldPriceOracle"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "contract PriceOracle"; readonly name: "newPriceOracle"; readonly type: "address"; }]; readonly name: "NewPriceOracle"; readonly type: "event"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract Unitroller"; readonly name: "unitroller"; readonly type: "address"; }]; readonly name: "_become"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "_borrowGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "_grantComp"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "_mintGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newBorrowCapGuardian"; readonly type: "address"; }]; readonly name: "_setBorrowCapGuardian"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "state"; readonly type: "bool"; }]; readonly name: "_setBorrowPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "newCloseFactorMantissa"; readonly type: "uint256"; }]; readonly name: "_setCloseFactor"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "newCollateralFactorMantissa"; readonly type: "uint256"; }]; readonly name: "_setCollateralFactor"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken[]"; readonly name: "cTokens"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "supplySpeeds"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "borrowSpeeds"; readonly type: "uint256[]"; }]; readonly name: "_setCompSpeeds"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "contributor"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "compSpeed"; readonly type: "uint256"; }]; readonly name: "_setContributorCompSpeed"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "newLiquidationIncentiveMantissa"; readonly type: "uint256"; }]; readonly name: "_setLiquidationIncentive"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken[]"; readonly name: "cTokens"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "newBorrowCaps"; readonly type: "uint256[]"; }]; readonly name: "_setMarketBorrowCaps"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "state"; readonly type: "bool"; }]; readonly name: "_setMintPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPauseGuardian"; readonly type: "address"; }]; readonly name: "_setPauseGuardian"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract PriceOracle"; readonly name: "newOracle"; readonly type: "address"; }]; readonly name: "_setPriceOracle"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "state"; readonly type: "bool"; }]; readonly name: "_setSeizePaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "state"; readonly type: "bool"; }]; readonly name: "_setTransferPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }]; readonly name: "_supportMarket"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "accountAssets"; readonly outputs: readonly [{ readonly internalType: "contract CToken"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "admin"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "allMarkets"; readonly outputs: readonly [{ readonly internalType: "contract CToken"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "borrowAmount"; readonly type: "uint256"; }]; readonly name: "borrowAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "borrowCapGuardian"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "borrowCaps"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "borrowGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "borrowAmount"; readonly type: "uint256"; }]; readonly name: "borrowVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }]; readonly name: "checkMembership"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "holder"; readonly type: "address"; }, { readonly internalType: "contract CToken[]"; readonly name: "cTokens"; readonly type: "address[]"; }]; readonly name: "claimComp"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "holders"; readonly type: "address[]"; }, { readonly internalType: "contract CToken[]"; readonly name: "cTokens"; readonly type: "address[]"; }, { readonly internalType: "bool"; readonly name: "borrowers"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "suppliers"; readonly type: "bool"; }]; readonly name: "claimComp"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "holder"; readonly type: "address"; }]; readonly name: "claimComp"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "closeFactorMantissa"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compAccrued"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compBorrowSpeeds"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compBorrowState"; readonly outputs: readonly [{ readonly internalType: "uint224"; readonly name: "index"; readonly type: "uint224"; }, { readonly internalType: "uint32"; readonly name: "block"; readonly type: "uint32"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compBorrowerIndex"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compContributorSpeeds"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "compInitialIndex"; readonly outputs: readonly [{ readonly internalType: "uint224"; readonly name: ""; readonly type: "uint224"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "compRate"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compReceivable"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compSpeeds"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compSupplierIndex"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compSupplySpeeds"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compSupplyState"; readonly outputs: readonly [{ readonly internalType: "uint224"; readonly name: "index"; readonly type: "uint224"; }, { readonly internalType: "uint32"; readonly name: "block"; readonly type: "uint32"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "comptrollerImplementation"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "cTokens"; readonly type: "address[]"; }]; readonly name: "enterMarkets"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: ""; readonly type: "uint256[]"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenAddress"; readonly type: "address"; }]; readonly name: "exitMarket"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "affectedUsers"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }]; readonly name: "fixBadAccruals"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "getAccountLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "getAllMarkets"; readonly outputs: readonly [{ readonly internalType: "contract CToken[]"; readonly name: ""; readonly type: "address[]"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "getAssetsIn"; readonly outputs: readonly [{ readonly internalType: "contract CToken[]"; readonly name: ""; readonly type: "address[]"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "getBlockNumber"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "getCompAddress"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenModify"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "redeemTokens"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "borrowAmount"; readonly type: "uint256"; }]; readonly name: "getHypotheticalAccountLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "isComptroller"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }]; readonly name: "isDeprecated"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "lastContributorBlock"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenBorrowed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "repayAmount"; readonly type: "uint256"; }]; readonly name: "liquidateBorrowAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenBorrowed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "actualRepayAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "liquidateBorrowVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenBorrowed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "actualRepayAmount"; readonly type: "uint256"; }]; readonly name: "liquidateCalculateSeizeTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "liquidationIncentiveMantissa"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "markets"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "isListed"; readonly type: "bool"; }, { readonly internalType: "uint256"; readonly name: "collateralFactorMantissa"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "isComped"; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "maxAssets"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "minter"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "mintAmount"; readonly type: "uint256"; }]; readonly name: "mintAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "mintGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "minter"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "actualMintAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "mintTokens"; readonly type: "uint256"; }]; readonly name: "mintVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "oracle"; readonly outputs: readonly [{ readonly internalType: "contract PriceOracle"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "pauseGuardian"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "pendingAdmin"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "pendingComptrollerImplementation"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "proposal65FixExecuted"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "redeemer"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "redeemAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "redeemer"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "redeemAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "redeemVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "payer"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "repayAmount"; readonly type: "uint256"; }]; readonly name: "repayBorrowAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "payer"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "actualRepayAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "borrowerIndex"; readonly type: "uint256"; }]; readonly name: "repayBorrowVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenBorrowed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "seizeAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "seizeGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenBorrowed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "seizeVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "transferTokens"; readonly type: "uint256"; }]; readonly name: "transferAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "transferGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "transferTokens"; readonly type: "uint256"; }]; readonly name: "transferVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "contributor"; readonly type: "address"; }]; readonly name: "updateContributorRewards"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; }; }; readonly 8453: { readonly aaveV3: { readonly pool: { readonly address: "0xA238Dd80C259a72e81d7e4664a9801593F98d1c5"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: "provider"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "backer"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "fee"; readonly type: "uint256"; }]; readonly name: "BackUnbacked"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "enum DataTypes.InterestRateMode"; readonly name: "interestRateMode"; readonly type: "uint8"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "borrowRate"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "Borrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "target"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "initiator"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "enum DataTypes.InterestRateMode"; readonly name: "interestRateMode"; readonly type: "uint8"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "premium"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "FlashLoan"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "totalDebt"; readonly type: "uint256"; }]; readonly name: "IsolationModeTotalDebtUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "collateralAsset"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "debtAsset"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "debtToCover"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidatedCollateralAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "receiveAToken"; readonly type: "bool"; }]; readonly name: "LiquidationCall"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "MintUnbacked"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountMinted"; readonly type: "uint256"; }]; readonly name: "MintedToTreasury"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "repayer"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "useATokens"; readonly type: "bool"; }]; readonly name: "Repay"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }]; readonly name: "ReserveDataUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }]; readonly name: "ReserveDataUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "ReserveUsedAsCollateralDisabled"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "ReserveUsedAsCollateralEnabled"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "Supply"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint8"; readonly name: "categoryId"; readonly type: "uint8"; }]; readonly name: "UserEModeSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Withdraw"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "ADDRESSES_PROVIDER"; readonly outputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "BRIDGE_PROTOCOL_FEE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "FLASHLOAN_PREMIUM_TOTAL"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "FLASHLOAN_PREMIUM_TO_PROTOCOL"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MAX_NUMBER_RESERVES"; readonly outputs: readonly [{ readonly internalType: "uint16"; readonly name: ""; readonly type: "uint16"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "POOL_REVISION"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "fee"; readonly type: "uint256"; }]; readonly name: "backUnbacked"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly name: "borrow"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }, { readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "ltv"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationThreshold"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationBonus"; readonly type: "uint16"; }, { readonly internalType: "string"; readonly name: "label"; readonly type: "string"; }]; readonly internalType: "struct DataTypes.EModeCategoryBaseConfiguration"; readonly name: "category"; readonly type: "tuple"; }]; readonly name: "configureEModeCategory"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }, { readonly internalType: "uint128"; readonly name: "borrowableBitmap"; readonly type: "uint128"; }]; readonly name: "configureEModeCategoryBorrowableBitmap"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }, { readonly internalType: "uint128"; readonly name: "collateralBitmap"; readonly type: "uint128"; }]; readonly name: "configureEModeCategoryCollateralBitmap"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "deposit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "dropReserve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "balanceFromBefore"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "balanceToBefore"; readonly type: "uint256"; }]; readonly name: "finalizeTransfer"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "receiverAddress"; readonly type: "address"; }, { readonly internalType: "address[]"; readonly name: "assets"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "interestRateModes"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "bytes"; readonly name: "params"; readonly type: "bytes"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "flashLoan"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "receiverAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "bytes"; readonly name: "params"; readonly type: "bytes"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "flashLoanSimple"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getBorrowLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getBridgeLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getConfiguration"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryBorrowableBitmap"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryCollateralBitmap"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryCollateralConfig"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "ltv"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationThreshold"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationBonus"; readonly type: "uint16"; }]; readonly internalType: "struct DataTypes.CollateralConfig"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryData"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "ltv"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationThreshold"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationBonus"; readonly type: "uint16"; }, { readonly internalType: "address"; readonly name: "priceSource"; readonly type: "address"; }, { readonly internalType: "string"; readonly name: "label"; readonly type: "string"; }]; readonly internalType: "struct DataTypes.EModeCategoryLegacy"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryLabel"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getEModeLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFlashLoanLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getLiquidationGracePeriod"; readonly outputs: readonly [{ readonly internalType: "uint40"; readonly name: ""; readonly type: "uint40"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLiquidationLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPoolLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "id"; readonly type: "uint16"; }]; readonly name: "getReserveAddressById"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveData"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: "configuration"; readonly type: "tuple"; }, { readonly internalType: "uint128"; readonly name: "liquidityIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentLiquidityRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "variableBorrowIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentVariableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentStableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }, { readonly internalType: "uint16"; readonly name: "id"; readonly type: "uint16"; }, { readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "stableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "interestRateStrategyAddress"; readonly type: "address"; }, { readonly internalType: "uint128"; readonly name: "accruedToTreasury"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "unbacked"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "isolationModeTotalDebt"; readonly type: "uint128"; }]; readonly internalType: "struct DataTypes.ReserveDataLegacy"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveDataExtended"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: "configuration"; readonly type: "tuple"; }, { readonly internalType: "uint128"; readonly name: "liquidityIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentLiquidityRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "variableBorrowIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentVariableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "__deprecatedStableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }, { readonly internalType: "uint16"; readonly name: "id"; readonly type: "uint16"; }, { readonly internalType: "uint40"; readonly name: "liquidationGracePeriodUntil"; readonly type: "uint40"; }, { readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "__deprecatedStableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "interestRateStrategyAddress"; readonly type: "address"; }, { readonly internalType: "uint128"; readonly name: "accruedToTreasury"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "unbacked"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "isolationModeTotalDebt"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "virtualUnderlyingBalance"; readonly type: "uint128"; }]; readonly internalType: "struct DataTypes.ReserveData"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveNormalizedIncome"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveNormalizedVariableDebt"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReservesCount"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReservesList"; readonly outputs: readonly [{ readonly internalType: "address[]"; readonly name: ""; readonly type: "address[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getSupplyLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserAccountData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "totalCollateralBase"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalDebtBase"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "availableBorrowsBase"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentLiquidationThreshold"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "ltv"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "healthFactor"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserConfiguration"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.UserConfigurationMap"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserEMode"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getVirtualUnderlyingBalance"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "interestRateStrategyAddress"; readonly type: "address"; }]; readonly name: "initReserve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: "provider"; readonly type: "address"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "collateralAsset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "debtAsset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "debtToCover"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "receiveAToken"; readonly type: "bool"; }]; readonly name: "liquidationCall"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "assets"; readonly type: "address[]"; }]; readonly name: "mintToTreasury"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "mintUnbacked"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly name: "repay"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }]; readonly name: "repayWithATokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "uint8"; readonly name: "permitV"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "permitR"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "permitS"; readonly type: "bytes32"; }]; readonly name: "repayWithPermit"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "rescueTokens"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "resetIsolationModeTotalDebt"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: "configuration"; readonly type: "tuple"; }]; readonly name: "setConfiguration"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint40"; readonly name: "until"; readonly type: "uint40"; }]; readonly name: "setLiquidationGracePeriod"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "rateStrategyAddress"; readonly type: "address"; }]; readonly name: "setReserveInterestRateStrategyAddress"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "categoryId"; readonly type: "uint8"; }]; readonly name: "setUserEMode"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "useAsCollateral"; readonly type: "bool"; }]; readonly name: "setUserUseReserveAsCollateral"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "supply"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "uint8"; readonly name: "permitV"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "permitR"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "permitS"; readonly type: "bytes32"; }]; readonly name: "supplyWithPermit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "syncIndexesState"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "syncRatesState"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "protocolFee"; readonly type: "uint256"; }]; readonly name: "updateBridgeProtocolFee"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint128"; readonly name: "flashLoanPremiumTotal"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "flashLoanPremiumToProtocol"; readonly type: "uint128"; }]; readonly name: "updateFlashloanPremiums"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "withdraw"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; readonly protocolDataProvider: { readonly address: "0x2d8A3C5677189723C4cB8873CfC9C8976FDF38Ac"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: "addressesProvider"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "ADDRESSES_PROVIDER"; readonly outputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getATokenTotalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllATokens"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "tokenAddress"; readonly type: "address"; }]; readonly internalType: "struct IPoolDataProvider.TokenData[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllReservesTokens"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "tokenAddress"; readonly type: "address"; }]; readonly internalType: "struct IPoolDataProvider.TokenData[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getDebtCeiling"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getDebtCeilingDecimals"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getFlashLoanEnabled"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getInterestRateStrategyAddress"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "irStrategyAddress"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getLiquidationProtocolFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveCaps"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "borrowCap"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "supplyCap"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveConfigurationData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "ltv"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidationThreshold"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidationBonus"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserveFactor"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "usageAsCollateralEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "borrowingEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "stableBorrowRateEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isActive"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isFrozen"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "unbacked"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "accruedToTreasuryScaled"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalAToken"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "averageStableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveEModeCategory"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveTokensAddresses"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "stableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getSiloedBorrowing"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getTotalDebt"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getUnbackedMintCap"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserReserveData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "currentATokenBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "principalStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "scaledVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly internalType: "uint40"; readonly name: "stableRateLastUpdated"; readonly type: "uint40"; }, { readonly internalType: "bool"; readonly name: "usageAsCollateralEnabled"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; }; readonly addressesProvider: { readonly address: "0xe20fCBdBfFC4Dd138cE8b2E6FBb6CB49777ad64D"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "string"; readonly name: "marketId"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "ACLAdminUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "ACLManagerUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "AddressSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "proxyAddress"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "oldImplementationAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newImplementationAddress"; readonly type: "address"; }]; readonly name: "AddressSetAsProxy"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "string"; readonly name: "oldMarketId"; readonly type: "string"; }, { readonly indexed: true; readonly internalType: "string"; readonly name: "newMarketId"; readonly type: "string"; }]; readonly name: "MarketIdSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PoolConfiguratorUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PoolDataProviderUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PoolUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PriceOracleSentinelUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PriceOracleUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "proxyAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "implementationAddress"; readonly type: "address"; }]; readonly name: "ProxyCreated"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "getACLAdmin"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getACLManager"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }]; readonly name: "getAddress"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getMarketId"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPool"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPoolConfigurator"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPoolDataProvider"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPriceOracle"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPriceOracleSentinel"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newAclAdmin"; readonly type: "address"; }]; readonly name: "setACLAdmin"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newAclManager"; readonly type: "address"; }]; readonly name: "setACLManager"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "setAddress"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "newImplementationAddress"; readonly type: "address"; }]; readonly name: "setAddressAsProxy"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "string"; readonly name: "newMarketId"; readonly type: "string"; }]; readonly name: "setMarketId"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPoolConfiguratorImpl"; readonly type: "address"; }]; readonly name: "setPoolConfiguratorImpl"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newDataProvider"; readonly type: "address"; }]; readonly name: "setPoolDataProvider"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPoolImpl"; readonly type: "address"; }]; readonly name: "setPoolImpl"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPriceOracle"; readonly type: "address"; }]; readonly name: "setPriceOracle"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPriceOracleSentinel"; readonly type: "address"; }]; readonly name: "setPriceOracleSentinel"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "transferOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; }; readonly compoundV3: { readonly usdc: { readonly address: "0xb125E6687d4313864e53df431d5425969c15Eb2F"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "governor"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "pauseGuardian"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "baseToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "baseTokenPriceFeed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "extensionDelegate"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "supplyKink"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateSlopeLow"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateSlopeHigh"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateBase"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowKink"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateSlopeLow"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateSlopeHigh"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateBase"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "storeFrontPriceFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "trackingIndexScale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingSupplySpeed"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingBorrowSpeed"; readonly type: "uint64"; }, { readonly internalType: "uint104"; readonly name: "baseMinForRewards"; readonly type: "uint104"; }, { readonly internalType: "uint104"; readonly name: "baseBorrowMin"; readonly type: "uint104"; }, { readonly internalType: "uint104"; readonly name: "targetReserves"; readonly type: "uint104"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint8"; readonly name: "decimals"; readonly type: "uint8"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometConfiguration.AssetConfig[]"; readonly name: "assetConfigs"; readonly type: "tuple[]"; }]; readonly internalType: "struct CometConfiguration.Configuration"; readonly name: "config"; readonly type: "tuple"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "Absurd"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "AlreadyInitialized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadAsset"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadDecimals"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadDiscount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadMinimum"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadPrice"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BorrowCFTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BorrowTooSmall"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InsufficientReserves"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidInt104"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidInt256"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt104"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt128"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt64"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LiquidateCFTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NegativeNumber"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NoSelfTransfer"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotCollateralized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotForSale"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotLiquidatable"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Paused"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SupplyCapExceeded"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TimestampTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TooManyAssets"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TooMuchSlippage"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TransferInFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TransferOutFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Unauthorized"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "collateralAbsorbed"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "usdValue"; readonly type: "uint256"; }]; readonly name: "AbsorbCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "basePaidOut"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "usdValue"; readonly type: "uint256"; }]; readonly name: "AbsorbDebt"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "buyer"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "collateralAmount"; readonly type: "uint256"; }]; readonly name: "BuyCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bool"; readonly name: "supplyPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "transferPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "withdrawPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "absorbPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "buyPaused"; readonly type: "bool"; }]; readonly name: "PauseAction"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Supply"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "SupplyCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Transfer"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "TransferCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Withdraw"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "WithdrawCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "WithdrawReserves"; readonly type: "event"; }, { readonly stateMutability: "payable"; readonly type: "fallback"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly internalType: "address[]"; readonly name: "accounts"; readonly type: "address[]"; }]; readonly name: "absorb"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "accrueAccount"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "approveThis"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseBorrowMin"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseMinForRewards"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseScale"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseToken"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTokenPriceFeed"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTrackingBorrowSpeed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTrackingSupplySpeed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowKink"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateBase"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateSlopeHigh"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateSlopeLow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "minAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }]; readonly name: "buyCollateral"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "decimals"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "extensionDelegate"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "i"; readonly type: "uint8"; }]; readonly name: "getAssetInfo"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "offset"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "scale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometCore.AssetInfo"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getAssetInfoByAddress"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "offset"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "scale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometCore.AssetInfo"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "utilization"; readonly type: "uint256"; }]; readonly name: "getBorrowRate"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: ""; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getCollateralReserves"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }]; readonly name: "getPrice"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReserves"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: ""; readonly type: "int256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "utilization"; readonly type: "uint256"; }]; readonly name: "getSupplyRate"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: ""; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getUtilization"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "governor"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }]; readonly name: "hasPermission"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "initializeStorage"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isAbsorbPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "isAllowed"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "isBorrowCollateralized"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isBuyPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "isLiquidatable"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isSupplyPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isTransferPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isWithdrawPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "liquidatorPoints"; readonly outputs: readonly [{ readonly internalType: "uint32"; readonly name: "numAbsorbs"; readonly type: "uint32"; }, { readonly internalType: "uint64"; readonly name: "numAbsorbed"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "approxSpend"; readonly type: "uint128"; }, { readonly internalType: "uint32"; readonly name: "_reserved"; readonly type: "uint32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "numAssets"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "supplyPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "transferPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "withdrawPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "absorbPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "buyPaused"; readonly type: "bool"; }]; readonly name: "pause"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pauseGuardian"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }]; readonly name: "quoteCollateral"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "storeFrontPriceFactor"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supply"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supplyFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyKink"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateBase"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateSlopeHigh"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateSlopeLow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supplyTo"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "targetReserves"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "totalBorrow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "totalsCollateral"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "totalSupplyAsset"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "_reserved"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "trackingIndexScale"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transfer"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferAssetFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferFrom"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userBasic"; readonly outputs: readonly [{ readonly internalType: "int104"; readonly name: "principal"; readonly type: "int104"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingIndex"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingAccrued"; readonly type: "uint64"; }, { readonly internalType: "uint16"; readonly name: "assetsIn"; readonly type: "uint16"; }, { readonly internalType: "uint8"; readonly name: "_reserved"; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userCollateral"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "balance"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "_reserved"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userNonce"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdraw"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawReserves"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawTo"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; readonly weth: { readonly address: "0x46e6b214b524310239732D51387075E0e70970bf"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "governor"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "pauseGuardian"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "baseToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "baseTokenPriceFeed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "extensionDelegate"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "supplyKink"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateSlopeLow"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateSlopeHigh"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "supplyPerYearInterestRateBase"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowKink"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateSlopeLow"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateSlopeHigh"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowPerYearInterestRateBase"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "storeFrontPriceFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "trackingIndexScale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingSupplySpeed"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingBorrowSpeed"; readonly type: "uint64"; }, { readonly internalType: "uint104"; readonly name: "baseMinForRewards"; readonly type: "uint104"; }, { readonly internalType: "uint104"; readonly name: "baseBorrowMin"; readonly type: "uint104"; }, { readonly internalType: "uint104"; readonly name: "targetReserves"; readonly type: "uint104"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint8"; readonly name: "decimals"; readonly type: "uint8"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometConfiguration.AssetConfig[]"; readonly name: "assetConfigs"; readonly type: "tuple[]"; }]; readonly internalType: "struct CometConfiguration.Configuration"; readonly name: "config"; readonly type: "tuple"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "Absurd"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "AlreadyInitialized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadAsset"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadDecimals"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadDiscount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadMinimum"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BadPrice"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BorrowCFTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BorrowTooSmall"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InsufficientReserves"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidInt104"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidInt256"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt104"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt128"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUInt64"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LiquidateCFTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NegativeNumber"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NoSelfTransfer"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotCollateralized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotForSale"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotLiquidatable"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Paused"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SupplyCapExceeded"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TimestampTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TooManyAssets"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TooMuchSlippage"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TransferInFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TransferOutFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Unauthorized"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "collateralAbsorbed"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "usdValue"; readonly type: "uint256"; }]; readonly name: "AbsorbCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "basePaidOut"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "usdValue"; readonly type: "uint256"; }]; readonly name: "AbsorbDebt"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "buyer"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "collateralAmount"; readonly type: "uint256"; }]; readonly name: "BuyCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bool"; readonly name: "supplyPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "transferPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "withdrawPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "absorbPaused"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "buyPaused"; readonly type: "bool"; }]; readonly name: "PauseAction"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Supply"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "SupplyCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Transfer"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "TransferCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Withdraw"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "WithdrawCollateral"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "WithdrawReserves"; readonly type: "event"; }, { readonly stateMutability: "payable"; readonly type: "fallback"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "absorber"; readonly type: "address"; }, { readonly internalType: "address[]"; readonly name: "accounts"; readonly type: "address[]"; }]; readonly name: "absorb"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "accrueAccount"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "approveThis"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseBorrowMin"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseMinForRewards"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseScale"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseToken"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTokenPriceFeed"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTrackingBorrowSpeed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "baseTrackingSupplySpeed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowKink"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateBase"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateSlopeHigh"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowPerSecondInterestRateSlopeLow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "minAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }]; readonly name: "buyCollateral"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "decimals"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "extensionDelegate"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "i"; readonly type: "uint8"; }]; readonly name: "getAssetInfo"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "offset"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "scale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometCore.AssetInfo"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getAssetInfoByAddress"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint8"; readonly name: "offset"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "scale"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "borrowCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidateCollateralFactor"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "liquidationFactor"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "supplyCap"; readonly type: "uint128"; }]; readonly internalType: "struct CometCore.AssetInfo"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "utilization"; readonly type: "uint256"; }]; readonly name: "getBorrowRate"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: ""; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getCollateralReserves"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "priceFeed"; readonly type: "address"; }]; readonly name: "getPrice"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReserves"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: ""; readonly type: "int256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "utilization"; readonly type: "uint256"; }]; readonly name: "getSupplyRate"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: ""; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getUtilization"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "governor"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "manager"; readonly type: "address"; }]; readonly name: "hasPermission"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "initializeStorage"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isAbsorbPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "isAllowed"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "isBorrowCollateralized"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isBuyPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "isLiquidatable"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isSupplyPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isTransferPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isWithdrawPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "liquidatorPoints"; readonly outputs: readonly [{ readonly internalType: "uint32"; readonly name: "numAbsorbs"; readonly type: "uint32"; }, { readonly internalType: "uint64"; readonly name: "numAbsorbed"; readonly type: "uint64"; }, { readonly internalType: "uint128"; readonly name: "approxSpend"; readonly type: "uint128"; }, { readonly internalType: "uint32"; readonly name: "_reserved"; readonly type: "uint32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "numAssets"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "supplyPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "transferPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "withdrawPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "absorbPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "buyPaused"; readonly type: "bool"; }]; readonly name: "pause"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pauseGuardian"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }]; readonly name: "quoteCollateral"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "storeFrontPriceFactor"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supply"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supplyFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyKink"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateBase"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateSlopeHigh"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyPerSecondInterestRateSlopeLow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "supplyTo"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "targetReserves"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "totalBorrow"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "totalsCollateral"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "totalSupplyAsset"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "_reserved"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "trackingIndexScale"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transfer"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferAssetFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferFrom"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userBasic"; readonly outputs: readonly [{ readonly internalType: "int104"; readonly name: "principal"; readonly type: "int104"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingIndex"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "baseTrackingAccrued"; readonly type: "uint64"; }, { readonly internalType: "uint16"; readonly name: "assetsIn"; readonly type: "uint16"; }, { readonly internalType: "uint8"; readonly name: "_reserved"; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userCollateral"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "balance"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "_reserved"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userNonce"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdraw"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawReserves"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdrawTo"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; }; readonly compoundV2: { readonly mWeth: { readonly address: "0x628ff693426583D9a7FB391E54366292F509D457"; readonly abi: readonly [{ readonly constant: true; readonly inputs: readonly []; readonly name: "name"; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "spender"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "approve"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "repayAmount"; readonly type: "uint256"; }]; readonly name: "repayBorrow"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "reserveFactorMantissa"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "exchangeRateStored"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "src"; readonly type: "address"; }, { readonly name: "dst"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferFrom"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrower"; readonly type: "address"; }, { readonly name: "repayAmount"; readonly type: "uint256"; }]; readonly name: "repayBorrowBehalf"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "pendingAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "decimals"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly name: "balanceOfUnderlying"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "getCash"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newComptroller"; readonly type: "address"; }]; readonly name: "_setComptroller"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalBorrows"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "comptroller"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "reduceAmount"; readonly type: "uint256"; }]; readonly name: "_reduceReserves"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "initialExchangeRateMantissa"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "underlying"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "totalBorrowsCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "redeemAmount"; readonly type: "uint256"; }]; readonly name: "redeemUnderlying"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalReserves"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "symbol"; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceStored"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "mintAmount"; readonly type: "uint256"; }]; readonly name: "mint"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "accrueInterest"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "dst"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transfer"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "borrowIndex"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "liquidator"; readonly type: "address"; }, { readonly name: "borrower"; readonly type: "address"; }, { readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "seize"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newPendingAdmin"; readonly type: "address"; }]; readonly name: "_setPendingAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "exchangeRateCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "getAccountSnapshot"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrowAmount"; readonly type: "uint256"; }]; readonly name: "borrow"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "redeem"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }, { readonly name: "spender"; readonly type: "address"; }]; readonly name: "allowance"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "_acceptAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newInterestRateModel"; readonly type: "address"; }]; readonly name: "_setInterestRateModel"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "interestRateModel"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrower"; readonly type: "address"; }, { readonly name: "repayAmount"; readonly type: "uint256"; }, { readonly name: "cTokenCollateral"; readonly type: "address"; }]; readonly name: "liquidateBorrow"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "admin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newReserveFactorMantissa"; readonly type: "uint256"; }]; readonly name: "_setReserveFactor"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "isCToken"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly name: "underlying_"; readonly type: "address"; }, { readonly name: "comptroller_"; readonly type: "address"; }, { readonly name: "interestRateModel_"; readonly type: "address"; }, { readonly name: "initialExchangeRateMantissa_"; readonly type: "uint256"; }, { readonly name: "name_"; readonly type: "string"; }, { readonly name: "symbol_"; readonly type: "string"; }, { readonly name: "decimals_"; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "interestAccumulated"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "borrowIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "AccrueInterest"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "minter"; readonly type: "address"; }, { readonly indexed: false; readonly name: "mintAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "mintTokens"; readonly type: "uint256"; }]; readonly name: "Mint"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "redeemer"; readonly type: "address"; }, { readonly indexed: false; readonly name: "redeemAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "Redeem"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrowAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "accountBorrows"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "Borrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "payer"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "repayAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "accountBorrows"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "RepayBorrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "liquidator"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "repayAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly indexed: false; readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "LiquidateBorrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldPendingAdmin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newPendingAdmin"; readonly type: "address"; }]; readonly name: "NewPendingAdmin"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldAdmin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newAdmin"; readonly type: "address"; }]; readonly name: "NewAdmin"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldComptroller"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newComptroller"; readonly type: "address"; }]; readonly name: "NewComptroller"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldInterestRateModel"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newInterestRateModel"; readonly type: "address"; }]; readonly name: "NewMarketInterestRateModel"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldReserveFactorMantissa"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "newReserveFactorMantissa"; readonly type: "uint256"; }]; readonly name: "NewReserveFactor"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "admin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "reduceAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "newTotalReserves"; readonly type: "uint256"; }]; readonly name: "ReservesReduced"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "error"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "info"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "detail"; readonly type: "uint256"; }]; readonly name: "Failure"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Transfer"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly name: "spender"; readonly type: "address"; }, { readonly indexed: false; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Approval"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "accrualBlockTimestamp"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyRatePerTimestamp"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowRatePerTimestamp"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; }; readonly mUsdc: { readonly address: "0xEdc817A28E8B93B03976FBd4a3dDBc9f7D176c22"; readonly abi: readonly [{ readonly constant: true; readonly inputs: readonly []; readonly name: "name"; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "spender"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "approve"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "repayAmount"; readonly type: "uint256"; }]; readonly name: "repayBorrow"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "reserveFactorMantissa"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "exchangeRateStored"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "src"; readonly type: "address"; }, { readonly name: "dst"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferFrom"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrower"; readonly type: "address"; }, { readonly name: "repayAmount"; readonly type: "uint256"; }]; readonly name: "repayBorrowBehalf"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "pendingAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "decimals"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly name: "balanceOfUnderlying"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "getCash"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newComptroller"; readonly type: "address"; }]; readonly name: "_setComptroller"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalBorrows"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "comptroller"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "reduceAmount"; readonly type: "uint256"; }]; readonly name: "_reduceReserves"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "initialExchangeRateMantissa"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "underlying"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "totalBorrowsCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "redeemAmount"; readonly type: "uint256"; }]; readonly name: "redeemUnderlying"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalReserves"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "symbol"; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "borrowBalanceStored"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "mintAmount"; readonly type: "uint256"; }]; readonly name: "mint"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "accrueInterest"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "dst"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transfer"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "borrowIndex"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "liquidator"; readonly type: "address"; }, { readonly name: "borrower"; readonly type: "address"; }, { readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "seize"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newPendingAdmin"; readonly type: "address"; }]; readonly name: "_setPendingAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "exchangeRateCurrent"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly name: "getAccountSnapshot"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }, { readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrowAmount"; readonly type: "uint256"; }]; readonly name: "borrow"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "redeem"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }, { readonly name: "spender"; readonly type: "address"; }]; readonly name: "allowance"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "_acceptAdmin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newInterestRateModel"; readonly type: "address"; }]; readonly name: "_setInterestRateModel"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "interestRateModel"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "borrower"; readonly type: "address"; }, { readonly name: "repayAmount"; readonly type: "uint256"; }, { readonly name: "cTokenCollateral"; readonly type: "address"; }]; readonly name: "liquidateBorrow"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "admin"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly name: "newReserveFactorMantissa"; readonly type: "uint256"; }]; readonly name: "_setReserveFactor"; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "isCToken"; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly name: "underlying_"; readonly type: "address"; }, { readonly name: "comptroller_"; readonly type: "address"; }, { readonly name: "interestRateModel_"; readonly type: "address"; }, { readonly name: "initialExchangeRateMantissa_"; readonly type: "uint256"; }, { readonly name: "name_"; readonly type: "string"; }, { readonly name: "symbol_"; readonly type: "string"; }, { readonly name: "decimals_"; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "interestAccumulated"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "borrowIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "AccrueInterest"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "minter"; readonly type: "address"; }, { readonly indexed: false; readonly name: "mintAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "mintTokens"; readonly type: "uint256"; }]; readonly name: "Mint"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "redeemer"; readonly type: "address"; }, { readonly indexed: false; readonly name: "redeemAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "Redeem"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrowAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "accountBorrows"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "Borrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "payer"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "repayAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "accountBorrows"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "totalBorrows"; readonly type: "uint256"; }]; readonly name: "RepayBorrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "liquidator"; readonly type: "address"; }, { readonly indexed: false; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly name: "repayAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly indexed: false; readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "LiquidateBorrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldPendingAdmin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newPendingAdmin"; readonly type: "address"; }]; readonly name: "NewPendingAdmin"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldAdmin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newAdmin"; readonly type: "address"; }]; readonly name: "NewAdmin"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldComptroller"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newComptroller"; readonly type: "address"; }]; readonly name: "NewComptroller"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldInterestRateModel"; readonly type: "address"; }, { readonly indexed: false; readonly name: "newInterestRateModel"; readonly type: "address"; }]; readonly name: "NewMarketInterestRateModel"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "oldReserveFactorMantissa"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "newReserveFactorMantissa"; readonly type: "uint256"; }]; readonly name: "NewReserveFactor"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "admin"; readonly type: "address"; }, { readonly indexed: false; readonly name: "reduceAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "newTotalReserves"; readonly type: "uint256"; }]; readonly name: "ReservesReduced"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly name: "error"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "info"; readonly type: "uint256"; }, { readonly indexed: false; readonly name: "detail"; readonly type: "uint256"; }]; readonly name: "Failure"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Transfer"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly name: "spender"; readonly type: "address"; }, { readonly indexed: false; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Approval"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "accrualBlockTimestamp"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "supplyRatePerTimestamp"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "borrowRatePerTimestamp"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; }; readonly comptroller: { readonly address: "0xfBb21d0380beE3312B33c4353c8936a0F13EF26C"; readonly abi: readonly [{ readonly inputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "string"; readonly name: "action"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "pauseState"; readonly type: "bool"; }]; readonly name: "ActionPaused"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "string"; readonly name: "action"; readonly type: "string"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "pauseState"; readonly type: "bool"; }]; readonly name: "ActionPaused"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldCompAccrued"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newCompAccrued"; readonly type: "uint256"; }]; readonly name: "CompAccruedAdjusted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newSpeed"; readonly type: "uint256"; }]; readonly name: "CompBorrowSpeedUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "CompGranted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldCompReceivable"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newCompReceivable"; readonly type: "uint256"; }]; readonly name: "CompReceivableUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newSpeed"; readonly type: "uint256"; }]; readonly name: "CompSupplySpeedUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "contributor"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newSpeed"; readonly type: "uint256"; }]; readonly name: "ContributorCompSpeedUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "compDelta"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "compBorrowIndex"; readonly type: "uint256"; }]; readonly name: "DistributedBorrowerComp"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "supplier"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "compDelta"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "compSupplyIndex"; readonly type: "uint256"; }]; readonly name: "DistributedSupplierComp"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "error"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "info"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "detail"; readonly type: "uint256"; }]; readonly name: "Failure"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "MarketEntered"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "MarketExited"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }]; readonly name: "MarketListed"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newBorrowCap"; readonly type: "uint256"; }]; readonly name: "NewBorrowCap"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "oldBorrowCapGuardian"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "newBorrowCapGuardian"; readonly type: "address"; }]; readonly name: "NewBorrowCapGuardian"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldCloseFactorMantissa"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newCloseFactorMantissa"; readonly type: "uint256"; }]; readonly name: "NewCloseFactor"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldCollateralFactorMantissa"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newCollateralFactorMantissa"; readonly type: "uint256"; }]; readonly name: "NewCollateralFactor"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldLiquidationIncentiveMantissa"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newLiquidationIncentiveMantissa"; readonly type: "uint256"; }]; readonly name: "NewLiquidationIncentive"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "oldPauseGuardian"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "newPauseGuardian"; readonly type: "address"; }]; readonly name: "NewPauseGuardian"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract PriceOracle"; readonly name: "oldPriceOracle"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "contract PriceOracle"; readonly name: "newPriceOracle"; readonly type: "address"; }]; readonly name: "NewPriceOracle"; readonly type: "event"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract Unitroller"; readonly name: "unitroller"; readonly type: "address"; }]; readonly name: "_become"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "_borrowGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "_grantComp"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "_mintGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newBorrowCapGuardian"; readonly type: "address"; }]; readonly name: "_setBorrowCapGuardian"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "state"; readonly type: "bool"; }]; readonly name: "_setBorrowPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "newCloseFactorMantissa"; readonly type: "uint256"; }]; readonly name: "_setCloseFactor"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "newCollateralFactorMantissa"; readonly type: "uint256"; }]; readonly name: "_setCollateralFactor"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken[]"; readonly name: "cTokens"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "supplySpeeds"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "borrowSpeeds"; readonly type: "uint256[]"; }]; readonly name: "_setCompSpeeds"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "contributor"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "compSpeed"; readonly type: "uint256"; }]; readonly name: "_setContributorCompSpeed"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "newLiquidationIncentiveMantissa"; readonly type: "uint256"; }]; readonly name: "_setLiquidationIncentive"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken[]"; readonly name: "cTokens"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "newBorrowCaps"; readonly type: "uint256[]"; }]; readonly name: "_setMarketBorrowCaps"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "state"; readonly type: "bool"; }]; readonly name: "_setMintPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPauseGuardian"; readonly type: "address"; }]; readonly name: "_setPauseGuardian"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract PriceOracle"; readonly name: "newOracle"; readonly type: "address"; }]; readonly name: "_setPriceOracle"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "state"; readonly type: "bool"; }]; readonly name: "_setSeizePaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "state"; readonly type: "bool"; }]; readonly name: "_setTransferPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }]; readonly name: "_supportMarket"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "accountAssets"; readonly outputs: readonly [{ readonly internalType: "contract CToken"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "admin"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "allMarkets"; readonly outputs: readonly [{ readonly internalType: "contract CToken"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "borrowAmount"; readonly type: "uint256"; }]; readonly name: "borrowAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "borrowCapGuardian"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "borrowCaps"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "borrowGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "borrowAmount"; readonly type: "uint256"; }]; readonly name: "borrowVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }]; readonly name: "checkMembership"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "holder"; readonly type: "address"; }, { readonly internalType: "contract CToken[]"; readonly name: "cTokens"; readonly type: "address[]"; }]; readonly name: "claimComp"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "holders"; readonly type: "address[]"; }, { readonly internalType: "contract CToken[]"; readonly name: "cTokens"; readonly type: "address[]"; }, { readonly internalType: "bool"; readonly name: "borrowers"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "suppliers"; readonly type: "bool"; }]; readonly name: "claimComp"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "holder"; readonly type: "address"; }]; readonly name: "claimComp"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "closeFactorMantissa"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compAccrued"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compBorrowSpeeds"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compBorrowState"; readonly outputs: readonly [{ readonly internalType: "uint224"; readonly name: "index"; readonly type: "uint224"; }, { readonly internalType: "uint32"; readonly name: "block"; readonly type: "uint32"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compBorrowerIndex"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compContributorSpeeds"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "compInitialIndex"; readonly outputs: readonly [{ readonly internalType: "uint224"; readonly name: ""; readonly type: "uint224"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "compRate"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compReceivable"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compSpeeds"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compSupplierIndex"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compSupplySpeeds"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "compSupplyState"; readonly outputs: readonly [{ readonly internalType: "uint224"; readonly name: "index"; readonly type: "uint224"; }, { readonly internalType: "uint32"; readonly name: "block"; readonly type: "uint32"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "comptrollerImplementation"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "cTokens"; readonly type: "address[]"; }]; readonly name: "enterMarkets"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: ""; readonly type: "uint256[]"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenAddress"; readonly type: "address"; }]; readonly name: "exitMarket"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "affectedUsers"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }]; readonly name: "fixBadAccruals"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "getAccountLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "getAllMarkets"; readonly outputs: readonly [{ readonly internalType: "contract CToken[]"; readonly name: ""; readonly type: "address[]"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "getAssetsIn"; readonly outputs: readonly [{ readonly internalType: "contract CToken[]"; readonly name: ""; readonly type: "address[]"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "getBlockNumber"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "getCompAddress"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenModify"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "redeemTokens"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "borrowAmount"; readonly type: "uint256"; }]; readonly name: "getHypotheticalAccountLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "isComptroller"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "contract CToken"; readonly name: "cToken"; readonly type: "address"; }]; readonly name: "isDeprecated"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "lastContributorBlock"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenBorrowed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "repayAmount"; readonly type: "uint256"; }]; readonly name: "liquidateBorrowAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenBorrowed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "actualRepayAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "liquidateBorrowVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenBorrowed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "actualRepayAmount"; readonly type: "uint256"; }]; readonly name: "liquidateCalculateSeizeTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "liquidationIncentiveMantissa"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "markets"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "isListed"; readonly type: "bool"; }, { readonly internalType: "uint256"; readonly name: "collateralFactorMantissa"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "isComped"; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "maxAssets"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "minter"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "mintAmount"; readonly type: "uint256"; }]; readonly name: "mintAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "mintGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "minter"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "actualMintAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "mintTokens"; readonly type: "uint256"; }]; readonly name: "mintVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "oracle"; readonly outputs: readonly [{ readonly internalType: "contract PriceOracle"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "pauseGuardian"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "pendingAdmin"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "pendingComptrollerImplementation"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "proposal65FixExecuted"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "redeemer"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "redeemAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "redeemer"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "redeemAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "redeemTokens"; readonly type: "uint256"; }]; readonly name: "redeemVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "payer"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "repayAmount"; readonly type: "uint256"; }]; readonly name: "repayBorrowAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "payer"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "actualRepayAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "borrowerIndex"; readonly type: "uint256"; }]; readonly name: "repayBorrowVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenBorrowed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "seizeAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "seizeGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cTokenCollateral"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "cTokenBorrowed"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "borrower"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "seizeTokens"; readonly type: "uint256"; }]; readonly name: "seizeVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "transferTokens"; readonly type: "uint256"; }]; readonly name: "transferAllowed"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "transferGuardianPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "cToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "src"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dst"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "transferTokens"; readonly type: "uint256"; }]; readonly name: "transferVerify"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "contributor"; readonly type: "address"; }]; readonly name: "updateContributorRewards"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; }; readonly aaveV2: null; readonly aaveV3Optimizer: null; }; readonly 42161: { readonly aaveV3: { readonly pool: { readonly address: "0x794a61358D6845594F94dc1DB02A252b5b4814aD"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: "provider"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "backer"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "fee"; readonly type: "uint256"; }]; readonly name: "BackUnbacked"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "enum DataTypes.InterestRateMode"; readonly name: "interestRateMode"; readonly type: "uint8"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "borrowRate"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "Borrow"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "target"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "initiator"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "enum DataTypes.InterestRateMode"; readonly name: "interestRateMode"; readonly type: "uint8"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "premium"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "FlashLoan"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "totalDebt"; readonly type: "uint256"; }]; readonly name: "IsolationModeTotalDebtUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "collateralAsset"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "debtAsset"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "debtToCover"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidatedCollateralAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "receiveAToken"; readonly type: "bool"; }]; readonly name: "LiquidationCall"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "MintUnbacked"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountMinted"; readonly type: "uint256"; }]; readonly name: "MintedToTreasury"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "repayer"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "useATokens"; readonly type: "bool"; }]; readonly name: "Repay"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }]; readonly name: "ReserveDataUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }]; readonly name: "ReserveDataUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "ReserveUsedAsCollateralDisabled"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "ReserveUsedAsCollateralEnabled"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "Supply"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint8"; readonly name: "categoryId"; readonly type: "uint8"; }]; readonly name: "UserEModeSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "reserve"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Withdraw"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "ADDRESSES_PROVIDER"; readonly outputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "BRIDGE_PROTOCOL_FEE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "FLASHLOAN_PREMIUM_TOTAL"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "FLASHLOAN_PREMIUM_TO_PROTOCOL"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MAX_NUMBER_RESERVES"; readonly outputs: readonly [{ readonly internalType: "uint16"; readonly name: ""; readonly type: "uint16"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "POOL_REVISION"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "fee"; readonly type: "uint256"; }]; readonly name: "backUnbacked"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly name: "borrow"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }, { readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "ltv"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationThreshold"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationBonus"; readonly type: "uint16"; }, { readonly internalType: "string"; readonly name: "label"; readonly type: "string"; }]; readonly internalType: "struct DataTypes.EModeCategoryBaseConfiguration"; readonly name: "category"; readonly type: "tuple"; }]; readonly name: "configureEModeCategory"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }, { readonly internalType: "uint128"; readonly name: "borrowableBitmap"; readonly type: "uint128"; }]; readonly name: "configureEModeCategoryBorrowableBitmap"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }, { readonly internalType: "uint128"; readonly name: "collateralBitmap"; readonly type: "uint128"; }]; readonly name: "configureEModeCategoryCollateralBitmap"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "deposit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "dropReserve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "balanceFromBefore"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "balanceToBefore"; readonly type: "uint256"; }]; readonly name: "finalizeTransfer"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "receiverAddress"; readonly type: "address"; }, { readonly internalType: "address[]"; readonly name: "assets"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "interestRateModes"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "bytes"; readonly name: "params"; readonly type: "bytes"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "flashLoan"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "receiverAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "bytes"; readonly name: "params"; readonly type: "bytes"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "flashLoanSimple"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getBorrowLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getBridgeLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getConfiguration"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryBorrowableBitmap"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryCollateralBitmap"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryCollateralConfig"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "ltv"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationThreshold"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationBonus"; readonly type: "uint16"; }]; readonly internalType: "struct DataTypes.CollateralConfig"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryData"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "ltv"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationThreshold"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "liquidationBonus"; readonly type: "uint16"; }, { readonly internalType: "address"; readonly name: "priceSource"; readonly type: "address"; }, { readonly internalType: "string"; readonly name: "label"; readonly type: "string"; }]; readonly internalType: "struct DataTypes.EModeCategoryLegacy"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "id"; readonly type: "uint8"; }]; readonly name: "getEModeCategoryLabel"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getEModeLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFlashLoanLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getLiquidationGracePeriod"; readonly outputs: readonly [{ readonly internalType: "uint40"; readonly name: ""; readonly type: "uint40"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLiquidationLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPoolLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "id"; readonly type: "uint16"; }]; readonly name: "getReserveAddressById"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveData"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: "configuration"; readonly type: "tuple"; }, { readonly internalType: "uint128"; readonly name: "liquidityIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentLiquidityRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "variableBorrowIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentVariableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentStableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }, { readonly internalType: "uint16"; readonly name: "id"; readonly type: "uint16"; }, { readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "stableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "interestRateStrategyAddress"; readonly type: "address"; }, { readonly internalType: "uint128"; readonly name: "accruedToTreasury"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "unbacked"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "isolationModeTotalDebt"; readonly type: "uint128"; }]; readonly internalType: "struct DataTypes.ReserveDataLegacy"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveDataExtended"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: "configuration"; readonly type: "tuple"; }, { readonly internalType: "uint128"; readonly name: "liquidityIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentLiquidityRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "variableBorrowIndex"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "currentVariableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "__deprecatedStableBorrowRate"; readonly type: "uint128"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }, { readonly internalType: "uint16"; readonly name: "id"; readonly type: "uint16"; }, { readonly internalType: "uint40"; readonly name: "liquidationGracePeriodUntil"; readonly type: "uint40"; }, { readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "__deprecatedStableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "interestRateStrategyAddress"; readonly type: "address"; }, { readonly internalType: "uint128"; readonly name: "accruedToTreasury"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "unbacked"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "isolationModeTotalDebt"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "virtualUnderlyingBalance"; readonly type: "uint128"; }]; readonly internalType: "struct DataTypes.ReserveData"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveNormalizedIncome"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveNormalizedVariableDebt"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReservesCount"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReservesList"; readonly outputs: readonly [{ readonly internalType: "address[]"; readonly name: ""; readonly type: "address[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getSupplyLogic"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserAccountData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "totalCollateralBase"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalDebtBase"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "availableBorrowsBase"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentLiquidationThreshold"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "ltv"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "healthFactor"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserConfiguration"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.UserConfigurationMap"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserEMode"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getVirtualUnderlyingBalance"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: ""; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "interestRateStrategyAddress"; readonly type: "address"; }]; readonly name: "initReserve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: "provider"; readonly type: "address"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "collateralAsset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "debtAsset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "debtToCover"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "receiveAToken"; readonly type: "bool"; }]; readonly name: "liquidationCall"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "assets"; readonly type: "address[]"; }]; readonly name: "mintToTreasury"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "mintUnbacked"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly name: "repay"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }]; readonly name: "repayWithATokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "uint8"; readonly name: "permitV"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "permitR"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "permitS"; readonly type: "bytes32"; }]; readonly name: "repayWithPermit"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "rescueTokens"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "resetIsolationModeTotalDebt"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "data"; readonly type: "uint256"; }]; readonly internalType: "struct DataTypes.ReserveConfigurationMap"; readonly name: "configuration"; readonly type: "tuple"; }]; readonly name: "setConfiguration"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint40"; readonly name: "until"; readonly type: "uint40"; }]; readonly name: "setLiquidationGracePeriod"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "rateStrategyAddress"; readonly type: "address"; }]; readonly name: "setReserveInterestRateStrategyAddress"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "categoryId"; readonly type: "uint8"; }]; readonly name: "setUserEMode"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "useAsCollateral"; readonly type: "bool"; }]; readonly name: "setUserUseReserveAsCollateral"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }]; readonly name: "supply"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "referralCode"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "uint8"; readonly name: "permitV"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "permitR"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "permitS"; readonly type: "bytes32"; }]; readonly name: "supplyWithPermit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "syncIndexesState"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "syncRatesState"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "protocolFee"; readonly type: "uint256"; }]; readonly name: "updateBridgeProtocolFee"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint128"; readonly name: "flashLoanPremiumTotal"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "flashLoanPremiumToProtocol"; readonly type: "uint128"; }]; readonly name: "updateFlashloanPremiums"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "withdraw"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; readonly protocolDataProvider: { readonly address: "0x14496b405D62c24F91f04Cda1c69Dc526D56fDE5"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: "addressesProvider"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "ADDRESSES_PROVIDER"; readonly outputs: readonly [{ readonly internalType: "contract IPoolAddressesProvider"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getATokenTotalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllATokens"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "tokenAddress"; readonly type: "address"; }]; readonly internalType: "struct IPoolDataProvider.TokenData[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllReservesTokens"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "tokenAddress"; readonly type: "address"; }]; readonly internalType: "struct IPoolDataProvider.TokenData[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getDebtCeiling"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getDebtCeilingDecimals"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getFlashLoanEnabled"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getInterestRateStrategyAddress"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "irStrategyAddress"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getLiquidationProtocolFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "isPaused"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveCaps"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "borrowCap"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "supplyCap"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveConfigurationData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "ltv"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidationThreshold"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidationBonus"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserveFactor"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "usageAsCollateralEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "borrowingEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "stableBorrowRateEnabled"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isActive"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isFrozen"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "unbacked"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "accruedToTreasuryScaled"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalAToken"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "averageStableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityIndex"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableBorrowIndex"; readonly type: "uint256"; }, { readonly internalType: "uint40"; readonly name: "lastUpdateTimestamp"; readonly type: "uint40"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveEModeCategory"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getReserveTokensAddresses"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "aTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "stableDebtTokenAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "variableDebtTokenAddress"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getSiloedBorrowing"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getTotalDebt"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "getUnbackedMintCap"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserReserveData"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "currentATokenBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "principalStableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "scaledVariableDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "stableBorrowRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidityRate"; readonly type: "uint256"; }, { readonly internalType: "uint40"; readonly name: "stableRateLastUpdated"; readonly type: "uint40"; }, { readonly internalType: "bool"; readonly name: "usageAsCollateralEnabled"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; }; readonly addressesProvider: { readonly address: "0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb"; readonly abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "string"; readonly name: "marketId"; readonly type: "string"; }, { readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "ACLAdminUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "ACLManagerUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "AddressSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "proxyAddress"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "oldImplementationAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newImplementationAddress"; readonly type: "address"; }]; readonly name: "AddressSetAsProxy"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "string"; readonly name: "oldMarketId"; readonly type: "string"; }, { readonly indexed: true; readonly internalType: "string"; readonly name: "newMarketId"; readonly type: "string"; }]; readonly name: "MarketIdSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PoolConfiguratorUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PoolDataProviderUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PoolUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PriceOracleSentinelUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "oldAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "PriceOracleUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "proxyAddress"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "implementationAddress"; readonly type: "address"; }]; readonly name: "ProxyCreated"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "getACLAdmin"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getACLManager"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }]; readonly name: "getAddress"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getMarketId"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPool"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPoolConfigurator"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPoolDataProvider"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPriceOracle"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPriceOracleSentinel"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newAclAdmin"; readonly type: "address"; }]; readonly name: "setACLAdmin"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newAclManager"; readonly type: "address"; }]; readonly name: "setACLManager"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "newAddress"; readonly type: "address"; }]; readonly name: "setAddress"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "id"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "newImplementationAddress"; readonly type: "address"; }]; readonly name: "setAddressAsProxy"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "string"; readonly name: "newMarketId"; readonly type: "string"; }]; readonly name: "setMarketId"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPoolConfiguratorImpl"; readonly type: "address"; }]; readonly name: "setPoolConfiguratorImpl"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newDataProvider"; readonly type: "address"; }]; readonly name: "setPoolDataProvider"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPoolImpl"; readonly type: "address"; }]; readonly name: "setPoolImpl"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPriceOracle"; readonly type: "address"; }]; readonly name: "setPriceOracle"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newPriceOracleSentinel"; readonly type: "address"; }]; readonly name: "setPriceOracleSentinel"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "transferOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; }; }; readonly compoundV3: null; readonly compoundV2: null; readonly aaveV2: null; readonly aaveV3Optimizer: null; }; }; export declare const migrationAddresses: Record; export {};