"use strict";
/* Autogenerated file. Do not edit manually. */
Object.defineProperty(exports, "__esModule", { value: true });
exports.ComptrollerScenario__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        inputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "constructor",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
            {
                indexed: true,
                internalType: "enum ComptrollerTypes.Action",
                name: "action",
                type: "uint8",
            },
            {
                indexed: false,
                internalType: "bool",
                name: "pauseState",
                type: "bool",
            },
        ],
        name: "ActionPausedMarket",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "bool",
                name: "state",
                type: "bool",
            },
        ],
        name: "ActionProtocolPaused",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "approver",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "delegate",
                type: "address",
            },
            {
                indexed: false,
                internalType: "bool",
                name: "approved",
                type: "bool",
            },
        ],
        name: "DelegateUpdated",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "borrower",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "venusDelta",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "venusBorrowIndex",
                type: "uint256",
            },
        ],
        name: "DistributedBorrowerVenus",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "supplier",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "venusDelta",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "venusSupplyIndex",
                type: "uint256",
            },
        ],
        name: "DistributedSupplierVenus",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "DistributedVAIVaultVenus",
        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: true,
                internalType: "address",
                name: "borrower",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "vToken",
                type: "address",
            },
            {
                indexed: false,
                internalType: "bool",
                name: "enable",
                type: "bool",
            },
        ],
        name: "IsForcedLiquidationEnabledForUserUpdated",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "vToken",
                type: "address",
            },
            {
                indexed: false,
                internalType: "bool",
                name: "enable",
                type: "bool",
            },
        ],
        name: "IsForcedLiquidationEnabledUpdated",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "MarketEntered",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "MarketExited",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
        ],
        name: "MarketListed",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "vToken",
                type: "address",
            },
        ],
        name: "MarketUnlisted",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "address",
                name: "oldAccessControlAddress",
                type: "address",
            },
            {
                indexed: false,
                internalType: "address",
                name: "newAccessControlAddress",
                type: "address",
            },
        ],
        name: "NewAccessControl",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "newBorrowCap",
                type: "uint256",
            },
        ],
        name: "NewBorrowCap",
        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: true,
                internalType: "contract VToken",
                name: "vToken",
                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: "address",
                name: "oldComptrollerLens",
                type: "address",
            },
            {
                indexed: false,
                internalType: "address",
                name: "newComptrollerLens",
                type: "address",
            },
        ],
        name: "NewComptrollerLens",
        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: "address",
                name: "oldLiquidatorContract",
                type: "address",
            },
            {
                indexed: false,
                internalType: "address",
                name: "newLiquidatorContract",
                type: "address",
            },
        ],
        name: "NewLiquidatorContract",
        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: "contract IPrime",
                name: "oldPrimeToken",
                type: "address",
            },
            {
                indexed: false,
                internalType: "contract IPrime",
                name: "newPrimeToken",
                type: "address",
            },
        ],
        name: "NewPrimeToken",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "newSupplyCap",
                type: "uint256",
            },
        ],
        name: "NewSupplyCap",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "address",
                name: "oldTreasuryAddress",
                type: "address",
            },
            {
                indexed: false,
                internalType: "address",
                name: "newTreasuryAddress",
                type: "address",
            },
        ],
        name: "NewTreasuryAddress",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "address",
                name: "oldTreasuryGuardian",
                type: "address",
            },
            {
                indexed: false,
                internalType: "address",
                name: "newTreasuryGuardian",
                type: "address",
            },
        ],
        name: "NewTreasuryGuardian",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "uint256",
                name: "oldTreasuryPercent",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "newTreasuryPercent",
                type: "uint256",
            },
        ],
        name: "NewTreasuryPercent",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "contract VAIControllerInterface",
                name: "oldVAIController",
                type: "address",
            },
            {
                indexed: false,
                internalType: "contract VAIControllerInterface",
                name: "newVAIController",
                type: "address",
            },
        ],
        name: "NewVAIController",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "uint256",
                name: "oldVAIMintRate",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "newVAIMintRate",
                type: "uint256",
            },
        ],
        name: "NewVAIMintRate",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "vault_",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "releaseStartBlock_",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "releaseInterval_",
                type: "uint256",
            },
        ],
        name: "NewVAIVaultInfo",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "uint256",
                name: "oldVenusVAIVaultRate",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "newVenusVAIVaultRate",
                type: "uint256",
            },
        ],
        name: "NewVenusVAIVaultRate",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "oldXVS",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "newXVS",
                type: "address",
            },
        ],
        name: "NewXVSToken",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "oldXVSVToken",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "newXVSVToken",
                type: "address",
            },
        ],
        name: "NewXVSVToken",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "newSpeed",
                type: "uint256",
            },
        ],
        name: "VenusBorrowSpeedUpdated",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "recipient",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "VenusGranted",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "holder",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "VenusSeized",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "newSpeed",
                type: "uint256",
            },
        ],
        name: "VenusSupplySpeedUpdated",
        type: "event",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "contract Unitroller",
                name: "unitroller",
                type: "address",
            },
        ],
        name: "_become",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "recipient",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "_grantXVS",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "newAccessControlAddress",
                type: "address",
            },
        ],
        name: "_setAccessControl",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address[]",
                name: "markets_",
                type: "address[]",
            },
            {
                internalType: "enum ComptrollerTypes.Action[]",
                name: "actions_",
                type: "uint8[]",
            },
            {
                internalType: "bool",
                name: "paused_",
                type: "bool",
            },
        ],
        name: "_setActionsPaused",
        outputs: [],
        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 VToken",
                name: "vToken",
                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: "contract ComptrollerLensInterface",
                name: "comptrollerLens_",
                type: "address",
            },
        ],
        name: "_setComptrollerLens",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "vTokenBorrowed",
                type: "address",
            },
            {
                internalType: "bool",
                name: "enable",
                type: "bool",
            },
        ],
        name: "_setForcedLiquidation",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "borrower",
                type: "address",
            },
            {
                internalType: "address",
                name: "vTokenBorrowed",
                type: "address",
            },
            {
                internalType: "bool",
                name: "enable",
                type: "bool",
            },
        ],
        name: "_setForcedLiquidationForUser",
        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: "address",
                name: "newLiquidatorContract_",
                type: "address",
            },
        ],
        name: "_setLiquidatorContract",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "contract VToken[]",
                name: "vTokens",
                type: "address[]",
            },
            {
                internalType: "uint256[]",
                name: "newBorrowCaps",
                type: "uint256[]",
            },
        ],
        name: "_setMarketBorrowCaps",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "contract VToken[]",
                name: "vTokens",
                type: "address[]",
            },
            {
                internalType: "uint256[]",
                name: "newSupplyCaps",
                type: "uint256[]",
            },
        ],
        name: "_setMarketSupplyCaps",
        outputs: [],
        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: "contract IPrime",
                name: "_prime",
                type: "address",
            },
        ],
        name: "_setPrimeToken",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "bool",
                name: "state",
                type: "bool",
            },
        ],
        name: "_setProtocolPaused",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "newTreasuryGuardian",
                type: "address",
            },
            {
                internalType: "address",
                name: "newTreasuryAddress",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "newTreasuryPercent",
                type: "uint256",
            },
        ],
        name: "_setTreasuryData",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "contract VAIControllerInterface",
                name: "vaiController_",
                type: "address",
            },
        ],
        name: "_setVAIController",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "uint256",
                name: "newVAIMintRate",
                type: "uint256",
            },
        ],
        name: "_setVAIMintRate",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "vault_",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "releaseStartBlock_",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "minReleaseAmount_",
                type: "uint256",
            },
        ],
        name: "_setVAIVaultInfo",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "contract VToken[]",
                name: "vTokens",
                type: "address[]",
            },
            {
                internalType: "uint256[]",
                name: "supplySpeeds",
                type: "uint256[]",
            },
            {
                internalType: "uint256[]",
                name: "borrowSpeeds",
                type: "uint256[]",
            },
        ],
        name: "_setVenusSpeeds",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "uint256",
                name: "venusVAIVaultRate_",
                type: "uint256",
            },
        ],
        name: "_setVenusVAIVaultRate",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "xvs_",
                type: "address",
            },
        ],
        name: "_setXVSToken",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "xvsVToken_",
                type: "address",
            },
        ],
        name: "_setXVSVToken",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "contract VToken",
                name: "vToken",
                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 VToken",
                name: "",
                type: "address",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "market",
                type: "address",
            },
            {
                internalType: "enum ComptrollerTypes.Action",
                name: "action",
                type: "uint8",
            },
        ],
        name: "actionPaused",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        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: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "approvedDelegates",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "blockNumber",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "vToken",
                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: [],
        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: false,
        inputs: [
            {
                internalType: "address",
                name: "vToken",
                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: "account",
                type: "address",
            },
            {
                internalType: "contract VToken",
                name: "vToken",
                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 VToken[]",
                name: "vTokens",
                type: "address[]",
            },
            {
                internalType: "bool",
                name: "borrowers",
                type: "bool",
            },
            {
                internalType: "bool",
                name: "suppliers",
                type: "bool",
            },
            {
                internalType: "bool",
                name: "collateral",
                type: "bool",
            },
        ],
        name: "claimVenus",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "holder",
                type: "address",
            },
            {
                internalType: "contract VToken[]",
                name: "vTokens",
                type: "address[]",
            },
        ],
        name: "claimVenus",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "holder",
                type: "address",
            },
        ],
        name: "claimVenus",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address[]",
                name: "holders",
                type: "address[]",
            },
            {
                internalType: "contract VToken[]",
                name: "vTokens",
                type: "address[]",
            },
            {
                internalType: "bool",
                name: "borrowers",
                type: "bool",
            },
            {
                internalType: "bool",
                name: "suppliers",
                type: "bool",
            },
        ],
        name: "claimVenus",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "holder",
                type: "address",
            },
        ],
        name: "claimVenusAsCollateral",
        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: true,
        inputs: [],
        name: "comptrollerLens",
        outputs: [
            {
                internalType: "contract ComptrollerLensInterface",
                name: "",
                type: "address",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address[]",
                name: "vTokens",
                type: "address[]",
            },
        ],
        name: "enterMarkets",
        outputs: [
            {
                internalType: "uint256[]",
                name: "",
                type: "uint256[]",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "vTokenAddress",
                type: "address",
            },
        ],
        name: "exitMarket",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "uint256",
                name: "blocks",
                type: "uint256",
            },
        ],
        name: "fastForward",
        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 VToken[]",
                name: "",
                type: "address[]",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "getAssetsIn",
        outputs: [
            {
                internalType: "contract VToken[]",
                name: "",
                type: "address[]",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
            {
                internalType: "address",
                name: "vTokenModify",
                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: "getVAIAddress",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "getVenusMarkets",
        outputs: [
            {
                internalType: "address[]",
                name: "",
                type: "address[]",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "getXVSAddress",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "getXVSVTokenAddress",
        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: "pure",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "isForcedLiquidationEnabled",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "isForcedLiquidationEnabledForUser",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "vTokenBorrowed",
                type: "address",
            },
            {
                internalType: "address",
                name: "vTokenCollateral",
                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: "view",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "vTokenBorrowed",
                type: "address",
            },
            {
                internalType: "address",
                name: "vTokenCollateral",
                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: "vTokenBorrowed",
                type: "address",
            },
            {
                internalType: "address",
                name: "vTokenCollateral",
                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: [
            {
                internalType: "address",
                name: "vTokenCollateral",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "actualRepayAmount",
                type: "uint256",
            },
        ],
        name: "liquidateVAICalculateSeizeTokens",
        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: [],
        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: [
            {
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
        ],
        name: "membershipLength",
        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: false,
        inputs: [
            {
                internalType: "address",
                name: "vToken",
                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: [],
        name: "mintVAIGuardianPaused",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "vToken",
                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: [
            {
                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: "prime",
        outputs: [
            {
                internalType: "contract IPrime",
                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: false,
        inputs: [
            {
                internalType: "address",
                name: "vToken",
                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: "vToken",
                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: [],
        name: "refreshVenusSpeeds",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "releaseStartBlock",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "vToken",
                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: "vToken",
                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: "repayVAIGuardianPaused",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "vTokenCollateral",
                type: "address",
            },
            {
                internalType: "address",
                name: "vTokenBorrowed",
                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: false,
        inputs: [
            {
                internalType: "address[]",
                name: "holders",
                type: "address[]",
            },
            {
                internalType: "address",
                name: "recipient",
                type: "address",
            },
        ],
        name: "seizeVenus",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "vTokenCollateral",
                type: "address",
            },
            {
                internalType: "address",
                name: "vTokenBorrowed",
                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: false,
        inputs: [
            {
                internalType: "uint256",
                name: "number",
                type: "uint256",
            },
        ],
        name: "setBlockNumber",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "owner",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "setMintedVAIOf",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "vaiAddress_",
                type: "address",
            },
        ],
        name: "setVAIAddress",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "xvsAddress_",
                type: "address",
            },
        ],
        name: "setXVSAddress",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "supplyCaps",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "vToken",
                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: false,
        inputs: [
            {
                internalType: "address",
                name: "vToken",
                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: 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: false,
        inputs: [
            {
                internalType: "contract VToken",
                name: "vToken",
                type: "address",
            },
        ],
        name: "unlist",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "market",
                type: "address",
            },
        ],
        name: "unlistMarket",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            {
                internalType: "address",
                name: "delegate",
                type: "address",
            },
            {
                internalType: "bool",
                name: "approved",
                type: "bool",
            },
        ],
        name: "updateDelegate",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "vaiAddress",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        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: "venusBorrowSpeeds",
        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: [],
        name: "venusInitialIndex",
        outputs: [
            {
                internalType: "uint224",
                name: "",
                type: "uint224",
            },
        ],
        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: "venusSupplySpeeds",
        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",
    },
    {
        constant: true,
        inputs: [],
        name: "xvsAddress",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
];
const _bytecode = " ";
const isSuperArgs = (xs) => xs.length > 1;
class ComptrollerScenario__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.ComptrollerScenario__factory = ComptrollerScenario__factory;
ComptrollerScenario__factory.bytecode = _bytecode;
ComptrollerScenario__factory.abi = _abi;
