3.2k txs
3.2k calls
constructor
No constructor.
functions
distributionCount
viewfunction distributionCount() view returns (uint256)
distributions
viewfunction distributions(uint256) view returns (address token, bool isERC20, uint40 walletCount, uint40 claimedCount, uint176 amountPerClaim, uint40 startTime, uint40 endTime, address owner, uint40 refundedAt, bytes32 merkleRoot, string title, string ipfsCID)
getAmountClaimed
viewfunction getAmountClaimed(uint256 distributionId) view returns (uint256)
getAmountLeft
viewfunction getAmountLeft(uint256 distributionId) view returns (uint256)
getDistributionIdsByOwner
viewfunction getDistributionIdsByOwner(address owner, uint256 start, uint256 stop) view returns (uint256[] ids)
getDistributionIdsByToken
viewfunction getDistributionIdsByToken(address token, uint256 start, uint256 stop) view returns (uint256[] ids)
isClaimed
viewfunction isClaimed(uint256 distributionId, address wallet) view returns (bool)
isWhitelisted
viewfunction isWhitelisted(uint256 distributionId, address wallet, bytes32[] merkleProof) view returns (bool)
isWhitelistOnly
viewfunction isWhitelistOnly(uint256 distributionId) view returns (bool)
onERC1155Received
purefunction onERC1155Received(address, address, uint256, uint256, bytes) pure returns (bytes4)
claim
nonpayablefunction claim(uint256 distributionId, bytes32[] merkleProof)
createDistribution
nonpayablefunction createDistribution(address token, bool isERC20, uint176 amountPerClaim, uint40 walletCount, uint40 startTime, uint40 endTime, bytes32 merkleRoot, string title, string ipfsCID)
refund
nonpayablefunction refund(uint256 distributionId)
events
Claimed
event Claimed(uint256 indexed distributionId, address account)
Created
event Created(uint256 indexed distributionId, address indexed token, bool isERC20, uint40 startTime)
Refunded
event Refunded(uint256 indexed distributionId, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
MerkleDistributor__AlreadyClaimed
error MerkleDistributor__AlreadyClaimed()
MerkleDistributor__AlreadyRefunded
error MerkleDistributor__AlreadyRefunded()
MerkleDistributor__Finished
error MerkleDistributor__Finished()
MerkleDistributor__InvalidCaller
error MerkleDistributor__InvalidCaller()
MerkleDistributor__InvalidPaginationParameters
error MerkleDistributor__InvalidPaginationParameters()
MerkleDistributor__InvalidParams
error MerkleDistributor__InvalidParams(string param)
MerkleDistributor__InvalidProof
error MerkleDistributor__InvalidProof()
MerkleDistributor__NoClaimableTokensLeft
error MerkleDistributor__NoClaimableTokensLeft()
MerkleDistributor__NothingToRefund
error MerkleDistributor__NothingToRefund()
MerkleDistributor__NotStarted
error MerkleDistributor__NotStarted()
MerkleDistributor__PermissionDenied
error MerkleDistributor__PermissionDenied()
MerkleDistributor__Refunded
error MerkleDistributor__Refunded()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x608060405234801561001057600080fd5b50612473806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806361f66c081161008c578063c65c3d9511610066578063c65c3d95146101d9578063cf45236e146101e1578063d2ef0795146101f4578063f23a6e611461020757600080fd5b806361f66c081461019357806367e9327e146101a65780639fa08e6f146101c657600080fd5b80632f52ebb7116100bd5780632f52ebb7146101345780634487d3df1461014757806358c064f21461017257600080fd5b8063169a5027146100e45780631e4220001461010c578063278ecde11461011f575b600080fd5b6100f76100f2366004611b57565b610270565b60405190151581526020015b60405180910390f35b6100f761011a366004611be5565b6102a4565b61013261012d366004611b57565b610362565b005b610132610142366004611c3f565b610616565b61015a610155366004611b57565b610aef565b6040516101039c9b9a99989796959493929190611cf9565b610185610180366004611b57565b610d22565b604051908152602001610103565b6101326101a1366004611e3d565b610db9565b6101b96101b4366004611f45565b611395565b6040516101039190611f78565b6101b96101d4366004611f45565b611554565b600054610185565b6101856101ef366004611b57565b611702565b6100f7610202366004611fbc565b6117a5565b61023f610215366004612017565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610103565b60008060001b600083815481106102895761028961211b565b90600052602060002090600702016003015414159050919050565b6000610359838380806020026020016040519081016040528093929190818152602001838360200280828437600092018290525080549093508a9250821090506102f0576102f061211b565b9060005260206000209060070201600301548660405160200161033e919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b604051602081830303815290604052805190602001206117fb565b95945050505050565b80600081815481106103765761037661211b565b600091825260209091206007909102016002015473ffffffffffffffffffffffffffffffffffffffff1633146103d8576040517f37e55bac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008083815481106103ec576103ec61211b565b60009182526020909120600790910201600281015490915074010000000000000000000000000000000000000000900464ffffffffff161561045a576040517ffd3179be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061046584611702565b9050806000036104a1576040517ff89eb8c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002820180547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000004264ffffffffff1681029190911790915582540460ff161561052b57600282015482546105269173ffffffffffffffffffffffffffffffffffffffff918216911683611813565b6105d6565b815460028301546040517ff242432a00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91821660248201526000604482018190526064820185905260a0608483015260a482015291169063f242432a9060c401600060405180830381600087803b1580156105bd57600080fd5b505af11580156105d1573d6000803e3d6000fd5b505050505b837fb7c1f9298a18c36af08bd57eabbfbeb04695f24d0438f67614741ec15fb5c4a98260405161060891815260200190565b60405180910390a250505050565b600080848154811061062a5761062a61211b565b90600052602060002090600702019050428160010160169054906101000a900464ffffffffff1664ffffffffff161115610690576040517f7b48d49e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001810154427b0100000000000000000000000000000000000000000000000000000090910464ffffffffff1610156106f5576040517fe6e6750100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600281015474010000000000000000000000000000000000000000900464ffffffffff1615610750576040517f1b14e10700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260068201602052604090205460ff161561079c576040517f493ab40800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805464ffffffffff7501000000000000000000000000000000000000000000820481167a0100000000000000000000000000000000000000000000000000009092041610610816576040517fb48589d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600381015461085d57323314610858576040517fc8d83bfc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610904565b6108ce83838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060038301546040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b16602082015260340161033e565b610904576040517f88eccfa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600682016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915581548290601a9061097990849064ffffffffff7a01000000000000000000000000000000000000000000000000000090910416612179565b92506101000a81548164ffffffffff021916908364ffffffffff1602179055508060000160149054906101000a900460ff16156109f857600181015481546109f39173ffffffffffffffffffffffffffffffffffffffff90911690339075ffffffffffffffffffffffffffffffffffffffffffff16611813565b610abd565b805460018201546040517ff242432a00000000000000000000000000000000000000000000000000000000815230600482015233602482015260006044820181905275ffffffffffffffffffffffffffffffffffffffffffff909216606482015260a0608482015260a481019190915273ffffffffffffffffffffffffffffffffffffffff9091169063f242432a9060c401600060405180830381600087803b158015610aa457600080fd5b505af1158015610ab8573d6000803e3d6000fd5b505050505b60405133815284907f6aa3eac93d079e5e100b1029be716caa33586c96aa4baac390669fb5c2a2121290602001610608565b60008181548110610aff57600080fd5b60009182526020909120600790910201805460018201546002830154600384015460048501805473ffffffffffffffffffffffffffffffffffffffff80871698507401000000000000000000000000000000000000000080880460ff16987501000000000000000000000000000000000000000000890464ffffffffff908116997a010000000000000000000000000000000000000000000000000000900481169875ffffffffffffffffffffffffffffffffffffffffffff81169876010000000000000000000000000000000000000000000082048316987b0100000000000000000000000000000000000000000000000000000090920483169795811696949004909116939092610c119061219e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3d9061219e565b8015610c8a5780601f10610c5f57610100808354040283529160200191610c8a565b820191906000526020600020905b815481529060010190602001808311610c6d57829003601f168201915b505050505090806005018054610c9f9061219e565b80601f0160208091040260200160405190810160405280929190818152602001828054610ccb9061219e565b8015610d185780601f10610ced57610100808354040283529160200191610d18565b820191906000526020600020905b815481529060010190602001808311610cfb57829003601f168201915b505050505090508c565b60008060008381548110610d3857610d3861211b565b6000918252602090912060079091020180546001820154919250610d9a917a01000000000000000000000000000000000000000000000000000090910464ffffffffff169075ffffffffffffffffffffffffffffffffffffffffffff166121f1565b75ffffffffffffffffffffffffffffffffffffffffffff169392505050565b73ffffffffffffffffffffffffffffffffffffffff8b16610e3b576040517f948290d900000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f746f6b656e00000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b8875ffffffffffffffffffffffffffffffffffffffffffff16600003610ebd576040517f948290d900000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f616d6f756e74506572436c61696d0000000000000000000000000000000000006044820152606401610e32565b8764ffffffffff16600003610f2e576040517f948290d900000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f77616c6c6574436f756e740000000000000000000000000000000000000000006044820152606401610e32565b428664ffffffffff1611610f9e576040517f948290d900000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f656e6454696d65000000000000000000000000000000000000000000000000006044820152606401610e32565b8564ffffffffff168764ffffffffff1610611015576040517f948290d900000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f737461727454696d6500000000000000000000000000000000000000000000006044820152606401610e32565b600080546001908101808355828052829161102f91612232565b8154811061103f5761103f61211b565b906000526020600020906007020190508b8160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508a8160000160146101000a81548160ff021916908315150217905550888160000160156101000a81548164ffffffffff021916908364ffffffffff160217905550898160010160006101000a81548175ffffffffffffffffffffffffffffffffffffffffffff021916908375ffffffffffffffffffffffffffffffffffffffffffff160217905550878160010160166101000a81548164ffffffffff021916908364ffffffffff1602179055508681600101601b6101000a81548164ffffffffff021916908364ffffffffff160217905550338160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085816003018190555084848260040191826111c3929190612293565b50600581016111d3838583612293565b508a156112345761122f33306111f064ffffffffff8d168e6121f1565b75ffffffffffffffffffffffffffffffffffffffffffff168f73ffffffffffffffffffffffffffffffffffffffff16611899909392919063ffffffff16565b61131f565b8b73ffffffffffffffffffffffffffffffffffffffff1663f242432a333060008d64ffffffffff168f61126791906121f1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815273ffffffffffffffffffffffffffffffffffffffff9485166004820152939092166024840152604483015275ffffffffffffffffffffffffffffffffffffffffffff16606482015260a06084820152600060a482015260c401600060405180830381600087803b15801561130657600080fd5b505af115801561131a573d6000803e3d6000fd5b505050505b60005473ffffffffffffffffffffffffffffffffffffffff8d169061134690600190612232565b604080518e1515815264ffffffffff8c1660208201527f395503978abf0bf7dd838e941dea654d5feebe88da8c0ce0a4262ed458e812ff910160405180910390a3505050505050505050505050565b606081831015806113b057506127106113ae8484612232565b115b156113e7576040517ff6e0165300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054808311156113f6578092505b6000845b8481101561146a578673ffffffffffffffffffffffffffffffffffffffff166000828154811061142c5761142c61211b565b600091825260209091206002600790920201015473ffffffffffffffffffffffffffffffffffffffff1603611462578160010191505b6001016113fa565b508067ffffffffffffffff81111561148457611484611fe8565b6040519080825280602002602001820160405280156114ad578160200160208202803683370190505b5092506000855b85811015611549578773ffffffffffffffffffffffffffffffffffffffff16600082815481106114e6576114e661211b565b600091825260209091206002600790920201015473ffffffffffffffffffffffffffffffffffffffff1603611541578085838060010194508151811061152e5761152e61211b565b6020908102919091010152818314611549575b6001016114b4565b505050509392505050565b6060818310158061156f575061271061156d8484612232565b115b156115a6576040517ff6e0165300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054808311156115b5578092505b6000845b84811015611626578673ffffffffffffffffffffffffffffffffffffffff16600082815481106115eb576115eb61211b565b600091825260209091206007909102015473ffffffffffffffffffffffffffffffffffffffff160361161e578160010191505b6001016115b9565b508067ffffffffffffffff81111561164057611640611fe8565b604051908082528060200260200182016040528015611669578160200160208202803683370190505b5092506000855b85811015611549578773ffffffffffffffffffffffffffffffffffffffff16600082815481106116a2576116a261211b565b600091825260209091206007909102015473ffffffffffffffffffffffffffffffffffffffff16036116fa57808583806001019450815181106116e7576116e761211b565b6020908102919091010152818314611549575b600101611670565b600080600083815481106117185761171861211b565b6000918252602090912060079091020180549091506117779064ffffffffff7a010000000000000000000000000000000000000000000000000000820481169175010000000000000000000000000000000000000000009004166123ae565b6001820154610d9a9164ffffffffff169075ffffffffffffffffffffffffffffffffffffffffffff166121f1565b60008083815481106117b9576117b961211b565b6000918252602080832073ffffffffffffffffffffffffffffffffffffffff861684526006600790930201919091019052604090205460ff1690505b92915050565b60008261180885846118e5565b1490505b9392505050565b60405173ffffffffffffffffffffffffffffffffffffffff83811660248301526044820183905261189491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611932565b505050565b60405173ffffffffffffffffffffffffffffffffffffffff84811660248301528381166044830152606482018390526118df9186918216906323b872dd9060840161184d565b50505050565b600081815b845181101561192a57611916828683815181106119095761190961211b565b60200260200101516119c8565b915080611922816123cc565b9150506118ea565b509392505050565b600061195473ffffffffffffffffffffffffffffffffffffffff8416836119f4565b905080516000141580156119795750808060200190518101906119779190612404565b155b15611894576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610e32565b60008183106119e457600082815260208490526040902061180c565b5060009182526020526040902090565b606061180c83836000846000808573ffffffffffffffffffffffffffffffffffffffff168486604051611a279190612421565b60006040518083038185875af1925050503d8060008114611a64576040519150601f19603f3d011682016040523d82523d6000602084013e611a69565b606091505b5091509150611a79868383611a83565b9695505050505050565b606082611a9857611a9382611b12565b61180c565b8151158015611abc575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611b0b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610e32565b508061180c565b805115611b225780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600060208284031215611b6957600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611b9457600080fd5b919050565b60008083601f840112611bab57600080fd5b50813567ffffffffffffffff811115611bc357600080fd5b6020830191508360208260051b8501011115611bde57600080fd5b9250929050565b60008060008060608587031215611bfb57600080fd5b84359350611c0b60208601611b70565b9250604085013567ffffffffffffffff811115611c2757600080fd5b611c3387828801611b99565b95989497509550505050565b600080600060408486031215611c5457600080fd5b83359250602084013567ffffffffffffffff811115611c7257600080fd5b611c7e86828701611b99565b9497909650939450505050565b60005b83811015611ca6578181015183820152602001611c8e565b50506000910152565b60008151808452611cc7816020860160208601611c8b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8d1681528b1515602082015264ffffffffff8b811660408301528a16606082015275ffffffffffffffffffffffffffffffffffffffffffff89166080820152600061018064ffffffffff8a1660a084015264ffffffffff891660c084015273ffffffffffffffffffffffffffffffffffffffff881660e084015264ffffffffff87166101008401528561012084015280610140840152611db081840186611caf565b9050828103610160840152611dc58185611caf565b9f9e505050505050505050505050505050565b8015158114611b5457600080fd5b803564ffffffffff81168114611b9457600080fd5b60008083601f840112611e0d57600080fd5b50813567ffffffffffffffff811115611e2557600080fd5b602083019150836020828501011115611bde57600080fd5b60008060008060008060008060008060006101208c8e031215611e5f57600080fd5b611e688c611b70565b9a50611e7760208d0135611dd8565b60208c0135995060408c013575ffffffffffffffffffffffffffffffffffffffffffff81168114611ea757600080fd5b9850611eb560608d01611de6565b9750611ec360808d01611de6565b9650611ed160a08d01611de6565b955060c08c0135945067ffffffffffffffff8060e08e01351115611ef457600080fd5b611f048e60e08f01358f01611dfb565b90955093506101008d0135811015611f1b57600080fd5b50611f2d8d6101008e01358e01611dfb565b81935080925050509295989b509295989b9093969950565b600080600060608486031215611f5a57600080fd5b611f6384611b70565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b81811015611fb057835183529284019291840191600101611f94565b50909695505050505050565b60008060408385031215611fcf57600080fd5b82359150611fdf60208401611b70565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080600060a0868803121561202f57600080fd5b61203886611b70565b945061204660208701611b70565b93506040860135925060608601359150608086013567ffffffffffffffff8082111561207157600080fd5b818801915088601f83011261208557600080fd5b81358181111561209757612097611fe8565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156120dd576120dd611fe8565b816040528281528b60208487010111156120f657600080fd5b8260208601602083013760006020848301015280955050505050509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b64ffffffffff8181168382160190808211156121975761219761214a565b5092915050565b600181811c908216806121b257607f821691505b6020821081036121eb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b75ffffffffffffffffffffffffffffffffffffffffffff8281168282168181028316929181158285048214176122295761222961214a565b50505092915050565b818103818111156117f5576117f561214a565b601f82111561189457600081815260208120601f850160051c8101602086101561226c5750805b601f850160051c820191505b8181101561228b57828155600101612278565b505050505050565b67ffffffffffffffff8311156122ab576122ab611fe8565b6122bf836122b9835461219e565b83612245565b6000601f84116001811461231157600085156122db5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556123a7565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156123605786850135825560209485019460019092019101612340565b508682101561239b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b64ffffffffff8281168282160390808211156121975761219761214a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036123fd576123fd61214a565b5060010190565b60006020828403121561241657600080fd5b815161180c81611dd8565b60008251612433818460208701611c8b565b919091019291505056fea26469706673582212204b0ad37491f89968b885f031292652e79ef1a8453f43b2c63ead10fca846d97f64736f6c63430008140033