10 txs
11 calls
constructor
constructor(address _token, address _validator)
functions
CLAIM_PERIOD
viewfunction CLAIM_PERIOD() view returns (uint256)
contractTokenBalance
viewfunction contractTokenBalance() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getClaimSignatureMessageHash
viewfunction getClaimSignatureMessageHash(address account, uint256 amount, uint256 deadline) view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
MAX_CLAIM
viewfunction MAX_CLAIM() view returns (uint256)
nextClaimTimestamp
viewfunction nextClaimTimestamp(address) view returns (uint256)
paused
viewfunction paused() view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
token
viewfunction token() view returns (address)
totalClaimed
viewfunction totalClaimed(address) view returns (uint256)
VALIDATOR_ROLE
viewfunction VALIDATOR_ROLE() view returns (bytes32)
claim
nonpayablefunction claim(bytes _signature, uint256 _amount, uint256 _deadline)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
pause
nonpayablefunction pause()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setClaimPeriod
nonpayablefunction setClaimPeriod(uint256 _claimPeriod)
setMaxClaim
nonpayablefunction setMaxClaim(uint256 _maxClaim)
setToken
nonpayablefunction setToken(address _token)
unpause
nonpayablefunction unpause()
withdrawETH
nonpayablefunction withdrawETH(address _to)
withdrawToken
nonpayablefunction withdrawToken(address _to, uint256 _amount)
events
Claimed
event Claimed(address indexed account, uint256 indexed amount, uint256 timestamp)
ClaimPeriodUpdated
event ClaimPeriodUpdated(uint256 newPeriod)
MaxClaimUpdated
event MaxClaimUpdated(uint256 newMaxClaim)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TokenUpdated
event TokenUpdated(address indexed newToken)
Unpaused
event Unpaused(address account)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x60a060405246608052348015610013575f5ffd5b506040516116a53803806116a583398101604081905261003291610166565b600180546001600160a81b0319166101006001600160a01b03851602179055681043561a88293000006002556201518060035561006f5f336100a2565b5061009a7f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c98926826100a2565b505050610197565b5f828152602081815260408083206001600160a01b038516845290915281205460ff16610142575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556100fa3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610145565b505f5b92915050565b80516001600160a01b0381168114610161575f5ffd5b919050565b5f5f60408385031215610177575f5ffd5b6101808361014b565b915061018e6020840161014b565b90509250929050565b6080516114f66101af5f395f6107ef01526114f65ff3fe608060405234801561000f575f5ffd5b5060043610610153575f3560e01c80639e281a98116100bf578063c49baebe11610079578063c49baebe14610298578063c6f03f7c146102bf578063d2c04f43146102de578063d547741f146102f1578063ef5d9ae814610304578063fc0c546a14610323575f5ffd5b80639e281a981461023d5780639e9aed6214610250578063a217fddf14610258578063a7584ff91461025f578063b6ba3fcd14610272578063c285c0b014610285575f5ffd5b806336568abe1161011057806336568abe146101e95780633f4ba83a146101fc5780635c975abb14610204578063690d83201461020f5780638456cb591461022257806391d148541461022a575f5ffd5b806301b65b711461015757806301ffc9a714610173578063144fa6d71461019657806321241dfe146101ab578063248a9ca3146101b45780632f2ff15d146101d6575b5f5ffd5b61016060025481565b6040519081526020015b60405180910390f35b6101866101813660046112d3565b610353565b604051901515815260200161016a565b6101a96101a436600461131c565b610389565b005b61016060035481565b6101606101c2366004611335565b5f9081526020819052604090206001015490565b6101a96101e436600461134c565b610432565b6101a96101f736600461134c565b61045c565b6101a9610494565b60015460ff16610186565b6101a961021d36600461131c565b6104a9565b6101a96105a3565b61018661023836600461134c565b6105b5565b6101a961024b366004611376565b6105dd565b61016061072b565b6101605f81565b61016061026d36600461139e565b61079f565b6101a96102803660046113ce565b610830565b6101a9610293366004611335565b610c88565b6101607f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c9892681565b6101606102cd36600461131c565b60066020525f908152604090205481565b6101a96102ec366004611335565b610d0f565b6101a96102ff36600461134c565b610d8e565b61016061031236600461131c565b60046020525f908152604090205481565b60015461033b9061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161016a565b5f6001600160e01b03198216637965db0b60e01b148061038357506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f61039381610db2565b6001600160a01b0382166103e05760405162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b60448201526064015b60405180910390fd5b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040517f5ba6b30cd4b2f9e9e67f4feb9b9df10d5da3b057598e6901b217b7d590345e30905f90a25050565b5f8281526020819052604090206001015461044c81610db2565b6104568383610dbc565b50505050565b6001600160a01b03811633146104855760405163334bd91960e11b815260040160405180910390fd5b61048f8282610e4b565b505050565b5f61049e81610db2565b6104a6610eb4565b50565b5f6104b381610db2565b6104bb610f06565b6001600160a01b0382166105035760405162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b60448201526064016103d7565b60405147905f906001600160a01b0385169083908381818185875af1925050503d805f811461054d576040519150601f19603f3d011682016040523d82523d5f602084013e610552565b606091505b50509050806105955760405162461bcd60e51b815260206004820152600f60248201526e15d2551211149055d7d19052531151608a1b60448201526064016103d7565b505061059f610f75565b5050565b5f6105ad81610db2565b6104a6610f9f565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b5f6105e781610db2565b6105ef610f06565b6001546040516370a0823160e01b81523060048201525f9161010090046001600160a01b0316906370a0823190602401602060405180830381865afa15801561063a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065e9190611448565b9050808311156106a75760405162461bcd60e51b8152602060048201526014602482015273494e53554646494349454e545f42414c414e434560601b60448201526064016103d7565b60015460405163a9059cbb60e01b81526001600160a01b038681166004830152602482018690526101009092049091169063a9059cbb906044016020604051808303815f875af11580156106fd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610721919061145f565b505061048f610f75565b6001546040516370a0823160e01b81523060048201525f9161010090046001600160a01b0316906370a0823190602401602060405180830381865afa158015610776573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079a9190611448565b905090565b604080517f9186f749b90b1ef3a099132d3ab5525d1ae1e09785af5ca72464836a0b56516f6020808301919091526001600160a01b039590951681830152606081019390935260808301919091527f000000000000000000000000000000000000000000000000000000000000000060a0808401919091528151808403909101815260c09092019052805191012090565b610838610fda565b610840610f06565b604080516060810182523381526020810184905280820183905260015491516370a0823160e01b815230600482015290915f916101009091046001600160a01b0316906370a0823190602401602060405180830381865afa1580156108a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108cb9190611448565b335f9081526006602052604090819020549051919250906005906108f2908990899061147e565b9081526040519081900360200190205460ff16156109455760405162461bcd60e51b815260206004820152601060248201526f5245555345445f5349474e415455524560801b60448201526064016103d7565b826040015142111561098c5760405162461bcd60e51b815260206004820152601060248201526f455850495245445f444541444c494e4560801b60448201526064016103d7565b5f85116109cc5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b60448201526064016103d7565b600254851115610a125760405162461bcd60e51b8152602060048201526011602482015270455843454544535f4d41585f434c41494d60781b60448201526064016103d7565b81851115610a595760405162461bcd60e51b8152602060048201526014602482015273494e53554646494349454e545f42414c414e434560601b60448201526064016103d7565b80421015610aa95760405162461bcd60e51b815260206004820152601860248201527f434c41494d5f504552494f445f4e4f545f52454143484544000000000000000060448201526064016103d7565b5f610ae98489898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610ffe92505050565b9050610b157f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c98926826105b5565b610b555760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b60448201526064016103d7565b600160058989604051610b6992919061147e565b9081526040805160209281900383019020805460ff191693151593909317909255335f90815260049091529081208054889290610ba790849061148d565b9091555050600354610bb9904261148d565b335f818152600660205260409081902092909255600154915163a9059cbb60e01b81526004810191909152602481018890526101009091046001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610c20573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c44919061145f565b50604051428152869033907f987d620f307ff6b94d58743cb7a7509f24071586a77759b77c2d4e29f75a2f9a9060200160405180910390a350505050610456610f75565b5f610c9281610db2565b5f8211610cd25760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b60448201526064016103d7565b60028290556040518281527ffbf7b9ec922bb42be3c406407ab5eb0a4e4faac5955220c26f88821f03b60eac906020015b60405180910390a15050565b5f610d1981610db2565b5f8211610d595760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d411549253d160921b60448201526064016103d7565b60038290556040518281527f3f20a009f17f2ae49d568ae2ae4b958feae59ab94a76605bafdae03dbe15659390602001610d03565b5f82815260208190526040902060010154610da881610db2565b6104568383610e4b565b6104a6813361107f565b5f610dc783836105b5565b610e44575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610dfc3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610383565b505f610383565b5f610e5683836105b5565b15610e44575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610383565b610ebc6110b8565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c15610f4657604051633ee5aeb560e01b815260040160405180910390fd5b610f7360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b906110db565b565b610f735f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00610f6d565b610fa7610fda565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610ee9565b60015460ff1615610f735760405163d93c066560e01b815260040160405180910390fd5b5f5f61106b611019855f01518660200151876040015161079f565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018290525f90605c01604051602081830303815290604052805190602001209050919050565b905061107781846110e2565b949350505050565b61108982826105b5565b61059f5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016103d7565b60015460ff16610f7357604051638dfc202b60e01b815260040160405180910390fd5b80825d5050565b5f5f5f5f6110f0868661110a565b9250925092506111008282611153565b5090949350505050565b5f5f5f8351604103611141576020840151604085015160608601515f1a6111338882858561120b565b95509550955050505061114c565b505081515f91506002905b9250925092565b5f826003811115611166576111666114ac565b0361116f575050565b6001826003811115611183576111836114ac565b036111a15760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156111b5576111b56114ac565b036111d65760405163fce698f760e01b8152600481018290526024016103d7565b60038260038111156111ea576111ea6114ac565b0361059f576040516335e2f38360e21b8152600481018290526024016103d7565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561124457505f915060039050826112c9565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611295573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166112c057505f9250600191508290506112c9565b92505f91508190505b9450945094915050565b5f602082840312156112e3575f5ffd5b81356001600160e01b0319811681146112fa575f5ffd5b9392505050565b80356001600160a01b0381168114611317575f5ffd5b919050565b5f6020828403121561132c575f5ffd5b6112fa82611301565b5f60208284031215611345575f5ffd5b5035919050565b5f5f6040838503121561135d575f5ffd5b8235915061136d60208401611301565b90509250929050565b5f5f60408385031215611387575f5ffd5b61139083611301565b946020939093013593505050565b5f5f5f606084860312156113b0575f5ffd5b6113b984611301565b95602085013595506040909401359392505050565b5f5f5f5f606085870312156113e1575f5ffd5b843567ffffffffffffffff8111156113f7575f5ffd5b8501601f81018713611407575f5ffd5b803567ffffffffffffffff81111561141d575f5ffd5b87602082840101111561142e575f5ffd5b602091820198909750908601359560400135945092505050565b5f60208284031215611458575f5ffd5b5051919050565b5f6020828403121561146f575f5ffd5b815180151581146112fa575f5ffd5b818382375f9101908152919050565b8082018082111561038357634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52602160045260245ffdfea26469706673582212205ad8f4ad90eb8b0700a61f6115e842b48cb2396fa773b7a73e642403041d5c6f64736f6c634300081c0033000000000000000000000000c5fd53a53693e9b03a4c218df2639991123509d6000000000000000000000000b759d3f9520ce94b91138c9cc27431e70dcdd40f