"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MeshswapSinglePoolFactory__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        constant: false,
        inputs: [
            {
                name: 'newOperator',
                type: 'address',
            },
        ],
        name: 'changeOperator',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'user',
                type: 'address',
            },
            {
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'sendReward',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'token',
                type: 'address',
            },
            {
                name: 'user',
                type: 'address',
            },
            {
                name: 'insurance',
                type: 'address',
            },
        ],
        name: 'transferDebt',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'newInterestRateModel',
                type: 'address',
            },
        ],
        name: 'changeInterestRateModel',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'plusPoolFactory',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'nativeWithdrawer',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'token',
                type: 'address',
            },
            {
                name: 'newReserveFactor',
                type: 'uint256',
            },
        ],
        name: 'setPoolReserveFactor',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                name: 'idx',
                type: 'uint256',
            },
        ],
        name: 'getPoolAddressByIndex',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'token',
                type: 'address',
            },
            {
                name: 'user',
                type: 'address',
            },
            {
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'repay',
        outputs: [
            {
                name: '',
                type: 'uint256',
            },
        ],
        payable: true,
        stateMutability: 'payable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'token',
                type: 'address',
            },
            {
                name: 'plusPoolAddress',
                type: 'address',
            },
            {
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'repayInsurance',
        outputs: [
            {
                name: '',
                type: 'uint256',
            },
        ],
        payable: true,
        stateMutability: 'payable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'getPlusPoolFactory',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                name: 'token',
                type: 'address',
            },
            {
                name: 'user',
                type: 'address',
            },
            {
                name: 'poolAddress',
                type: 'address',
            },
        ],
        name: 'borrowBalanceInfo',
        outputs: [
            {
                name: '',
                type: 'uint256',
            },
            {
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'pools',
                type: 'address[]',
            },
            {
                name: 'rate',
                type: 'uint256[]',
            },
        ],
        name: 'changeMiningRate',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'token',
                type: 'address',
            },
            {
                name: 'user',
                type: 'address',
            },
            {
                name: 'poolAddress',
                type: 'address',
            },
        ],
        name: 'borrowBalanceCurrent',
        outputs: [
            {
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                name: '',
                type: 'uint256',
            },
        ],
        name: 'singlePools',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'token',
                type: 'address',
            },
            {
                name: 'user',
                type: 'address',
            },
            {
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'borrow',
        outputs: [
            {
                name: '',
                type: 'uint256',
            },
            {
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        name: 'singlePoolVault',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'version',
        outputs: [
            {
                name: '',
                type: 'string',
            },
        ],
        payable: false,
        stateMutability: 'pure',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'totalMined',
        outputs: [
            {
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'operator',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'governance',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'tokenAddress',
                type: 'address',
            },
            {
                name: 'b',
                type: 'bool',
            },
        ],
        name: 'setWithdrawActive',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: '_nextOwner',
                type: 'address',
            },
        ],
        name: 'changeNextOwner',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [],
        name: 'changeOwner',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'mining',
        outputs: [
            {
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        name: 'singlePoolExist',
        outputs: [
            {
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'nextOwner',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'getTotalMined',
        outputs: [
            {
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'newNativeWithdrawer',
                type: 'address',
            },
        ],
        name: 'changeNativeWithdrawer',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'owner',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'getPoolCount',
        outputs: [
            {
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'token',
                type: 'address',
            },
        ],
        name: 'createPool',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'newSinglePoolImpl',
                type: 'address',
            },
        ],
        name: 'setSinglePoolImpl',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                name: 'token',
                type: 'address',
            },
            {
                name: 'user',
                type: 'address',
            },
            {
                name: 'poolAddress',
                type: 'address',
            },
        ],
        name: 'borrowBalanceStored',
        outputs: [
            {
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'entered',
        outputs: [
            {
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'WETH',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'tokenAddress',
                type: 'address',
            },
            {
                name: 'b',
                type: 'bool',
            },
        ],
        name: 'setDepositActive',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'lastMined',
        outputs: [
            {
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'admin',
                type: 'address',
            },
            {
                name: 'token',
                type: 'address',
            },
            {
                name: 'reduceAmount',
                type: 'uint256',
            },
        ],
        name: 'reducePoolReserves',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'newPlusPoolFactory',
                type: 'address',
            },
        ],
        name: 'setPlusPoolFactory',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'singlePoolImpl',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: 'tokenAddress',
                type: 'address',
            },
            {
                name: 'newInterestRateModel',
                type: 'address',
            },
        ],
        name: 'setPoolInterestRateModel',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                name: '_owner',
                type: 'address',
            },
            {
                name: '_governance',
                type: 'address',
            },
            {
                name: '_singlePoolImpl',
                type: 'address',
            },
            {
                name: '_interestRateModel',
                type: 'address',
            },
        ],
        name: '__SinglePoolFactory_init',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'interestRateModel',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'mesh',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [],
        name: 'updateTotalMined',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                name: 'token',
                type: 'address',
            },
        ],
        name: 'getPoolAddressByToken',
        outputs: [
            {
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        payable: true,
        stateMutability: 'payable',
        type: 'fallback',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                name: 'nextOwner',
                type: 'address',
            },
        ],
        name: 'ChangeNextOwner',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                name: 'owner',
                type: 'address',
            },
        ],
        name: 'ChangeOwner',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                name: 'newOperator',
                type: 'address',
            },
        ],
        name: 'ChangeOperator',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                name: 'newInterestRateModel',
                type: 'address',
            },
        ],
        name: 'ChangeInterestRateModel',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                name: 'newNativeWithdrawer',
                type: 'address',
            },
        ],
        name: 'ChangeNativeWithdrawer',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                name: 'token',
                type: 'address',
            },
            {
                indexed: false,
                name: 'pool',
                type: 'address',
            },
            {
                indexed: false,
                name: 'exid',
                type: 'uint256',
            },
        ],
        name: 'CreatePool',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                name: 'poolAddress',
                type: 'address',
            },
            {
                indexed: false,
                name: 'b',
                type: 'bool',
            },
        ],
        name: 'SetDepositActive',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                name: 'poolAddress',
                type: 'address',
            },
            {
                indexed: false,
                name: 'b',
                type: 'bool',
            },
        ],
        name: 'SetWithdrawActive',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                name: 'pool',
                type: 'address',
            },
            {
                indexed: false,
                name: 'newInterestRateModel',
                type: 'address',
            },
        ],
        name: 'SetPoolInterestRateModel',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                name: '_mining',
                type: 'uint256',
            },
        ],
        name: 'ChangeMiningRate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                name: '_lastMined',
                type: 'uint256',
            },
            {
                indexed: false,
                name: '_totalMined',
                type: 'uint256',
            },
        ],
        name: 'UpdateLastMined',
        type: 'event',
    },
];
class MeshswapSinglePoolFactory__factory {
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.MeshswapSinglePoolFactory__factory = MeshswapSinglePoolFactory__factory;
MeshswapSinglePoolFactory__factory.abi = _abi;
//# sourceMappingURL=MeshswapSinglePoolFactory__factory.js.map