export const EcoEarnABI = [ { inputs: [ { internalType: 'address', name: '_admin', type: 'address', }, { internalType: 'address', name: '_token', type: 'address', }, { internalType: 'uint256', name: '_cycleDuration', type: 'uint256', }, { internalType: 'uint256', name: '_maxSubmissionsPerCycle', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'constructor', }, { inputs: [], name: 'AccessControlBadConfirmation', type: 'error', }, { inputs: [ { internalType: 'address', name: 'account', type: 'address', }, { internalType: 'bytes32', name: 'neededRole', type: 'bytes32', }, ], name: 'AccessControlUnauthorizedAccount', type: 'error', }, { anonymous: false, inputs: [ { indexed: true, internalType: 'uint256', name: 'cycle', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'amount', type: 'uint256', }, ], name: 'ClaimedAllocation', type: 'event', }, { anonymous: false, inputs: [ { indexed: false, internalType: 'uint256', name: 'newDuration', type: 'uint256', }, ], name: 'CycleDurationUpdated', type: 'event', }, { anonymous: false, inputs: [ { indexed: false, internalType: 'uint256', name: 'cycleStartBlock', type: 'uint256', }, ], name: 'CycleStarted', type: 'event', }, { anonymous: false, inputs: [ { indexed: true, internalType: 'bytes32', name: 'role', type: 'bytes32', }, { indexed: true, internalType: 'bytes32', name: 'previousAdminRole', type: 'bytes32', }, { indexed: true, internalType: 'bytes32', name: 'newAdminRole', type: 'bytes32', }, ], name: 'RoleAdminChanged', type: 'event', }, { anonymous: false, inputs: [ { indexed: true, internalType: 'bytes32', name: 'role', type: 'bytes32', }, { indexed: true, internalType: 'address', name: 'account', type: 'address', }, { indexed: true, internalType: 'address', name: 'sender', type: 'address', }, ], name: 'RoleGranted', type: 'event', }, { anonymous: false, inputs: [ { indexed: true, internalType: 'bytes32', name: 'role', type: 'bytes32', }, { indexed: true, internalType: 'address', name: 'account', type: 'address', }, { indexed: true, internalType: 'address', name: 'sender', type: 'address', }, ], name: 'RoleRevoked', type: 'event', }, { anonymous: false, inputs: [ { indexed: true, internalType: 'address', name: 'participant', type: 'address', }, { indexed: false, internalType: 'uint256', name: 'amount', type: 'uint256', }, ], name: 'Submission', type: 'event', }, { inputs: [], name: 'DEFAULT_ADMIN_ROLE', outputs: [ { internalType: 'bytes32', name: '', type: 'bytes32', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint256', name: 'amount', type: 'uint256', }, ], name: 'claimAllocation', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [], name: 'cycleDuration', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'getCurrentCycle', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'getNextCycleBlock', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'bytes32', name: 'role', type: 'bytes32', }, ], name: 'getRoleAdmin', outputs: [ { internalType: 'bytes32', name: '', type: 'bytes32', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'bytes32', name: 'role', type: 'bytes32', }, { internalType: 'address', name: 'account', type: 'address', }, ], name: 'grantRole', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'bytes32', name: 'role', type: 'bytes32', }, { internalType: 'address', name: 'account', type: 'address', }, ], name: 'hasRole', outputs: [ { internalType: 'bool', name: '', type: 'bool', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'address', name: 'participant', type: 'address', }, ], name: 'isUserMaxSubmissionsReached', outputs: [ { internalType: 'bool', name: '', type: 'bool', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'lastCycleStartBlock', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'maxSubmissionsPerCycle', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'nextCycle', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'address', name: 'participant', type: 'address', }, { internalType: 'uint256', name: 'amount', type: 'uint256', }, ], name: 'registerValidSubmission', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'bytes32', name: 'role', type: 'bytes32', }, { internalType: 'address', name: 'callerConfirmation', type: 'address', }, ], name: 'renounceRole', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'bytes32', name: 'role', type: 'bytes32', }, { internalType: 'address', name: 'account', type: 'address', }, ], name: 'revokeRole', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], name: 'rewards', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], name: 'rewardsLeft', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint256', name: '_maxSubmissionsPerCycle', type: 'uint256', }, ], name: 'setMaxSubmissionsPerCycle', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint256', name: '_nextCycle', type: 'uint256', }, ], name: 'setNextCycle', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'address', name: '_token', type: 'address', }, ], name: 'setToken', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, { internalType: 'address', name: '', type: 'address', }, ], name: 'submissions', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'bytes4', name: 'interfaceId', type: 'bytes4', }, ], name: 'supportsInterface', outputs: [ { internalType: 'bool', name: '', type: 'bool', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'token', outputs: [ { internalType: 'contract IToken', name: '', type: 'address', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], name: 'totalSubmissions', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'triggerCycle', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint256', name: 'cycle', type: 'uint256', }, ], name: 'withdrawRewards', outputs: [], stateMutability: 'nonpayable', type: 'function', }, ] as const;