"use strict";
/* Autogenerated file. Do not edit manually. */
Object.defineProperty(exports, "__esModule", { value: true });
exports.ComptrollerV7Storage__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        name: "accountAssets",
        outputs: [
            {
                internalType: "contract VToken",
                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 VToken",
                name: "",
                type: "address",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "borrowCapGuardian",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "borrowCaps",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        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: true,
        inputs: [],
        name: "comptrollerLens",
        outputs: [
            {
                internalType: "contract ComptrollerLensInterface",
                name: "",
                type: "address",
            },
        ],
        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: [],
        name: "liquidatorContract",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        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: "isVenus",
                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: true,
        inputs: [],
        name: "minReleaseAmount",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "mintVAIGuardianPaused",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "mintedVAIs",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        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: true,
        inputs: [],
        name: "protocolPaused",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "releaseStartBlock",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "repayVAIGuardianPaused",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "treasuryAddress",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "treasuryGuardian",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "treasuryPercent",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "vaiController",
        outputs: [
            {
                internalType: "contract VAIControllerInterface",
                name: "",
                type: "address",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "vaiMintRate",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "vaiVaultAddress",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "venusAccrued",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "venusBorrowState",
        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: "venusBorrowerIndex",
        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: "venusSupplierIndex",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "venusSupplyState",
        outputs: [
            {
                internalType: "uint224",
                name: "index",
                type: "uint224",
            },
            {
                internalType: "uint32",
                name: "block",
                type: "uint32",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "venusVAIVaultRate",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
];
const _bytecode = "0x608060405234801561001057600080fd5b50610774806100206000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638a7dc1651161011a578063bec04f72116100ad578063dcfbc0c71161007c578063dcfbc0c71461049a578063e37d4b79146104a2578063e8755446146104c8578063f851a440146104d0578063fa6331d8146104d857610206565b8063bec04f7214610456578063c5f956af1461045e578063d3270f9914610466578063dce154491461046e57610206565b80639bb27d62116100e95780639bb27d62146103f0578063b2eafc39146103f8578063b8324c7c14610400578063bb82aa5e1461044e57610206565b80638a7dc165146103725780638e8f294b146103985780639254f5e5146103e057806394b2294b146103e857610206565b806341a18d2c1161019d57806352d84d1e1161016c57806352d84d1e14610335578063719f701b14610352578063765513831461035a5780637d172bd5146103625780637dc0d1d01461036a57610206565b806341a18d2c146102d1578063425fad58146102ff5780634a584432146103075780634ada90af1461032d57610206565b806324a3d622116101d957806324a3d6221461027f57806326782247146102875780632bc7e29e1461028f5780634088c73e146102b557610206565b806304ef9d581461020b57806308e0225c146102255780630db4b4e51461025357806321af45691461025b575b600080fd5b6102136104e0565b60408051918252519081900360200190f35b6102136004803603604081101561023b57600080fd5b506001600160a01b03813581169160200135166104e6565b610213610503565b610263610509565b604080516001600160a01b039092168252519081900360200190f35b610263610518565b610263610527565b610213600480360360208110156102a557600080fd5b50356001600160a01b0316610536565b6102bd610548565b604080519115158252519081900360200190f35b610213600480360360408110156102e757600080fd5b506001600160a01b0381358116916020013516610551565b6102bd61056e565b6102136004803603602081101561031d57600080fd5b50356001600160a01b031661057d565b61021361058f565b6102636004803603602081101561034b57600080fd5b5035610595565b6102136105bc565b6102bd6105c2565b6102636105d0565b6102636105df565b6102136004803603602081101561038857600080fd5b50356001600160a01b03166105ee565b6103be600480360360208110156103ae57600080fd5b50356001600160a01b0316610600565b6040805193151584526020840192909252151582820152519081900360600190f35b610263610626565b610213610635565b61026361063b565b61026361064a565b6104266004803603602081101561041657600080fd5b50356001600160a01b0316610659565b604080516001600160e01b03909316835263ffffffff90911660208301528051918290030190f35b610263610683565b610213610692565b610263610698565b6102636106a7565b6102636004803603604081101561048457600080fd5b506001600160a01b0381351690602001356106b6565b6102636106eb565b610426600480360360208110156104b857600080fd5b50356001600160a01b03166106fa565b610213610724565b61026361072a565b610213610739565b60225481565b601360209081526000928352604080842090915290825290205481565b601d5481565b601e546001600160a01b031681565b600a546001600160a01b031681565b6001546001600160a01b031681565b60166020526000908152604090205481565b60185460ff1681565b601260209081526000928352604080842090915290825290205481565b60185462010000900460ff1681565b601f6020526000908152604090205481565b60065481565b600d81815481106105a257fe5b6000918252602090912001546001600160a01b0316905081565b601c5481565b601854610100900460ff1681565b601b546001600160a01b031681565b6004546001600160a01b031681565b60146020526000908152604090205481565b60096020526000908152604090208054600182015460039092015460ff91821692911683565b6015546001600160a01b031681565b60075481565b6025546001600160a01b031681565b6020546001600160a01b031681565b6010602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b6002546001600160a01b031681565b60175481565b6021546001600160a01b031681565b6026546001600160a01b031681565b600860205281600052604060002081815481106106cf57fe5b6000918252602090912001546001600160a01b03169150829050565b6003546001600160a01b031681565b6011602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b60055481565b6000546001600160a01b031681565b601a548156fea265627a7a72315820411f75b8c2dd617476ff9dc92d3283c69cc701723d636c3b8ab8f59bda7fb6e664736f6c63430005100032";
const isSuperArgs = (xs) => xs.length > 1;
class ComptrollerV7Storage__factory extends ethers_1.ContractFactory {
    constructor(...args) {
        if (isSuperArgs(args)) {
            super(...args);
        }
        else {
            super(_abi, _bytecode, args[0]);
        }
    }
    deploy(overrides) {
        return super.deploy(overrides || {});
    }
    getDeployTransaction(overrides) {
        return super.getDeployTransaction(overrides || {});
    }
    attach(address) {
        return super.attach(address);
    }
    connect(signer) {
        return super.connect(signer);
    }
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.ComptrollerV7Storage__factory = ComptrollerV7Storage__factory;
ComptrollerV7Storage__factory.bytecode = _bytecode;
ComptrollerV7Storage__factory.abi = _abi;
