"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.StrikeComptroller__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        inputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'constructor',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'string',
                name: 'action',
                type: 'string',
            },
            {
                indexed: false,
                internalType: 'bool',
                name: 'pauseState',
                type: 'bool',
            },
        ],
        name: 'ActionPaused',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'contributor',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newStrikeSpeed',
                type: 'uint256',
            },
        ],
        name: 'ContributorStrikeSpeedUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'borrower',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'strikeDelta',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'strikeBorrowIndex',
                type: 'uint256',
            },
        ],
        name: 'DistributedBorrowerStrike',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'supplier',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'strikeDelta',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'strikeSupplyIndex',
                type: 'uint256',
            },
        ],
        name: 'DistributedSupplierStrike',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'error',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'info',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'detail',
                type: 'uint256',
            },
        ],
        name: 'Failure',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'MarketEntered',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'MarketExited',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
        ],
        name: 'MarketListed',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'bool',
                name: 'isStriked',
                type: 'bool',
            },
        ],
        name: 'MarketStriked',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'oldCloseFactorMantissa',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newCloseFactorMantissa',
                type: 'uint256',
            },
        ],
        name: 'NewCloseFactor',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'oldCollateralFactorMantissa',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newCollateralFactorMantissa',
                type: 'uint256',
            },
        ],
        name: 'NewCollateralFactor',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'oldLiquidationIncentiveMantissa',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newLiquidationIncentiveMantissa',
                type: 'uint256',
            },
        ],
        name: 'NewLiquidationIncentive',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'oldMaxAssets',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newMaxAssets',
                type: 'uint256',
            },
        ],
        name: 'NewMaxAssets',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'oldPauseGuardian',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'newPauseGuardian',
                type: 'address',
            },
        ],
        name: 'NewPauseGuardian',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'contract PriceOracle',
                name: 'oldPriceOracle',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'contract PriceOracle',
                name: 'newPriceOracle',
                type: 'address',
            },
        ],
        name: 'NewPriceOracle',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'oldReserveGuardian',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'newReserveGuardian',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'oldReserveAddress',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'newReserveAddress',
                type: 'address',
            },
        ],
        name: 'NewReserveGuardian',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'oldStrikeRate',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newStrikeRate',
                type: 'uint256',
            },
        ],
        name: 'NewStrikeRate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'oldStrkStaking',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'newStrkStaking',
                type: 'address',
            },
        ],
        name: 'NewStrkStakingInfo',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newSpeed',
                type: 'uint256',
            },
        ],
        name: 'StrikeBorrowSpeedUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'recipient',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'StrikeGranted',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newSpeed',
                type: 'uint256',
            },
        ],
        name: 'StrikeSpeedUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newSpeed',
                type: 'uint256',
            },
        ],
        name: 'StrikeSupplySpeedUpdated',
        type: 'event',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'contract Unitroller',
                name: 'unitroller',
                type: 'address',
            },
        ],
        name: '_become',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: '_borrowGuardianPaused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sToken',
                type: 'address',
            },
        ],
        name: '_dropStrikeMarket',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'recipient',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: '_grantSTRK',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: '_mintGuardianPaused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'bool',
                name: 'state',
                type: 'bool',
            },
        ],
        name: '_setBorrowPaused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'uint256',
                name: 'newCloseFactorMantissa',
                type: 'uint256',
            },
        ],
        name: '_setCloseFactor',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'newCollateralFactorMantissa',
                type: 'uint256',
            },
        ],
        name: '_setCollateralFactor',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'contributor',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'strikeSpeed',
                type: 'uint256',
            },
        ],
        name: '_setContributorStrikeSpeed',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'uint256',
                name: 'newLiquidationIncentiveMantissa',
                type: 'uint256',
            },
        ],
        name: '_setLiquidationIncentive',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'uint256',
                name: 'newMaxAssets',
                type: 'uint256',
            },
        ],
        name: '_setMaxAssets',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'bool',
                name: 'state',
                type: 'bool',
            },
        ],
        name: '_setMintPaused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'newPauseGuardian',
                type: 'address',
            },
        ],
        name: '_setPauseGuardian',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'contract PriceOracle',
                name: 'newOracle',
                type: 'address',
            },
        ],
        name: '_setPriceOracle',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address payable',
                name: 'newReserveGuardian',
                type: 'address',
            },
            {
                internalType: 'address payable',
                name: 'newReserveAddress',
                type: 'address',
            },
        ],
        name: '_setReserveInfo',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'bool',
                name: 'state',
                type: 'bool',
            },
        ],
        name: '_setSeizePaused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'contract SToken[]',
                name: 'sToken',
                type: 'address[]',
            },
            {
                internalType: 'uint256[]',
                name: 'supplySpeeds',
                type: 'uint256[]',
            },
            {
                internalType: 'uint256[]',
                name: 'borrowSpeeds',
                type: 'uint256[]',
            },
        ],
        name: '_setStrikeSpeeds',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'newStrkStaking',
                type: 'address',
            },
        ],
        name: '_setStrkStakingInfo',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'bool',
                name: 'state',
                type: 'bool',
            },
        ],
        name: '_setTransferPaused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
        ],
        name: '_supportMarket',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        name: 'accountAssets',
        outputs: [
            {
                internalType: 'contract SToken',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'admin',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        name: 'allMarkets',
        outputs: [
            {
                internalType: 'contract SToken',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'borrower',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'borrowAmount',
                type: 'uint256',
            },
        ],
        name: 'borrowAllowed',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'borrowGuardianPaused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'borrower',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'borrowAmount',
                type: 'uint256',
            },
        ],
        name: 'borrowVerify',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
        ],
        name: 'canClaimStrikeBySuppling',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
            {
                internalType: 'contract SToken',
                name: 'sToken',
                type: 'address',
            },
        ],
        name: 'checkMembership',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address[]',
                name: 'holders',
                type: 'address[]',
            },
            {
                internalType: 'contract SToken[]',
                name: 'sTokens',
                type: 'address[]',
            },
            {
                internalType: 'bool',
                name: 'borrowers',
                type: 'bool',
            },
            {
                internalType: 'bool',
                name: 'suppliers',
                type: 'bool',
            },
        ],
        name: 'claimStrike',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'holder',
                type: 'address',
            },
        ],
        name: 'claimStrike',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'holder',
                type: 'address',
            },
            {
                internalType: 'contract SToken[]',
                name: 'sTokens',
                type: 'address[]',
            },
        ],
        name: 'claimStrike',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'closeFactorMantissa',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'comptrollerImplementation',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address[]',
                name: 'sTokens',
                type: 'address[]',
            },
        ],
        name: 'enterMarkets',
        outputs: [
            {
                internalType: 'uint256[]',
                name: '',
                type: 'uint256[]',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sTokenAddress',
                type: 'address',
            },
        ],
        name: 'exitMarket',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'getAccountLiquidity',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'getAllMarkets',
        outputs: [
            {
                internalType: 'contract SToken[]',
                name: '',
                type: 'address[]',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'getAssetsIn',
        outputs: [
            {
                internalType: 'contract SToken[]',
                name: '',
                type: 'address[]',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'getBlockNumber',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'sTokenModify',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'redeemTokens',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'borrowAmount',
                type: 'uint256',
            },
        ],
        name: 'getHypotheticalAccountLiquidity',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'getSTRKAddress',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'isComptroller',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'lastContributorBlock',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sTokenBorrowed',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'sTokenCollateral',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'liquidator',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'borrower',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'repayAmount',
                type: 'uint256',
            },
        ],
        name: 'liquidateBorrowAllowed',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sTokenBorrowed',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'sTokenCollateral',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'liquidator',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'borrower',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'actualRepayAmount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'seizeTokens',
                type: 'uint256',
            },
        ],
        name: 'liquidateBorrowVerify',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: 'sTokenBorrowed',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'sTokenCollateral',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'actualRepayAmount',
                type: 'uint256',
            },
        ],
        name: 'liquidateCalculateSeizeTokens',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'liquidationIncentiveMantissa',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'markets',
        outputs: [
            {
                internalType: 'bool',
                name: 'isListed',
                type: 'bool',
            },
            {
                internalType: 'uint256',
                name: 'collateralFactorMantissa',
                type: 'uint256',
            },
            {
                internalType: 'bool',
                name: 'isStriked',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'maxAssets',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'minter',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'mintAmount',
                type: 'uint256',
            },
        ],
        name: 'mintAllowed',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'mintGuardianPaused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'minter',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'actualMintAmount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'mintTokens',
                type: 'uint256',
            },
        ],
        name: 'mintVerify',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'oracle',
        outputs: [
            {
                internalType: 'contract PriceOracle',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'pauseGuardian',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'pendingAdmin',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'pendingComptrollerImplementation',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'redeemer',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'redeemTokens',
                type: 'uint256',
            },
        ],
        name: 'redeemAllowed',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'redeemer',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'redeemAmount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'redeemTokens',
                type: 'uint256',
            },
        ],
        name: 'redeemVerify',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'payer',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'borrower',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'repayAmount',
                type: 'uint256',
            },
        ],
        name: 'repayBorrowAllowed',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'payer',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'borrower',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'actualRepayAmount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'borrowerIndex',
                type: 'uint256',
            },
        ],
        name: 'repayBorrowVerify',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'reserveAddress',
        outputs: [
            {
                internalType: 'address payable',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'reserveGuardian',
        outputs: [
            {
                internalType: 'address payable',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sTokenCollateral',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'sTokenBorrowed',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'liquidator',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'borrower',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'seizeTokens',
                type: 'uint256',
            },
        ],
        name: 'seizeAllowed',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'seizeGuardianPaused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sTokenCollateral',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'sTokenBorrowed',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'liquidator',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'borrower',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'seizeTokens',
                type: 'uint256',
            },
        ],
        name: 'seizeVerify',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'strikeAccrued',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'strikeBorrowSpeeds',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'strikeBorrowState',
        outputs: [
            {
                internalType: 'uint224',
                name: 'index',
                type: 'uint224',
            },
            {
                internalType: 'uint32',
                name: 'block',
                type: 'uint32',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'strikeBorrowerIndex',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'strikeClaimThreshold',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'strikeContributorSpeeds',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'strikeInitialIndex',
        outputs: [
            {
                internalType: 'uint224',
                name: '',
                type: 'uint224',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'strikeRate',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'strikeSpeeds',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'strikeSupplierIndex',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'strikeSupplySpeeds',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'strikeSupplyState',
        outputs: [
            {
                internalType: 'uint224',
                name: 'index',
                type: 'uint224',
            },
            {
                internalType: 'uint32',
                name: 'block',
                type: 'uint32',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'strkStaking',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'src',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'dst',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'transferTokens',
                type: 'uint256',
            },
        ],
        name: 'transferAllowed',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'transferGuardianPaused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'sToken',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'src',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'dst',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'transferTokens',
                type: 'uint256',
            },
        ],
        name: 'transferVerify',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'contributor',
                type: 'address',
            },
        ],
        name: 'updateContributorRewards',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
];
class StrikeComptroller__factory {
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.StrikeComptroller__factory = StrikeComptroller__factory;
StrikeComptroller__factory.abi = _abi;
//# sourceMappingURL=StrikeComptroller__factory.js.map