198 txs
199 calls
constructor
constructor(address _token, bytes32 _merkleRoot, uint256 _claimStart)
functions
claimStart
viewfunction claimStart() view returns (uint256)
getClaimStatus
viewfunction getClaimStatus() view returns (bool isActive, uint256 timeUntilStart)
getContractInfo
viewfunction getContractInfo() view returns (address tokenAddress, bytes32 root, uint256 start, uint256 claimed, uint256 balance)
hasClaimed
viewfunction hasClaimed(address) view returns (bool)
merkleRoot
viewfunction merkleRoot() view returns (bytes32)
owner
viewfunction owner() view returns (address)
token
viewfunction token() view returns (address)
totalClaimed
viewfunction totalClaimed() view returns (uint256)
verifyClaim
viewfunction verifyClaim(address account, uint256 amount, bytes32[] merkleProof) view returns (bool)
claim
nonpayablefunction claim(uint256 amount, bytes32[] merkleProof)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address to, uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateClaimStart
nonpayablefunction updateClaimStart(uint256 _claimStart)
updateMerkleRoot
nonpayablefunction updateMerkleRoot(bytes32 _merkleRoot)
withdrawUnclaimed
nonpayablefunction withdrawUnclaimed(address to)
events
Claimed
event Claimed(address indexed account, uint256 amount)
ClaimStartUpdated
event ClaimStartUpdated(uint256 newStart)
MerkleRootUpdated
event MerkleRootUpdated(bytes32 oldRoot, bytes32 newRoot)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
UnclaimedWithdrawn
event UnclaimedWithdrawn(address indexed to, uint256 amount)
errors
AlreadyClaimed
error AlreadyClaimed()
ClaimNotStarted
error ClaimNotStarted()
InsufficientBalance
error InsufficientBalance()
InvalidProof
error InvalidProof()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
ZeroAddress
error ZeroAddress()
ZeroAmount
error ZeroAmount()
creation bytecode
0x60a060405234801561000f575f5ffd5b50604051611c27380380611c278339818101604052810190610031919061035f565b335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009991906103be565b60405180910390fd5b6100b1816101da60201b60201c565b50600180819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361011e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505081600281905550806005819055507ffd69edeceaf1d6832d935be1fba54ca93bf17e71520c6c9ffc08d6e9529f87575f5f1b836040516101939291906103e6565b60405180910390a17f100e80b0884182c579b706a15d9baca9e82a8d00ee6732d57a7012596206ac90816040516101ca919061041c565b60405180910390a1505050610435565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102c88261029f565b9050919050565b6102d8816102be565b81146102e2575f5ffd5b50565b5f815190506102f3816102cf565b92915050565b5f819050919050565b61030b816102f9565b8114610315575f5ffd5b50565b5f8151905061032681610302565b92915050565b5f819050919050565b61033e8161032c565b8114610348575f5ffd5b50565b5f8151905061035981610335565b92915050565b5f5f5f606084860312156103765761037561029b565b5b5f610383868287016102e5565b935050602061039486828701610318565b92505060406103a58682870161034b565b9150509250925092565b6103b8816102be565b82525050565b5f6020820190506103d15f8301846103af565b92915050565b6103e0816102f9565b82525050565b5f6040820190506103f95f8301856103d7565b61040660208301846103d7565b9392505050565b6104168161032c565b82525050565b5f60208201905061042f5f83018461040d565b92915050565b6080516117a26104855f395f818161035b0152818161042e015281816106d00152818161081101528181610991015281816109bb01528181610b3201528181610c060152610e8801526117a25ff3fe608060405234801561000f575f5ffd5b50600436106100fe575f3560e01c806395ccea6711610095578063d54ad2a111610064578063d54ad2a114610275578063f04d688f14610293578063f2fde38b146102b1578063fc0c546a146102cd576100fe565b806395ccea67146101ee5780639b77c21a1461020a578063aa2945db14610229578063b76f44f214610259576100fe565b8063715018a6116100d1578063715018a61461017457806373b2e80e1461017e5780637cc1f867146101ae5780638da5cb5b146101d0576100fe565b80630fadea30146101025780632eb4a7ab1461011e5780632f52ebb71461013c5780634783f0ef14610158575b5f5ffd5b61011c6004803603810190610117919061114f565b6102eb565b005b61012661051a565b6040516101339190611192565b60405180910390f35b6101566004803603810190610151919061123f565b610520565b005b610172600480360381019061016d91906112c6565b610908565b005b61017c61095a565b005b6101986004803603810190610193919061114f565b61096d565b6040516101a5919061130b565b60405180910390f35b6101b661098a565b6040516101c7959493929190611342565b60405180910390f35b6101d8610a62565b6040516101e59190611393565b60405180910390f35b610208600480360381019061020391906113ac565b610a89565b005b610212610ca5565b6040516102209291906113ea565b60405180910390f35b610243600480360381019061023e9190611411565b610cdb565b604051610250919061130b565b60405180910390f35b610273600480360381019061026e9190611482565b610db8565b005b61027d610e01565b60405161028a91906114ad565b60405180910390f35b61029b610e07565b6040516102a891906114ad565b60405180910390f35b6102cb60048036038101906102c6919061114f565b610e0d565b005b6102d5610e86565b6040516102e29190611521565b60405180910390f35b6102f3610eaa565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610358576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016103b29190611393565b602060405180830381865afa1580156103cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f1919061154e565b90505f810361042c576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610487929190611579565b6020604051808303815f875af11580156104a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c791906115ca565b508173ffffffffffffffffffffffffffffffffffffffff167fc5d5d49d3643f854a7e97877bf8747331618d252ffa31abb60a9afea9f6916938260405161050e91906114ad565b60405180910390a25050565b60025481565b610528610f31565b600554421015610564576040517fb0e9ce1e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f830361059d576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561061e576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f338460405160200161063292919061165a565b6040516020818303038152906040528051906020012090506106978383808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505060025483610f77565b6106cd576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107279190611393565b602060405180830381865afa158015610742573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610766919061154e565b9050848110156107a2576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508460045f82825461080891906116b2565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff1660e01b815260040161086a929190611579565b6020604051808303815f875af1158015610886573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108aa91906115ca565b503373ffffffffffffffffffffffffffffffffffffffff167fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a866040516108f191906114ad565b60405180910390a25050610903610f8d565b505050565b610910610eaa565b5f6002549050816002819055507ffd69edeceaf1d6832d935be1fba54ca93bf17e71520c6c9ffc08d6e9529f8757818360405161094e9291906116e5565b60405180910390a15050565b610962610eaa565b61096b5f610f96565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006002546005546004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a129190611393565b602060405180830381865afa158015610a2d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a51919061154e565b945094509450945094509091929394565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a91610eaa565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610af6576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8103610b2f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b899190611393565b602060405180830381865afa158015610ba4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc8919061154e565b905081811015610c04576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401610c5f929190611579565b6020604051808303815f875af1158015610c7b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9f91906115ca565b50505050565b5f5f5f429050600554811015610cce575f81600554610cc4919061170c565b9250925050610cd7565b60015f92509250505b9091565b5f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610d33575f9050610db0565b5f8585604051602001610d4792919061165a565b604051602081830303815290604052805190602001209050610dac8484808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505060025483610f77565b9150505b949350505050565b610dc0610eaa565b806005819055507f100e80b0884182c579b706a15d9baca9e82a8d00ee6732d57a7012596206ac9081604051610df691906114ad565b60405180910390a150565b60045481565b60055481565b610e15610eaa565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e7a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e8381610f96565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b610eb2611057565b73ffffffffffffffffffffffffffffffffffffffff16610ed0610a62565b73ffffffffffffffffffffffffffffffffffffffff1614610f2f57610ef3611057565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610f269190611393565b60405180910390fd5b565b600260015403610f6d576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b5f82610f83858461105e565b1490509392505050565b60018081905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f5f8290505f5f90505b84518110156110a457611095828683815181106110885761108761173f565b5b60200260200101516110af565b91508080600101915050611068565b508091505092915050565b5f8183106110c6576110c182846110d9565b6110d1565b6110d083836110d9565b5b905092915050565b5f825f528160205260405f20905092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61111e826110f5565b9050919050565b61112e81611114565b8114611138575f5ffd5b50565b5f8135905061114981611125565b92915050565b5f60208284031215611164576111636110ed565b5b5f6111718482850161113b565b91505092915050565b5f819050919050565b61118c8161117a565b82525050565b5f6020820190506111a55f830184611183565b92915050565b5f819050919050565b6111bd816111ab565b81146111c7575f5ffd5b50565b5f813590506111d8816111b4565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126111ff576111fe6111de565b5b8235905067ffffffffffffffff81111561121c5761121b6111e2565b5b602083019150836020820283011115611238576112376111e6565b5b9250929050565b5f5f5f60408486031215611256576112556110ed565b5b5f611263868287016111ca565b935050602084013567ffffffffffffffff811115611284576112836110f1565b5b611290868287016111ea565b92509250509250925092565b6112a58161117a565b81146112af575f5ffd5b50565b5f813590506112c08161129c565b92915050565b5f602082840312156112db576112da6110ed565b5b5f6112e8848285016112b2565b91505092915050565b5f8115159050919050565b611305816112f1565b82525050565b5f60208201905061131e5f8301846112fc565b92915050565b61132d81611114565b82525050565b61133c816111ab565b82525050565b5f60a0820190506113555f830188611324565b6113626020830187611183565b61136f6040830186611333565b61137c6060830185611333565b6113896080830184611333565b9695505050505050565b5f6020820190506113a65f830184611324565b92915050565b5f5f604083850312156113c2576113c16110ed565b5b5f6113cf8582860161113b565b92505060206113e0858286016111ca565b9150509250929050565b5f6040820190506113fd5f8301856112fc565b61140a6020830184611333565b9392505050565b5f5f5f5f60608587031215611429576114286110ed565b5b5f6114368782880161113b565b9450506020611447878288016111ca565b935050604085013567ffffffffffffffff811115611468576114676110f1565b5b611474878288016111ea565b925092505092959194509250565b5f60208284031215611497576114966110ed565b5b5f6114a4848285016111ca565b91505092915050565b5f6020820190506114c05f830184611333565b92915050565b5f819050919050565b5f6114e96114e46114df846110f5565b6114c6565b6110f5565b9050919050565b5f6114fa826114cf565b9050919050565b5f61150b826114f0565b9050919050565b61151b81611501565b82525050565b5f6020820190506115345f830184611512565b92915050565b5f81519050611548816111b4565b92915050565b5f60208284031215611563576115626110ed565b5b5f6115708482850161153a565b91505092915050565b5f60408201905061158c5f830185611324565b6115996020830184611333565b9392505050565b6115a9816112f1565b81146115b3575f5ffd5b50565b5f815190506115c4816115a0565b92915050565b5f602082840312156115df576115de6110ed565b5b5f6115ec848285016115b6565b91505092915050565b5f8160601b9050919050565b5f61160b826115f5565b9050919050565b5f61161c82611601565b9050919050565b61163461162f82611114565b611612565b82525050565b5f819050919050565b61165461164f826111ab565b61163a565b82525050565b5f6116658285611623565b6014820191506116758284611643565b6020820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6116bc826111ab565b91506116c7836111ab565b92508282019050808211156116df576116de611685565b5b92915050565b5f6040820190506116f85f830185611183565b6117056020830184611183565b9392505050565b5f611716826111ab565b9150611721836111ab565b925082820390508181111561173957611738611685565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220f5bd5417ac8cf6eb6b49dbd44ce7ebfb8cdad51595147244f5bc1f554d7cd95064736f6c634300081c0033000000000000000000000000c12e4d31e92cedc1ad4c8c23dbce2c5f7cb5299820865972243ada36a0974e82adc5784bfc73ae3363e4adb260cc0f39c23d7a8b0000000000000000000000000000000000000000000000000000000068751db5