"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RenDarknodeRegistry__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: '_darknodeOperator',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'LogDarknodeDeregistered',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'contract IDarknodePayment',
                name: '_previousDarknodePayment',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'contract IDarknodePayment',
                name: '_nextDarknodePayment',
                type: 'address',
            },
        ],
        name: 'LogDarknodePaymentUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: '_darknodeOperator',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: '_amount',
                type: 'uint256',
            },
        ],
        name: 'LogDarknodeRefunded',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: '_darknodeOperator',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: '_bond',
                type: 'uint256',
            },
        ],
        name: 'LogDarknodeRegistered',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: '_darknodeOperator',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: '_challenger',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: '_percentage',
                type: 'uint256',
            },
        ],
        name: 'LogDarknodeSlashed',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: '_previousMinimumBond',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: '_nextMinimumBond',
                type: 'uint256',
            },
        ],
        name: 'LogMinimumBondUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: '_previousMinimumEpochInterval',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: '_nextMinimumEpochInterval',
                type: 'uint256',
            },
        ],
        name: 'LogMinimumEpochIntervalUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: '_previousMinimumPodSize',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: '_nextMinimumPodSize',
                type: 'uint256',
            },
        ],
        name: 'LogMinimumPodSizeUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'uint256',
                name: 'epochhash',
                type: 'uint256',
            },
        ],
        name: 'LogNewEpoch',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: '_previousSlasher',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: '_nextSlasher',
                type: 'address',
            },
        ],
        name: 'LogSlasherUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'previousOwner',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'newOwner',
                type: 'address',
            },
        ],
        name: 'OwnershipTransferred',
        type: 'event',
    },
    {
        constant: true,
        inputs: [],
        name: 'VERSION',
        outputs: [
            {
                internalType: 'string',
                name: '',
                type: 'string',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: '_token',
                type: 'address',
            },
        ],
        name: 'blacklistRecoverableToken',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [],
        name: 'claimOwnership',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [],
        name: 'claimStoreOwnership',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'currentEpoch',
        outputs: [
            {
                internalType: 'uint256',
                name: 'epochhash',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'blocktime',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'darknodePayment',
        outputs: [
            {
                internalType: 'contract IDarknodePayment',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'deregister',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'deregistrationInterval',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [],
        name: 'epoch',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'getDarknodeBond',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'getDarknodeOperator',
        outputs: [
            {
                internalType: 'address payable',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'getDarknodePublicKey',
        outputs: [
            {
                internalType: 'bytes',
                name: '',
                type: 'bytes',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_start',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_count',
                type: 'uint256',
            },
        ],
        name: 'getDarknodes',
        outputs: [
            {
                internalType: 'address[]',
                name: '',
                type: 'address[]',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_start',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_count',
                type: 'uint256',
            },
        ],
        name: 'getPreviousDarknodes',
        outputs: [
            {
                internalType: 'address[]',
                name: '',
                type: 'address[]',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'string',
                name: '_VERSION',
                type: 'string',
            },
            {
                internalType: 'contract RenToken',
                name: '_renAddress',
                type: 'address',
            },
            {
                internalType: 'contract DarknodeRegistryStore',
                name: '_storeAddress',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_minimumBond',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_minimumPodSize',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_minimumEpochIntervalSeconds',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_deregistrationIntervalSeconds',
                type: 'uint256',
            },
        ],
        name: 'initialize',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: '_nextOwner',
                type: 'address',
            },
        ],
        name: 'initialize',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'isDeregisterable',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'isDeregistered',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'isOwner',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'isPendingDeregistration',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'isPendingRegistration',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'isRefundable',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'isRefunded',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'isRegistered',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'isRegisteredInPreviousEpoch',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'minimumBond',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'minimumEpochInterval',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'minimumPodSize',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'nextMinimumBond',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'nextMinimumEpochInterval',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'nextMinimumPodSize',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'nextSlasher',
        outputs: [
            {
                internalType: 'contract IDarknodeSlasher',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'numDarknodes',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'numDarknodesNextEpoch',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'numDarknodesPreviousEpoch',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'owner',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'pendingOwner',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'previousEpoch',
        outputs: [
            {
                internalType: 'uint256',
                name: 'epochhash',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'blocktime',
                type: 'uint256',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: '_token',
                type: 'address',
            },
        ],
        name: 'recoverTokens',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
        ],
        name: 'refund',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: '_darknodeID',
                type: 'address',
            },
            {
                internalType: 'bytes',
                name: '_publicKey',
                type: 'bytes',
            },
        ],
        name: 'register',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'ren',
        outputs: [
            {
                internalType: 'contract RenToken',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [],
        name: 'renounceOwnership',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: '_guilty',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '_challenger',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_percentage',
                type: 'uint256',
            },
        ],
        name: 'slash',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'slasher',
        outputs: [
            {
                internalType: 'contract IDarknodeSlasher',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: true,
        inputs: [],
        name: 'store',
        outputs: [
            {
                internalType: 'contract DarknodeRegistryStore',
                name: '',
                type: 'address',
            },
        ],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'address',
                name: 'newOwner',
                type: 'address',
            },
        ],
        name: 'transferOwnership',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'contract DarknodeRegistryLogicV1',
                name: '_newOwner',
                type: 'address',
            },
        ],
        name: 'transferStoreOwnership',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'contract IDarknodePayment',
                name: '_darknodePayment',
                type: 'address',
            },
        ],
        name: 'updateDarknodePayment',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'uint256',
                name: '_nextMinimumBond',
                type: 'uint256',
            },
        ],
        name: 'updateMinimumBond',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'uint256',
                name: '_nextMinimumEpochInterval',
                type: 'uint256',
            },
        ],
        name: 'updateMinimumEpochInterval',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'uint256',
                name: '_nextMinimumPodSize',
                type: 'uint256',
            },
        ],
        name: 'updateMinimumPodSize',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        constant: false,
        inputs: [
            {
                internalType: 'contract IDarknodeSlasher',
                name: '_slasher',
                type: 'address',
            },
        ],
        name: 'updateSlasher',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
];
class RenDarknodeRegistry__factory {
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.RenDarknodeRegistry__factory = RenDarknodeRegistry__factory;
RenDarknodeRegistry__factory.abi = _abi;
//# sourceMappingURL=RenDarknodeRegistry__factory.js.map