0 txs
1 call
constructor
constructor(address _signer, address _token, address _projectAdmin, address _vault, uint256 _fee)
functions
active
viewfunction active() view returns (bool)
claimed
viewfunction claimed(bytes32, address) view returns (uint256)
fee
viewfunction fee() view returns (uint256)
hasAllRoles
viewfunction hasAllRoles(address user, uint256 roles) view returns (bool)
hasAnyRole
viewfunction hasAnyRole(address user, uint256 roles) view returns (bool)
merkleConfiguration
viewfunction merkleConfiguration(bytes32) view returns (bytes32)
owner
viewfunction owner() view returns (address result)
ownershipHandoverExpiresAt
viewfunction ownershipHandoverExpiresAt(address pendingOwner) view returns (uint256 result)
PROJECT_ADMIN
viewfunction PROJECT_ADMIN() view returns (uint256)
rolesOf
viewfunction rolesOf(address user) view returns (uint256 roles)
signer
viewfunction signer() view returns (address)
token
viewfunction token() view returns (address)
vault
viewfunction vault() view returns (address)
cancelOwnershipHandover
payablefunction cancelOwnershipHandover() payable
claim
payablefunction claim(bytes32[] _proof, bytes _signature, uint256 _amount, address _onBehalfOf, bytes _extra) payable
claim
payablefunction claim(bytes32[] _proof, bytes _signature, uint256 _amount, address _onBehalfOf) payable
completeOwnershipHandover
payablefunction completeOwnershipHandover(address pendingOwner) payable
grantRoles
payablefunction grantRoles(address user, uint256 roles) payable
renounceOwnership
payablefunction renounceOwnership() payable
renounceRoles
payablefunction renounceRoles(uint256 roles) payable
requestOwnershipHandover
payablefunction requestOwnershipHandover() payable
revokeRoles
payablefunction revokeRoles(address user, uint256 roles) payable
setClaimRoot
nonpayablefunction setClaimRoot(bytes32 _claimRoot, bytes32 _configurator)
setFee
nonpayablefunction setFee(uint256 _fee)
setSigner
nonpayablefunction setSigner(address _signer)
setToken
nonpayablefunction setToken(address _token)
setVault
nonpayablefunction setVault(address _vault)
toggleActive
nonpayablefunction toggleActive()
transferOwnership
payablefunction transferOwnership(address newOwner) payable
withdrawFee
nonpayablefunction withdrawFee(address _recipient)
events
AirdropClaimed
event AirdropClaimed(address indexed account, bytes32 indexed root, uint256 amount)
FeeSet
event FeeSet(uint256 fee)
MerkleConfigurationUpdate
event MerkleConfigurationUpdate(bytes32 indexed root, bytes32 indexed configurator)
OwnershipHandoverCanceled
event OwnershipHandoverCanceled(address indexed pendingOwner)
OwnershipHandoverRequested
event OwnershipHandoverRequested(address indexed pendingOwner)
OwnershipTransferred
event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)
RolesUpdated
event RolesUpdated(address indexed user, uint256 indexed roles)
TokenSet
event TokenSet(address indexed token)
VaultSet
event VaultSet(address indexed vault)
Withdraw
event Withdraw(address indexed to, uint256 amount)
errors
AlreadyClaimed
error AlreadyClaimed()
AlreadyInitialized
error AlreadyInitialized()
IncorrectFee
error IncorrectFee()
InvalidMerkleProof
error InvalidMerkleProof(bytes32 root)
InvalidMerkleRoot
error InvalidMerkleRoot()
InvalidSignature
error InvalidSignature()
NewOwnerIsZeroAddress
error NewOwnerIsZeroAddress()
NoHandoverRequest
error NoHandoverRequest()
NotActive
error NotActive()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
Unauthorized
error Unauthorized()
WithdrawFailed
error WithdrawFailed()
ZeroAddress
error ZeroAddress()
creation bytecode
0x60803461014057601f61119838819003918201601f19168301916001600160401b038311848410176101445780849260a0946040528339810103126101405761004781610158565b61005360208301610158565b9161006060408201610158565b92608061006f60608401610158565b9201519360015460018060a01b0380948160018060a01b03199716875f5416175f55169060018060a81b0319161760015533638b78c6d81955335f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3638b78c6d8600c525f5260016020600c20556001600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a31690811561012e57600454161760045560055560405161102b908161016d8239f35b60405163d92e233d60e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101405756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816302fb0c5e14610eaa57508063144fa6d714610e44578063183a4f6e14610e2c5780631ac3ddeb14610d6f5780631c10893f14610d0f5780631cd64df414610cd6578063238ac93314610caf5780632569296214610c6657806329c68dc114610c2b5780632de9480714610bf95780634a4ee7b114610bcf578063514e62fc14610b9757806354d1f13d14610b53578063584ebf76146109fd5780635fc2f036146109a85780636817031b1461094057806369fe0e2d146108f25780636c19e783146108b4578063715018a61461086e5780638b681820146103b95780638da5cb5b1461038c578063ddca3f431461036e578063dfcae6221461031f578063e7e79a1e146102f5578063f04e283e14610277578063f28a80b61461025b578063f2fde38b146101ef578063fbfa77cf146101c6578063fc0c546a1461019d5763fee81cf414610168575f80fd5b3461019a57602036600319011261019a57610181610ecc565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b503461019a578060031936011261019a576004546040516001600160a01b039091168152602090f35b503461019a578060031936011261019a576001546040516001600160a01b039091168152602090f35b50602036600319011261019a57610204610ecc565b61020c610fa1565b8060601b1561024e5760018060a01b0316638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35580f35b637448fbae82526004601cfd5b503461019a578060031936011261019a57602060405160018152f35b50602036600319011261019a5761028c610ecc565b610294610fa1565b63389a75e1600c528082526020600c20805442116102e85782905560018060a01b0316638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35580f35b636f5e881883526004601cfd5b503461019a57602036600319011261019a5760406020916004358152600383522054604051908152f35b503461019a57604036600319011261019a576024356001600160a01b038116919082900361036a576040906004358152600260205220905f52602052602060405f2054604051908152f35b5f80fd5b503461019a578060031936011261019a576020600554604051908152f35b503461019a578060031936011261019a57638b78c6d819546040516001600160a01b039091168152602090f35b5060a036600319011261019a5760043567ffffffffffffffff811161086a576103e6903690600401610ef8565b60243567ffffffffffffffff811161086657610406903690600401610f29565b9061040f610ee2565b9260843567ffffffffffffffff811161086257610430903690600401610f29565b505060ff60015460a01c1615610850576040516001600160601b03198560601b16602082015260443560348201526034815280606081011067ffffffffffffffff60608301111761066257606081016040526020815191012067ffffffffffffffff821161083c57604051916104ac60208260051b0184610f57565b808352602083018097368360051b8201116108385780915b8360051b82018310610828575050505094815191826107f0575b505050838552600360205260408520549182156107d7578486526002602090815260408088206001600160a01b0387165f90815292529020541561052e57604051630c8d9eab60e31b8152600490fd5b8486526002602090815260408088206001600160a01b038781165f9081529190935220439055865416918261069a575b50506001546001600160a01b0316915f190190506106885760055434036106765760018060a01b0360045416906040519060208201906323b872dd60e01b8252602483015260018060a01b038416604483015260443560648301526064825260a082019082821067ffffffffffffffff831117610662576020928792604052519082855af1156106575783513d61064e5750803b155b610636575060405160443581526001600160a01b03909116907f286b28c8571c73086fa8d8852b677537690a70b51e1a76820fe50db64e12777990602090a380f35b60249060405190635274afe760e01b82526004820152fd5b600114156105f4565b6040513d85823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b60405163cd3cb2bb60e01b8152600490fd5b604051639dd854d360e01b8152600490fd5b811561079d576040516001600160601b03198660601b16602082015260443560348201528660548201523060601b6074820152466088820152608881528060c081011067ffffffffffffffff60c0830111176106625760c08101604052602081519101206020527b19457468657265756d205369676e6564204d6573736167653a0a33328752603c6004209060405192806040146107af5760411461074e5750505050505050638baa579f905b526004601cfd5b80604080920135891a60205281375b865260206001608088825afa5190866060526040523d610787575050505050638baa579f90610747565b6001600160a01b03160361079d575f808061055e565b604051638baa579f60e01b8152600490fd5b5060208181013560ff81901c601b0190915290356040526001600160ff1b031660605261075d565b604051630ee30f2b60e21b815260048101869052602490fd5b90955b8651811160051b9081526020875191185260206040882096019560208360051b83010187106107f357955050505f80806104de565b82358152602092830192016104c4565b8980fd5b634e487b7160e01b87526041600452602487fd5b604051634065aaf160e11b8152600490fd5b8680fd5b8380fd5b5080fd5b508060031936011261019a57610882610fa1565b5f638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35580f35b503461019a57602036600319011261019a576108ce610ecc565b6108d6610f79565b60018060a01b03166001600160601b0360a01b5f5416175f5580f35b503461019a57602036600319011261019a577f20461e09b8e557b77e107939f9ce6544698123aad0fc964ac5cc59b7df2e608f6020600435610932610f79565b80600555604051908152a180f35b503461019a57602036600319011261019a5761095a610ecc565b610962610f79565b600180546001600160a01b0319166001600160a01b039290921691821790557fe7ae49f883c825b05681b3e00e8be6fdea9ed2a8a45e4c6ecb9390fc44cce6158280a280f35b503461019a57604036600319011261019a576024356004356109c8610f79565b80835260036020528160408420557f5f8f4c6efebc2c9c76d8cadfd5f9bd9cf6611483e79417c706c86997840e95738380a380f35b50608036600319011261036a5767ffffffffffffffff60043581811161036a57610a2b903690600401610ef8565b60249291923582811161036a57610a46903690600401610f29565b91610a4f610ee2565b9260ff60015460a01c1615610850576040519360208501928584108785111761066257836040525f8652303b1561036a5760405163045b40c160e51b815260a0600482015260a48101829052976001600160fb1b03821161036a575f968996858896601f9594869560051b809160c48b013788019260c08985030160248a01528160c485015260e48401378960e48284010152831994859101160193604435604487015260018060a01b0316606486015260e0858503016084860152518060e485015280610104968786015e8786828601015201160103018183305af18015610b4857610b3a578280f35b908092501161066257604052005b6040513d5f823e3d90fd5b5f36600319011261036a5763389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2005b3461036a57604036600319011261036a57610bb0610ecc565b638b78c6d8600c525f52602060243581600c2054161515604051908152f35b604036600319011261036a57610bf7610be6610ecc565b610bee610fa1565b60243590610fb0565b005b3461036a57602036600319011261036a57610c12610ecc565b638b78c6d8600c525f52602080600c2054604051908152f35b3461036a575f36600319011261036a57610c43610f79565b6001805460ff60a01b19811660a091821c60ff161590911b60ff60a01b16179055005b5f36600319011261036a5763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b3461036a575f36600319011261036a575f546040516001600160a01b039091168152602090f35b3461036a57604036600319011261036a576020610cf1610ecc565b60243590638b78c6d8600c525f528082600c20541614604051908152f35b604036600319011261036a57610d23610ecc565b610d2b610fa1565b638b78c6d8600c525f526020600c20602435815417809155600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3005b3461036a57602036600319011261036a57610d88610ecc565b610d90610fa1565b479081610d9957005b6001600160a01b0316905f80808084865af13d15610e27573d67ffffffffffffffff81116106625760405190610dd9601f8201601f191660200183610f57565b81525f60203d92013e5b15610e155760207f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436491604051908152a2005b604051631d42c86760e21b8152600490fd5b610de3565b602036600319011261036a57610bf760043533610fb0565b3461036a57602036600319011261036a57610e5d610ecc565b610e65610f79565b600480546001600160a01b0319166001600160a01b039290921691821790557fa07c91c183e42229e705a9795a1c06d76528b673788b849597364528c96eefb75f80a2005b3461036a575f36600319011261036a5760209060ff60015460a01c1615158152f35b600435906001600160a01b038216820361036a57565b606435906001600160a01b038216820361036a57565b9181601f8401121561036a5782359167ffffffffffffffff831161036a576020808501948460051b01011161036a57565b9181601f8401121561036a5782359167ffffffffffffffff831161036a576020838186019501011161036a57565b90601f8019910116810190811067ffffffffffffffff82111761066257604052565b638b78c6d8600c52335f5260016020600c20541615610f9457565b6382b429005f526004601cfd5b638b78c6d819543303610f9457565b638b78c6d8600c525f526020600c2090815490811618809155600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a356fea26469706673582212204a793bd2261f451416ffe46c113677b3319fc39889dcb2d2227d7f0704d68e4964736f6c6343000819003300000000000000000000000074b9b4ee0caaeea82c6b35385dc9f7c7d57fd9f3000000000000000000000000293e2c79236b4900e0b38eeb51ac0df30d1b3ce000000000000000000000000074b9b4ee0caaeea82c6b35385dc9f7c7d57fd9f300000000000000000000000074b9b4ee0caaeea82c6b35385dc9f7c7d57fd9f30000000000000000000000000000000000000000000000000000000000000000