0 txs
0 calls
constructor
constructor()
functions
currentIndex
viewfunction currentIndex() view returns (uint256)
currentMerkleRoot
viewfunction currentMerkleRoot() view returns (bytes32)
currentMerkleRootIndex
viewfunction currentMerkleRootIndex() view returns (uint256)
feeInBPS
viewfunction feeInBPS() view returns (uint256)
isClaimed
viewfunction isClaimed(uint256 index, address account) view returns (bool)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
protocolTreasury
viewfunction protocolTreasury() view returns (address)
token
viewfunction token() view returns (address)
userClaims
viewfunction userClaims(address user) view returns (uint256 lastClaimedIndex, uint256 cumulativeAmount)
claim
nonpayablefunction claim(uint256 index, address account, uint256 cumulativeAmount, bytes32[] merkleProof)
initialize
nonpayablefunction initialize(address token_, address _protocolTreasury, uint256 _feeInBPS)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setFeeInBPS
nonpayablefunction setFeeInBPS(uint256 _feeInBPS)
setMerkleRoot
nonpayablefunction setMerkleRoot(bytes32 _merkleRootToSet)
setProtocolTreasury
nonpayablefunction setProtocolTreasury(address _protocolTreasury)
setToken
nonpayablefunction setToken(address _token)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
Claimed
event Claimed(uint256 index, address account, uint256 amount)
Initialized
event Initialized(uint8 version)
MerkleRootSet
event MerkleRootSet(uint256 index, bytes32 currentMerkleRoot)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Unpaused
event Unpaused(address account)
errors
AlreadyClaimed
error AlreadyClaimed()
InvalidIndex
error InvalidIndex()
InvalidMerkleProof
error InvalidMerkleProof()
NoTokensToClaim
error NoTokensToClaim()
TransferFailed
error TransferFailed()
ZeroValueProvided
error ZeroValueProvided()
creation bytecode
0x608060405234801561000f575f80fd5b5061001861001d565b6100d9565b5f54610100900460ff16156100885760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146100d7575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61159d806100e65f395ff3fe608060405234801561000f575f80fd5b5060043610610163575f3560e01c8063803db96d116100c7578063d2ef07951161007d578063f0a3563c11610063578063f0a3563c146102b7578063f2fde38b146102f2578063fc0c546a14610305575f80fd5b8063d2ef079514610291578063ecccb71d146102a4575f80fd5b80638da5cb5b116100ad5780638da5cb5b146102615780639ea971901461027f578063c4278a1a14610288575f80fd5b8063803db96d146102145780638456cb5914610259575f80fd5b80633f4ba83a1161011c5780635c975abb116101025780635c975abb146101e2578063715018a6146101f95780637cb6475914610201575f80fd5b80633f4ba83a146101d15780634b9c1e0d146101d9575f80fd5b80631794bb3c1161014c5780631794bb3c1461018f57806326987b60146101a25780632e7ba6ef146101be575f80fd5b80630c5a61f814610167578063144fa6d71461017c575b5f80fd5b61017a610175366004611333565b610325565b005b61017a61018a366004611333565b6103c1565b61017a61019d36600461134c565b61045d565b6101ab609c5481565b6040519081526020015b60405180910390f35b61017a6101cc366004611385565b6106c1565b61017a610b22565b6101ab609a5481565b60655460ff165b60405190151581526020016101b5565b61017a610b34565b61017a61020f366004611414565b610b45565b6098546102349073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b5565b61017a610bfa565b60335473ffffffffffffffffffffffffffffffffffffffff16610234565b6101ab609b5481565b6101ab60995481565b6101e961029f36600461142b565b610c0a565b61017a6102b2366004611414565b610c74565b6102dd6102c5366004611333565b609d6020525f90815260409020805460019091015482565b604080519283526020830191909152016101b5565b61017a610300366004611333565b610c81565b6097546102349073ffffffffffffffffffffffffffffffffffffffff1681565b61032d610d38565b73ffffffffffffffffffffffffffffffffffffffff811661037a576040517fad3e811300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6103c9610d38565b73ffffffffffffffffffffffffffffffffffffffff8116610416576040517fad3e811300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b5f54610100900460ff161580801561047b57505f54600160ff909116105b806104945750303b15801561049457505f5460ff166001145b610525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610581575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff841615806105b8575073ffffffffffffffffffffffffffffffffffffffff8316155b156105ef576040517fad3e811300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105f7610db9565b6105ff610e57565b6097805473ffffffffffffffffffffffffffffffffffffffff8087167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556098805492861692909116919091179055609982905580156106bb575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6106c9610ef5565b609b54610702576040517fad3e811300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8415806107105750609c5485115b15610747576040517f63df817100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107518585610c0a565b15610788576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051602081018790527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087901b1691810191909152605481018490525f906074016040516020818303038152906040528051906020012090506108258383808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050609b549150849050610f62565b61085b576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff85165f908152609d602052604081206001015461088d9086611482565b9050805f036108c8576040517f0f3f861000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff86165f908152609d60205260408120888155600101869055609954612710906109069084611495565b61091091906114ac565b90505f61091d8284611482565b6097546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b811660048301526024820184905292935091169063a9059cbb906044016020604051808303815f875af1158015610995573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b991906114e4565b6109ef576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097546098546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810185905291169063a9059cbb906044016020604051808303815f875af1158015610a67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8b91906114e4565b610ac1576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518a815273ffffffffffffffffffffffffffffffffffffffff8a1660208201529081018490527f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269060600160405180910390a1505050505050505050565b610b2a610d38565b610b32610f77565b565b610b3c610d38565b610b325f610ff4565b610b4d610d38565b80610b84576040517fad3e811300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609b819055609a8054905f610b9883611503565b9091555050609c8054905f610bac83611503565b91905055507fb04b7d6145a7588fdcf339a22877d5965f861c171204fc37688058c5f6c06d3b609a54609b54604051610bef929190918252602082015260400190565b60405180910390a150565b610c02610d38565b610b3261106a565b5f825f03610c44576040517fad3e811300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff81165f908152609d60205260409020548211155b92915050565b610c7c610d38565b609955565b610c89610d38565b73ffffffffffffffffffffffffffffffffffffffff8116610d2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161051c565b610d3581610ff4565b50565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161051c565b5f54610100900460ff16610e4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161051c565b610b326110c5565b5f54610100900460ff16610eed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161051c565b610b32611164565b60655460ff1615610b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161051c565b5f82610f6e8584611224565b14949350505050565b610f7f611270565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b611072610ef5565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610fca3390565b5f54610100900460ff1661115b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161051c565b610b3233610ff4565b5f54610100900460ff166111fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161051c565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f81815b845181101561126857611254828683815181106112475761124761153a565b60200260200101516112dc565b91508061126081611503565b915050611228565b509392505050565b60655460ff16610b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161051c565b5f8183106112f6575f828152602084905260409020611304565b5f8381526020839052604090205b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461132e575f80fd5b919050565b5f60208284031215611343575f80fd5b6113048261130b565b5f805f6060848603121561135e575f80fd5b6113678461130b565b92506113756020850161130b565b9150604084013590509250925092565b5f805f805f60808688031215611399575f80fd5b853594506113a96020870161130b565b935060408601359250606086013567ffffffffffffffff808211156113cc575f80fd5b818801915088601f8301126113df575f80fd5b8135818111156113ed575f80fd5b8960208260051b8501011115611401575f80fd5b9699959850939650602001949392505050565b5f60208284031215611424575f80fd5b5035919050565b5f806040838503121561143c575f80fd5b8235915061144c6020840161130b565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610c6e57610c6e611455565b8082028115828204841417610c6e57610c6e611455565b5f826114df577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f602082840312156114f4575f80fd5b81518015158114611304575f80fd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361153357611533611455565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220fab97890f9b633f0c896ffa0745c1188ab63a67a0eb45639f31a438737ef1d2964736f6c63430008150033