0 txs
1 call
constructor
constructor(address ownerAddress_)
functions
currentSeason
viewfunction currentSeason() view returns (uint256)
getSeasonInfo
viewfunction getSeasonInfo(uint256 season) view returns (address token, bytes32 merkleRoot, uint256 startTime, uint256 endTime, uint256 totalRewardAmount, uint256 claimedAmount, bool swept)
isClaimed
viewfunction isClaimed(uint256 season, address user) view returns (bool)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
seasons
viewfunction seasons(uint256) view returns (address token, bytes32 merkleRoot, uint256 startTime, uint256 endTime, uint256 totalRewardAmount, uint256 claimedAmount, bool swept)
acceptOwnership
nonpayablefunction acceptOwnership()
claim
nonpayablefunction claim(uint256 season, uint256 amount, bytes32[] merkleProof)
createSeason
nonpayablefunction createSeason(address token, bytes32 merkleRoot, uint256 durationTime, uint256 totalRewardAmount)
renounceOwnership
nonpayablefunction renounceOwnership()
sweep
nonpayablefunction sweep(uint256 season, address destination)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateSeasonEndTime
nonpayablefunction updateSeasonEndTime(uint256 season, uint256 newEndTime)
events
Claimed
event Claimed(uint256 indexed season, address indexed account, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
SeasonCreated
event SeasonCreated(uint256 indexed season, address token, bytes32 merkleRoot, uint256 startTime, uint256 endTime)
SeasonEndTimeUpdated
event SeasonEndTimeUpdated(uint256 indexed season, uint256 newEndTime)
SeasonSwept
event SeasonSwept(uint256 indexed season, address token, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
AlreadyClaimed
error AlreadyClaimed()
AlreadySwept
error AlreadySwept()
ClaimFailed
error ClaimFailed()
ExceedsTotalRewardAmount
error ExceedsTotalRewardAmount()
FailedInnerCall
error FailedInnerCall()
InvalidAmount
error InvalidAmount()
InvalidDestination
error InvalidDestination()
InvalidEndTime
error InvalidEndTime(uint256 endTime)
InvalidMerkleProofLength
error InvalidMerkleProofLength()
InvalidProof
error InvalidProof()
InvalidSeason
error InvalidSeason()
InvalidToken
error InvalidToken(address token)
NoRemainingRewards
error NoRemainingRewards()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SeasonEnded
error SeasonEnded()
SeasonNotActive
error SeasonNotActive(uint256 seasonId)
SeasonNotEnded
error SeasonNotEnded(uint256 seasonId)
creation bytecode
0x608060405234801561000f575f80fd5b5060405161152138038061152183398101604081905261002e916100d7565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b5050610104565b600180546001600160a01b031916905561008581610088565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100e7575f80fd5b81516001600160a01b03811681146100fd575f80fd5b9392505050565b611410806101115f395ff3fe608060405234801561000f575f80fd5b50600436106100da575f3560e01c8063ae0b51df11610088578063d2ef079511610063578063d2ef079514610249578063e30c39781461026c578063f2fde38b1461028a578063f5d709a11461029d575f80fd5b8063ae0b51df1461020c578063bcb396211461021f578063cbf9b84b14610236575f80fd5b806379ba5097116100b857806379ba5097146101b35780637d96bd3f146101bb5780638da5cb5b146101ce575f80fd5b80631bae2b6c146100de578063715018a6146101965780637514dd98146101a0575b5f80fd5b6101436100ec3660046111fa565b5f908152600260208190526040909120805460018201549282015460038301546004840154600585015460069095015473ffffffffffffffffffffffffffffffffffffffff9094169692949193909260ff90911690565b6040805173ffffffffffffffffffffffffffffffffffffffff90981688526020880196909652948601939093526060850191909152608084015260a0830152151560c082015260e0015b60405180910390f35b61019e610301565b005b61019e6101ae366004611211565b610314565b61019e61043d565b61019e6101c9366004611259565b6104b4565b5f5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161018d565b61019e61021a36600461128f565b6107e8565b61022860035481565b60405190815260200161018d565b61019e61024436600461130b565b610aac565b61025c61025736600461130b565b610cd6565b604051901515815260200161018d565b60015473ffffffffffffffffffffffffffffffffffffffff166101e7565b61019e610298366004611335565b610d12565b6101436102ab3660046111fa565b600260208190525f9182526040909120805460018201549282015460038301546004840154600585015460069095015473ffffffffffffffffffffffffffffffffffffffff909416959492939192909160ff1687565b610309610dc1565b6103125f610e13565b565b61031c610dc1565b5f828152600260205260409020821580610337575060035483115b1561036e576040517fd40820c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4282108061037f5750806003015482105b156103be576040517f82e42d11000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b80600301544211156103fc576040517f5188b8ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003810182905560405182815283907fbb10be91f3ad73b7d9b25d54d648efa16b7b8ad832116495accc355b97f19db59060200160405180910390a2505050565b600154339073ffffffffffffffffffffffffffffffffffffffff1681146104a8576040517f118cdaa700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016103b5565b6104b181610e13565b50565b6104bc610dc1565b73ffffffffffffffffffffffffffffffffffffffff8416610521576040517f961c9a4f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016103b5565b82158061052c575081155b80610535575080155b1561056c576040517fd40820c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380546001019055425f610581848361137b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091505f9073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa1580156105ee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610612919061138e565b905061063673ffffffffffffffffffffffffffffffffffffffff8816333087610e44565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9073ffffffffffffffffffffffffffffffffffffffff8916906370a0823190602401602060405180830381865afa1580156106a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c4919061138e565b90505f6106d183836113a5565b600380545f90815260026020819052604091829020805473ffffffffffffffffffffffffffffffffffffffff8f167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116178155600181018d9055908101899055808301889055600481018490556006810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690559154905192935090917fa8cb20ce9d3e4ca4b14b0c5a76137fb3a9662f9531bf6cf7e70433e1d1ea7b5b906107d4908d908d908b908b9073ffffffffffffffffffffffffffffffffffffffff94909416845260208401929092526040830152606082015260800190565b60405180910390a250505050505050505050565b5f848152600260205260409020841580610803575060035485115b1561083a576040517fd40820c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002015442108061084f5750806003015442115b15610889576040517f2feb0325000000000000000000000000000000000000000000000000000000008152600481018690526024016103b5565b6040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152603481018590525f906054016040516020818303038152906040528051906020012090506108eb8484846001015484610ed3565b610921576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f90815260078301602052604090205460ff161561096c576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600682015460ff16156109ab576040517fb05f1fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600401548583600501546109c0919061137b565b11156109f8576040517fc4ae08a300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f908152600783016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600583018054879290610a4590849061137b565b90915550508154610a6d9073ffffffffffffffffffffffffffffffffffffffff163387610f0b565b604051858152339087907f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269060200160405180910390a3505050505050565b610ab4610dc1565b5f828152600260205260409020821580610acf575060035483115b15610b06576040517fd40820c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600301544211610b46576040517f33590c48000000000000000000000000000000000000000000000000000000008152600481018490526024016103b5565b600681015460ff1615610b85576040517fb05f1fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610bd2576040517fac6b05f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81600501548260040154610be791906113a5565b9050805f03610c22576040517f0ab4af8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600482015460058301558154610c7c9073ffffffffffffffffffffffffffffffffffffffff168483610f0b565b81546040805173ffffffffffffffffffffffffffffffffffffffff90921682526020820183905285917f9a68d8fc4d0361fccfe3d30f9ed82f66d83ac863c9d01297913a7f26678ecaba910160405180910390a250505050565b5f82815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845260070190915290205460ff165b92915050565b610d1a610dc1565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610d7c5f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610312576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016103b5565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556104b181610f4e565b60405173ffffffffffffffffffffffffffffffffffffffff8481166024830152838116604483015260648201839052610ecd9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610fc2565b50505050565b5f8315610f03578360051b8501855b803580851160051b94855260209485185260405f209301818110610ee25750505b501492915050565b60405173ffffffffffffffffffffffffffffffffffffffff838116602483015260448201839052610f4991859182169063a9059cbb90606401610e86565b505050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f610fe373ffffffffffffffffffffffffffffffffffffffff841683611056565b905080515f1415801561100757508080602001905181019061100591906113b8565b155b15610f49576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016103b5565b606061106383835f61106a565b9392505050565b6060814710156110a8576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016103b5565b5f808573ffffffffffffffffffffffffffffffffffffffff1684866040516110d091906113d7565b5f6040518083038185875af1925050503d805f811461110a576040519150601f19603f3d011682016040523d82523d5f602084013e61110f565b606091505b509150915061111f868383611129565b9695505050505050565b60608261113e57611139826111b8565b611063565b8151158015611162575073ffffffffffffffffffffffffffffffffffffffff84163b155b156111b1576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016103b5565b5080611063565b8051156111c85780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6020828403121561120a575f80fd5b5035919050565b5f8060408385031215611222575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff81168114611254575f80fd5b919050565b5f805f806080858703121561126c575f80fd5b61127585611231565b966020860135965060408601359560600135945092505050565b5f805f80606085870312156112a2575f80fd5b8435935060208501359250604085013567ffffffffffffffff808211156112c7575f80fd5b818701915087601f8301126112da575f80fd5b8135818111156112e8575f80fd5b8860208260051b85010111156112fc575f80fd5b95989497505060200194505050565b5f806040838503121561131c575f80fd5b8235915061132c60208401611231565b90509250929050565b5f60208284031215611345575f80fd5b61106382611231565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610d0c57610d0c61134e565b5f6020828403121561139e575f80fd5b5051919050565b81810381811115610d0c57610d0c61134e565b5f602082840312156113c8575f80fd5b81518015158114611063575f80fd5b5f82515f5b818110156113f657602081860181015185830152016113dc565b505f92019182525091905056fea164736f6c6343000819000a0000000000000000000000006d83cac25cfacdc7035bed947b92b64e6a8b8090