0 txs
1 call
constructor
constructor(address _rewardToken)
functions
hasClaimed
viewfunction hasClaimed(uint256, address) view returns (bool)
merkleRoots
viewfunction merkleRoots(uint256) view returns (bytes32)
owner
viewfunction owner() view returns (address)
rewardToken
viewfunction rewardToken() view returns (address)
batchClaimRewards
nonpayablefunction batchClaimRewards(uint256[] poolIds, uint256[] amounts, bytes32[][] merkleProofs)
claimReward
nonpayablefunction claimReward(uint256 poolId, uint256 amount, bytes32[] merkleProof)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address token, uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
setBatchMerkleRoots
nonpayablefunction setBatchMerkleRoots(uint256[] poolIds, bytes32[] roots)
setMerkleRoot
nonpayablefunction setMerkleRoot(uint256 poolId, bytes32 merkleRoot)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
EmergencyWithdraw
event EmergencyWithdraw(address indexed token, uint256 amount)
MerkleRootSet
event MerkleRootSet(uint256 indexed poolId, bytes32 merkleRoot)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardClaimed
event RewardClaimed(uint256 indexed poolId, address indexed user, uint256 amount)
errors
AlreadyClaimed
error AlreadyClaimed()
ArrayLengthMismatch
error ArrayLengthMismatch()
InvalidAmount
error InvalidAmount()
InvalidProof
error InvalidProof()
InvalidToken
error InvalidToken()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
TransferFailed
error TransferFailed()
creation bytecode
0x60a060405234801561001057600080fd5b5060405161139838038061139883398101604081905261002f916100c4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610074565b50600180556001600160a01b03166080526100f4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d657600080fd5b81516001600160a01b03811681146100ed57600080fd5b9392505050565b60805161127b61011d600039600081816101ec0152818161058f0152610a7f015261127b6000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638da5cb5b11610081578063f2fde38b1161005b578063f2fde38b146101d4578063f7c618c1146101e7578063fa7503991461020e57600080fd5b80638da5cb5b1461016f57806395ccea67146101ae5780639821f5f2146101c157600080fd5b8063715018a6116100b2578063715018a6146100f657806371c5ecb1146100fe578063873f6f9e1461013157600080fd5b806310541d40146100ce57806318712c21146100e3575b600080fd5b6100e16100dc366004610ef0565b610221565b005b6100e16100f1366004610f8a565b61065d565b6100e16106b6565b61011e61010c366004610fac565b60026020526000908152604090205481565b6040519081526020015b60405180910390f35b61015f61013f366004610fee565b600360209081526000928352604080842090915290825290205460ff1681565b6040519015158152602001610128565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610128565b6100e16101bc36600461101a565b6106ca565b6100e16101cf366004611044565b6108cd565b6100e16101e2366004611097565b610b82565b6101897f000000000000000000000000000000000000000000000000000000000000000081565b6100e161021c3660046110b2565b610beb565b610229610d02565b84831415806102385750828114155b1561026f576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b86811015610556576003600089898481811061029157610291611112565b60209081029290920135835250818101929092526040908101600090812033825290925290205460ff16156102f2576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600088888381811061030657610306611112565b905060200201353388888581811061032057610320611112565b9050602002013560405160200161036f9392919092835260609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166020830152603482015260540190565b60405160208183030381529060405280519060200120905061041185858481811061039c5761039c611112565b90506020028101906103ae9190611141565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201829052506002935091508d90508c878181106103f5576103f5611112565b9050602002013581526020019081526020016000205483610d45565b610447576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600360008b8b8681811061045f5761045f611112565b602090810292909201358352508181019290925260409081016000908120338252909252902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558686838181106104c4576104c4611112565b90506020020135836104d691906111d8565b9250338989848181106104eb576104eb611112565b905060200201357f24b5efa61dd1cfc659205a97fb8ed868f3cb8c81922bab2b96423e5de1de2cb789898681811061052557610525611112565b9050602002013560405161053b91815260200190565b60405180910390a3508061054e816111eb565b915050610273565b506040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303816000875af11580156105ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106119190611223565b90508061064a576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505061065560018055565b505050505050565b610665610d5b565b600082815260026020526040908190208290555182907fb04b7d6145a7588fdcf339a22877d5965f861c171204fc37688058c5f6c06d3b906106aa9084815260200190565b60405180910390a25050565b6106be610d5b565b6106c86000610dae565b565b6106d2610d5b565b6106da610d02565b73ffffffffffffffffffffffffffffffffffffffff8216610727576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003610761576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600073ffffffffffffffffffffffffffffffffffffffff821663a9059cbb61079f60005473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018690526044016020604051808303816000875af1158015610811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108359190611223565b90508061086e576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff167f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd9695846040516108b691815260200190565b60405180910390a250506108c960018055565b5050565b6108d5610d02565b600084815260036020908152604080832033845290915290205460ff1615610929576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051602081018690527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b1691810191909152605481018490526000906074016040516020818303038152906040528051906020012090506109d183838080602002602001604051908101604052809392919081815260200183836020028082843760009201829052508a8152600260205260409020549250859150610d459050565b610a07576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600085815260036020908152604080832033808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810191909152602481018690527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190611223565b905080610b3a576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051858152339087907f24b5efa61dd1cfc659205a97fb8ed868f3cb8c81922bab2b96423e5de1de2cb79060200160405180910390a35050610b7c60018055565b50505050565b610b8a610d5b565b73ffffffffffffffffffffffffffffffffffffffff8116610bdf576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b610be881610dae565b50565b610bf3610d5b565b828114610c2c576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b83811015610cfb57828282818110610c4957610c49611112565b9050602002013560026000878785818110610c6657610c66611112565b90506020020135815260200190815260200160002081905550848482818110610c9157610c91611112565b905060200201357fb04b7d6145a7588fdcf339a22877d5965f861c171204fc37688058c5f6c06d3b848484818110610ccb57610ccb611112565b90506020020135604051610ce191815260200190565b60405180910390a280610cf3816111eb565b915050610c2f565b5050505050565b600260015403610d3e576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b600082610d528584610e23565b14949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106c8576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bd6565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081815b8451811015610e6857610e5482868381518110610e4757610e47611112565b6020026020010151610e72565b915080610e60816111eb565b915050610e28565b5090505b92915050565b6000818310610e8e576000828152602084905260409020610e9d565b60008381526020839052604090205b9392505050565b60008083601f840112610eb657600080fd5b50813567ffffffffffffffff811115610ece57600080fd5b6020830191508360208260051b8501011115610ee957600080fd5b9250929050565b60008060008060008060608789031215610f0957600080fd5b863567ffffffffffffffff80821115610f2157600080fd5b610f2d8a838b01610ea4565b90985096506020890135915080821115610f4657600080fd5b610f528a838b01610ea4565b90965094506040890135915080821115610f6b57600080fd5b50610f7889828a01610ea4565b979a9699509497509295939492505050565b60008060408385031215610f9d57600080fd5b50508035926020909101359150565b600060208284031215610fbe57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610fe957600080fd5b919050565b6000806040838503121561100157600080fd5b8235915061101160208401610fc5565b90509250929050565b6000806040838503121561102d57600080fd5b61103683610fc5565b946020939093013593505050565b6000806000806060858703121561105a57600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561107f57600080fd5b61108b87828801610ea4565b95989497509550505050565b6000602082840312156110a957600080fd5b610e9d82610fc5565b600080600080604085870312156110c857600080fd5b843567ffffffffffffffff808211156110e057600080fd5b6110ec88838901610ea4565b9096509450602087013591508082111561110557600080fd5b5061108b87828801610ea4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261117657600080fd5b83018035915067ffffffffffffffff82111561119157600080fd5b6020019150600581901b3603821315610ee957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610e6c57610e6c6111a9565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361121c5761121c6111a9565b5060010190565b60006020828403121561123557600080fd5b81518015158114610e9d57600080fdfea2646970667358221220d75a2a3af211fbaf38432be9a625caff56411751a4e18f399fde7c2ce148c44964736f6c634300081400330000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d9