"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AmpStaking__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        inputs: [
            {
                internalType: 'address',
                name: '_amp',
                type: 'address',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'constructor',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'operator',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'from_partition',
                type: 'bytes32',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'to_address',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'to_partition',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'value',
                type: 'uint256',
            },
        ],
        name: 'DirectTransfer',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'oldValue',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'newValue',
                type: 'address',
            },
        ],
        name: 'DirectTransfererUpdate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'uint256',
                name: 'newDate',
                type: 'uint256',
            },
        ],
        name: 'FallbackMechanismDateReset',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'oldValue',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'newValue',
                type: 'address',
            },
        ],
        name: 'FallbackPublisherUpdate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'rootHash',
                type: 'bytes32',
            },
            {
                indexed: true,
                internalType: 'uint256',
                name: 'maxSupplyNonceIncluded',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'setDate',
                type: 'uint256',
            },
        ],
        name: 'FallbackRootHashSet',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'supplier',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'partition',
                type: 'bytes32',
            },
            {
                indexed: true,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'FallbackWithdrawal',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'uint256',
                name: 'oldValue',
                type: 'uint256',
            },
            {
                indexed: true,
                internalType: 'uint256',
                name: 'newValue',
                type: 'uint256',
            },
        ],
        name: 'FallbackWithdrawalDelayUpdate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'oldValue',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'newValue',
                type: 'address',
            },
        ],
        name: 'OwnerUpdate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'authorizedAddress',
                type: 'address',
            },
        ],
        name: 'OwnershipTransferAuthorization',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'partition',
                type: 'bytes32',
            },
        ],
        name: 'PartitionAdded',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'oldValue',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'newValue',
                type: 'address',
            },
        ],
        name: 'PartitionManagerUpdate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'partition',
                type: 'bytes32',
            },
        ],
        name: 'PartitionRemoved',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'supplier',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'partition',
                type: 'bytes32',
            },
            {
                indexed: true,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'bytes',
                name: 'data',
                type: 'bytes',
            },
        ],
        name: 'ReleaseRequest',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'supplier',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'partition',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                indexed: true,
                internalType: 'uint256',
                name: 'nonce',
                type: 'uint256',
            },
        ],
        name: 'SupplyReceipt',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'supplier',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'partition',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                indexed: true,
                internalType: 'uint256',
                name: 'nonce',
                type: 'uint256',
            },
        ],
        name: 'SupplyRefund',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'supplier',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'partition',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                indexed: true,
                internalType: 'uint256',
                name: 'rootNonce',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'authorizedAccountNonce',
                type: 'uint256',
            },
        ],
        name: 'Withdrawal',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'oldValue',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'newValue',
                type: 'address',
            },
        ],
        name: 'WithdrawalLimitPublisherUpdate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'uint256',
                name: 'oldValue',
                type: 'uint256',
            },
            {
                indexed: true,
                internalType: 'uint256',
                name: 'newValue',
                type: 'uint256',
            },
        ],
        name: 'WithdrawalLimitUpdate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'oldValue',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'newValue',
                type: 'address',
            },
        ],
        name: 'WithdrawalPublisherUpdate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'rootHash',
                type: 'bytes32',
            },
            {
                indexed: true,
                internalType: 'uint256',
                name: 'nonce',
                type: 'uint256',
            },
        ],
        name: 'WithdrawalRootHashAddition',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'rootHash',
                type: 'bytes32',
            },
            {
                indexed: true,
                internalType: 'uint256',
                name: 'nonce',
                type: 'uint256',
            },
        ],
        name: 'WithdrawalRootHashRemoval',
        type: 'event',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: '_partition',
                type: 'bytes32',
            },
        ],
        name: 'addPartition',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: '_root',
                type: 'bytes32',
            },
            {
                internalType: 'uint256',
                name: '_nonce',
                type: 'uint256',
            },
            {
                internalType: 'bytes32[]',
                name: '_replacedRoots',
                type: 'bytes32[]',
            },
        ],
        name: 'addWithdrawalRoot',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'addressToCumulativeAmountWithdrawn',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'addressToWithdrawalNonce',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'amp',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'assumeOwnership',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_authorizedAddress',
                type: 'address',
            },
        ],
        name: 'authorizeOwnershipTransfer',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'authorizedNewOwner',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes4',
                name: '',
                type: 'bytes4',
            },
            {
                internalType: 'bytes32',
                name: '_partition',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '_to',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
            {
                internalType: 'bytes',
                name: '_data',
                type: 'bytes',
            },
            {
                internalType: 'bytes',
                name: '',
                type: 'bytes',
            },
        ],
        name: 'canReceive',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes4',
                name: '',
                type: 'bytes4',
            },
            {
                internalType: 'bytes32',
                name: '_partition',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: '_operator',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '_from',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_value',
                type: 'uint256',
            },
            {
                internalType: 'bytes',
                name: '',
                type: 'bytes',
            },
            {
                internalType: 'bytes',
                name: '_operatorData',
                type: 'bytes',
            },
        ],
        name: 'canTransfer',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'directTransferer',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'fallbackMaxIncludedSupplyNonce',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'fallbackPublisher',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'fallbackRoot',
        outputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'fallbackSetDate',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'fallbackWithdrawalDelaySeconds',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'maxWithdrawalRootNonce',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'int256',
                name: '_amount',
                type: 'int256',
            },
        ],
        name: 'modifyWithdrawalLimit',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        name: 'nonceToSupply',
        outputs: [
            {
                internalType: 'address',
                name: 'supplier',
                type: 'address',
            },
            {
                internalType: 'bytes32',
                name: 'partition',
                type: 'bytes32',
            },
            {
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'owner',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'partitionManager',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
        ],
        name: 'partitions',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: '_partition',
                type: 'bytes32',
            },
        ],
        name: 'removePartition',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32[]',
                name: '_roots',
                type: 'bytes32[]',
            },
        ],
        name: 'removeWithdrawalRoots',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: '_partition',
                type: 'bytes32',
            },
            {
                internalType: 'uint256',
                name: '_amount',
                type: 'uint256',
            },
            {
                internalType: 'bytes',
                name: '_data',
                type: 'bytes',
            },
        ],
        name: 'requestRelease',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'resetFallbackMechanismDate',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_newDirectTransferer',
                type: 'address',
            },
        ],
        name: 'setDirectTransferer',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_newFallbackPublisher',
                type: 'address',
            },
        ],
        name: 'setFallbackPublisher',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: '_root',
                type: 'bytes32',
            },
            {
                internalType: 'uint256',
                name: '_maxSupplyNonce',
                type: 'uint256',
            },
        ],
        name: 'setFallbackRoot',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '_newFallbackDelaySeconds',
                type: 'uint256',
            },
        ],
        name: 'setFallbackWithdrawalDelay',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_newPartitionManager',
                type: 'address',
            },
        ],
        name: 'setPartitionManager',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_newWithdrawalLimitPublisher',
                type: 'address',
            },
        ],
        name: 'setWithdrawalLimitPublisher',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_newWithdrawalPublisher',
                type: 'address',
            },
        ],
        name: 'setWithdrawalPublisher',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'supplyNonce',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes4',
                name: '',
                type: 'bytes4',
            },
            {
                internalType: 'bytes32',
                name: '_partition',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: '_operator',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '_to',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_value',
                type: 'uint256',
            },
            {
                internalType: 'bytes',
                name: '_data',
                type: 'bytes',
            },
            {
                internalType: 'bytes',
                name: '',
                type: 'bytes',
            },
        ],
        name: 'tokensReceived',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes4',
                name: '',
                type: 'bytes4',
            },
            {
                internalType: 'bytes32',
                name: '_partition',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: '_operator',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '_from',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '_to',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_value',
                type: 'uint256',
            },
            {
                internalType: 'bytes',
                name: '_data',
                type: 'bytes',
            },
            {
                internalType: 'bytes',
                name: '_operatorData',
                type: 'bytes',
            },
        ],
        name: 'tokensToTransfer',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'withdrawalLimit',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'withdrawalLimitPublisher',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'withdrawalPublisher',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
        ],
        name: 'withdrawalRootToNonce',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
];
class AmpStaking__factory {
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.AmpStaking__factory = AmpStaking__factory;
AmpStaking__factory.abi = _abi;
//# sourceMappingURL=AmpStaking__factory.js.map