84 txs
85 calls
constructor
constructor(address _validator)
functions
CLAIM_PERIOD
viewfunction CLAIM_PERIOD() view returns (uint256)
contractTokenBalance
viewfunction contractTokenBalance(uint256 id) view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getAccountClaimedAmount
viewfunction getAccountClaimedAmount(address tokenAddress, address account) view returns (uint256)
getClaimSignatureMessageHash
viewfunction getClaimSignatureMessageHash(address account, uint256 id, uint256 amount, uint256 deadline) view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTokenList
viewfunction getTokenList() view returns (address[])
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)
tokenAddresses
viewfunction tokenAddresses(uint256) view returns (address)
VALIDATOR_ROLE
viewfunction VALIDATOR_ROLE() view returns (bytes32)
addToken
nonpayablefunction addToken(address _token) returns (uint256 id)
claim
nonpayablefunction claim(bytes _signature, uint256 _id, uint256 _amount, uint256 _deadline)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
pause
nonpayablefunction pause()
removeToken
nonpayablefunction removeToken(uint256 id)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setClaimPeriod
nonpayablefunction setClaimPeriod(uint256 _claimPeriod)
setMaxClaim
nonpayablefunction setMaxClaim(uint256 _maxClaim)
unpause
nonpayablefunction unpause()
withdrawETH
nonpayablefunction withdrawETH(address _to)
withdrawToken
nonpayablefunction withdrawToken(address _tokenAddress, address _to, uint256 _amount)
events
Claimed
event Claimed(address indexed tokenAddress, address indexed account, uint256 indexed amount, uint256 timestamp)
ClaimPeriodUpdated
event ClaimPeriodUpdated(uint256 newPeriod)
ETHWithdrawn
event ETHWithdrawn(address indexed to, uint256 amount)
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)
TokenAdded
event TokenAdded(address indexed newToken, uint256 id)
TokenRemoved
event TokenRemoved(address indexed oldToken, uint256 id)
TokenWithdrawn
event TokenWithdrawn(address indexed token, address indexed to, uint256 amount)
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
0x60a060405246608052348015610013575f5ffd5b50604051611c63380380611c6383398101604081905261003291610135565b6001805460ff19169055681043561a88293000006002556201518060035561005a5f3361008c565b506100857f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c989268261008c565b5050610162565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1661012c575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556100e43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161012f565b505f5b92915050565b5f60208284031215610145575f5ffd5b81516001600160a01b038116811461015b575f5ffd5b9392505050565b608051611ae961017a5f395f6112160152611ae95ff3fe608060405234801561000f575f5ffd5b5060043610610187575f3560e01c80638456cb59116100d9578063c6f03f7c11610093578063d48bfca71161006e578063d48bfca71461036a578063d547741f1461037d578063e5df8b8414610390578063e8e6cc86146103d0575f5ffd5b8063c6f03f7c14610300578063cd46c7271461031f578063d2c04f4314610357575f5ffd5b80638456cb591461029157806391d1485414610299578063a217fddf146102ac578063b252e2f2146102b3578063c285c0b0146102c6578063c49baebe146102d9575f5ffd5b80632f2ff15d1161014457806336c5d7241161011f57806336c5d724146102585780633f4ba83a1461026b5780635c975abb14610273578063690d83201461027e575f5ffd5b80632f2ff15d1461021f578063332acd951461023257806336568abe14610245575f5ffd5b806301b65b711461018b57806301e33667146101a757806301ffc9a7146101bc57806321241dfe146101df578063248a9ca3146101e8578063273cbaa01461020a575b5f5ffd5b61019460025481565b6040519081526020015b60405180910390f35b6101ba6101b5366004611796565b6103e3565b005b6101cf6101ca3660046117d0565b610612565b604051901515815260200161019e565b61019460035481565b6101946101f63660046117fe565b5f9081526020819052604090206001015490565b610212610648565b60405161019e9190611815565b6101ba61022d366004611860565b6106a8565b6101946102403660046117fe565b6106cc565b6101ba610253366004611860565b610771565b6101ba6102663660046117fe565b6107a9565b6101ba61093c565b60015460ff166101cf565b6101ba61028c36600461188a565b610951565b6101ba610a68565b6101cf6102a7366004611860565b610a7a565b6101945f81565b6101ba6102c13660046118a3565b610aa2565b6101ba6102d43660046117fe565b610f37565b6101947f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c9892681565b61019461030e36600461188a565b60066020525f908152604090205481565b61019461032d366004611925565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b6101ba6103653660046117fe565b610f9d565b61019461037836600461188a565b61101c565b6101ba61038b366004611860565b611170565b6103b861039e3660046117fe565b60076020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161019e565b6101946103de36600461194d565b611194565b5f6103ed81611258565b6103f5611262565b6001600160a01b0383166104245760405162461bcd60e51b815260040161041b90611983565b60405180910390fd5b6001600160a01b0384166104725760405162461bcd60e51b8152602060048201526015602482015274494e56414c49445f544f4b454e5f4144445245535360581b604482015260640161041b565b5f82116104915760405162461bcd60e51b815260040161041b906119ac565b6040516370a0823160e01b815230600482015284905f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb91906119d4565b9050808411156105445760405162461bcd60e51b8152602060048201526014602482015273494e53554646494349454e545f42414c414e434560601b604482015260640161041b565b846001600160a01b0316866001600160a01b03167f8210728e7c071f615b840ee026032693858fbcd5e5359e67e438c890f59e56208660405161058991815260200190565b60405180910390a360405163a9059cbb60e01b81526001600160a01b0386811660048301526024820186905283169063a9059cbb906044016020604051808303815f875af11580156105dd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060191906119eb565b50505061060c6112d1565b50505050565b5f6001600160e01b03198216637965db0b60e01b148061064257506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600980548060200260200160405190810160405280929190818152602001828054801561069e57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610680575b5050505050905090565b5f828152602081905260409020600101546106c281611258565b61060c83836112fb565b6009545f9082106106ef5760405162461bcd60e51b815260040161041b90611a0a565b5f82815260076020526040908190205490516370a0823160e01b81523060048201526001600160a01b0390911690819081906370a0823190602401602060405180830381865afa158015610745573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076991906119d4565b949350505050565b6001600160a01b038116331461079a5760405163334bd91960e11b815260040160405180910390fd5b6107a4828261138a565b505050565b5f6107b381611258565b60095482106107d45760405162461bcd60e51b815260040161041b90611a0a565b5f828152600760209081526040808320546001600160a01b03168084526008909252909120805460ff191690556009805461081190600190611a42565b8154811061082157610821611a55565b5f91825260209091200154600980546001600160a01b03909216918590811061084c5761084c611a55565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506009838154811061088a5761088a611a55565b5f9182526020808320909101548583526007909152604090912080546001600160a01b0319166001600160a01b0390921691909117905560098054806108d2576108d2611a69565b5f8281526020902081015f1990810180546001600160a01b03191690550190556040516001600160a01b038216907fbe9bb4bdca0a094babd75e3a98b1d2e2390633430d0a2f6e2b9970e2ee03fb2e9061092f9086815260200190565b60405180910390a2505050565b5f61094681611258565b61094e6113f3565b50565b5f61095b81611258565b610963611262565b6001600160a01b0382166109895760405162461bcd60e51b815260040161041b90611983565b60405147808252906001600160a01b038416907f94b2de810873337ed265c5f8cf98c9cffefa06b8607f9a2f1fbaebdfbcfbef1c9060200160405180910390a25f836001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610a12576040519150601f19603f3d011682016040523d82523d5f602084013e610a17565b606091505b5050905080610a5a5760405162461bcd60e51b815260206004820152600f60248201526e15d2551211149055d7d19052531151608a1b604482015260640161041b565b5050610a646112d1565b5050565b5f610a7281611258565b61094e611445565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610aaa611480565b610ab2611262565b6009548310610ad35760405162461bcd60e51b815260040161041b90611a0a565b5f8381526007602090815260408083205481516080810183523381526001600160a01b039091169281018390528082018690526060810185905290516370a0823160e01b81523060048201529192909183919082906370a0823190602401602060405180830381865afa158015610b4c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7091906119d4565b335f908152600660205260409081902054905191925090600590610b97908c908c90611a7d565b9081526040519081900360200190205460ff1615610bea5760405162461bcd60e51b815260206004820152601060248201526f5245555345445f5349474e415455524560801b604482015260640161041b565b8360600151421115610c315760405162461bcd60e51b815260206004820152601060248201526f455850495245445f444541444c494e4560801b604482015260640161041b565b5f8711610c505760405162461bcd60e51b815260040161041b906119ac565b600254871115610c965760405162461bcd60e51b8152602060048201526011602482015270455843454544535f4d41585f434c41494d60781b604482015260640161041b565b81871115610cdd5760405162461bcd60e51b8152602060048201526014602482015273494e53554646494349454e545f42414c414e434560601b604482015260640161041b565b80421015610d2d5760405162461bcd60e51b815260206004820152601860248201527f434c41494d5f504552494f445f4e4f545f524541434845440000000000000000604482015260640161041b565b5f610d6f858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508e92506114a4915050565b9050610d9b7f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c9892682610a7a565b610ddb5760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015260640161041b565b600160058c8c604051610def929190611a7d565b9081526040805160209281900383019020805460ff1916931515939093179092556001600160a01b0388165f9081526004825282812033825290915290812080548a9290610e3e908490611a8c565b9091555050600354610e509042611a8c565b335f818152600660205260409081902092909255905163a9059cbb60e01b81526004810191909152602481018990526001600160a01b0385169063a9059cbb906044016020604051808303815f875af1158015610eaf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed391906119eb565b5087336001600160a01b0316876001600160a01b03167f2f6639d24651730c7bf57c95ddbf96d66d11477e4ec626876f92c22e5f365e6842604051610f1a91815260200190565b60405180910390a4505050505050610f306112d1565b5050505050565b5f610f4181611258565b5f8211610f605760405162461bcd60e51b815260040161041b906119ac565b60028290556040518281527ffbf7b9ec922bb42be3c406407ab5eb0a4e4faac5955220c26f88821f03b60eac906020015b60405180910390a15050565b5f610fa781611258565b5f8211610fe75760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d411549253d160921b604482015260640161041b565b60038290556040518281527f3f20a009f17f2ae49d568ae2ae4b958feae59ab94a76605bafdae03dbe15659390602001610f91565b5f8061102781611258565b6001600160a01b03831661104d5760405162461bcd60e51b815260040161041b90611983565b6001600160a01b0383165f9081526008602052604090205460ff16156110b55760405162461bcd60e51b815260206004820152601860248201527f544f4b454e5f414c52454144595f524547495354455245440000000000000000604482015260640161041b565b600980546001600160a01b0385165f818152600860209081526040808320805460ff191660019081179091558584526007835281842080546001600160a01b0319908116871790915587549182018855969093527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af9092018054909516831790945551828152919450917ff4c563a3ea86ff1f4275e8c207df0375a51963f2b831b7bf4da8be938d92876c910160405180910390a250919050565b5f8281526020819052604090206001015461118a81611258565b61060c838361138a565b6009545f9084106111b75760405162461bcd60e51b815260040161041b90611a0a565b505f928352600760209081526040938490205484517ffd5cba785214d0b1b073168b4f22fa4769ddf4b7a1313e2738afd9c518a425f3818401526001600160a01b039687168187015295166060860152608085019290925260a08401527f000000000000000000000000000000000000000000000000000000000000000060c0808501919091528251808503909101815260e0909301909152815191012090565b61094e8133611527565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156112a257604051633ee5aeb560e01b815260040160405180910390fd5b6112cf60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90611560565b565b6112cf5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006112c9565b5f6113068383610a7a565b611383575f838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561133b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610642565b505f610642565b5f6113958383610a7a565b15611383575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610642565b6113fb611567565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61144d611480565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611428565b60015460ff16156112cf5760405163d93c066560e01b815260040160405180910390fd5b5f5f6115126114c0865f01518588604001518960600151611194565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018290525f90605c01604051602081830303815290604052805190602001209050919050565b905061151e818561158a565b95945050505050565b6115318282610a7a565b610a645760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161041b565b80825d5050565b60015460ff166112cf57604051638dfc202b60e01b815260040160405180910390fd5b5f5f5f5f61159886866115b2565b9250925092506115a882826115fb565b5090949350505050565b5f5f5f83516041036115e9576020840151604085015160608601515f1a6115db888285856116b3565b9550955095505050506115f4565b505081515f91506002905b9250925092565b5f82600381111561160e5761160e611a9f565b03611617575050565b600182600381111561162b5761162b611a9f565b036116495760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561165d5761165d611a9f565b0361167e5760405163fce698f760e01b81526004810182905260240161041b565b600382600381111561169257611692611a9f565b03610a64576040516335e2f38360e21b81526004810182905260240161041b565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156116ec57505f91506003905082611771565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561173d573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661176857505f925060019150829050611771565b92505f91508190505b9450945094915050565b80356001600160a01b0381168114611791575f5ffd5b919050565b5f5f5f606084860312156117a8575f5ffd5b6117b18461177b565b92506117bf6020850161177b565b929592945050506040919091013590565b5f602082840312156117e0575f5ffd5b81356001600160e01b0319811681146117f7575f5ffd5b9392505050565b5f6020828403121561180e575f5ffd5b5035919050565b602080825282518282018190525f918401906040840190835b818110156118555783516001600160a01b031683526020938401939092019160010161182e565b509095945050505050565b5f5f60408385031215611871575f5ffd5b823591506118816020840161177b565b90509250929050565b5f6020828403121561189a575f5ffd5b6117f78261177b565b5f5f5f5f5f608086880312156118b7575f5ffd5b853567ffffffffffffffff8111156118cd575f5ffd5b8601601f810188136118dd575f5ffd5b803567ffffffffffffffff8111156118f3575f5ffd5b886020828401011115611904575f5ffd5b60209182019990985090870135966040810135965060600135945092505050565b5f5f60408385031215611936575f5ffd5b61193f8361177b565b91506118816020840161177b565b5f5f5f5f60808587031215611960575f5ffd5b6119698561177b565b966020860135965060408601359560600135945092505050565b6020808252600f908201526e494e56414c49445f4144445245535360881b604082015260600190565b6020808252600e908201526d1253959053125117d05353d5539560921b604082015260600190565b5f602082840312156119e4575f5ffd5b5051919050565b5f602082840312156119fb575f5ffd5b815180151581146117f7575f5ffd5b6020808252600a90820152691253959053125117d25160b21b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561064257610642611a2e565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b818382375f9101908152919050565b8082018082111561064257610642611a2e565b634e487b7160e01b5f52602160045260245ffdfea26469706673582212206478053bd48dc5de4d13b51d67b496daec00534901bcbbfedd32d350ad39ef7c64736f6c634300081c0033000000000000000000000000b759d3f9520ce94b91138c9cc27431e70dcdd40f