1k txs
1k calls
constructor
constructor(address _ThinkToken, address _manager, address _multisig, address _signer)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
extractSigner
purefunction extractSigner(bytes data, bytes signature) pure returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getSigner
viewfunction getSigner() view returns (address)
hasClaimed
viewfunction hasClaimed(bytes32 claimId) view returns (bool)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
paused
viewfunction paused() view returns (bool)
signer
viewfunction signer() view returns (address)
stakingVault
viewfunction stakingVault() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
ThinkToken
viewfunction ThinkToken() view returns (address)
verifySignature
purefunction verifySignature(address signer, bytes data, bytes signature) pure returns (bool)
claim
nonpayablefunction claim(bytes payload, bytes signature)
claimToStake
nonpayablefunction claimToStake(bytes payload, bytes signature) returns (bytes32 stakeId)
deposit
nonpayablefunction deposit(uint256 amount)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initStakingVault
nonpayablefunction initStakingVault(address _vault)
pause
nonpayablefunction pause()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setSigner
nonpayablefunction setSigner(address _signer)
setStakingVault
nonpayablefunction setStakingVault(address _stakingVault)
unpause
nonpayablefunction unpause()
withdraw
nonpayablefunction withdraw(address to, uint256 amount)
events
Claimed
event Claimed(address indexed claimer, uint128 amount, uint32 timestamp, uint16 daysLock)
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)
Unpaused
event Unpaused(address account)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AlreadyClaimed
error AlreadyClaimed(bytes32 claimId)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
FundsDepleted
error FundsDepleted()
InvalidClaimPeriod
error InvalidClaimPeriod(uint32 claimAfter, uint32 claimBefore, uint32 currentTimestamp)
InvalidPayload
error InvalidPayload(string message)
InvalidReceiver
error InvalidReceiver()
OperationNotAuthorized
error OperationNotAuthorized(address knownSigner, address receivedSigner)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
StakingVaultAlreadySet
error StakingVaultAlreadySet()
creation bytecode
0x60a060405234801561000f575f5ffd5b506040516115ad3803806115ad83398101604081905261002e9161016a565b60015f90815561003e90836100c1565b506100697fa5a0b70b385ff7611cd3840916bd08b10829e5bf9e6637cf79dd9a427fc0e2ab836100c1565b506100947f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08846100c1565b506001600160a01b03938416608052600380546001600160a01b0319169190941617909255506101c69050565b5f8281526001602090815260408083206001600160a01b038516845290915281205460ff1661014a575f8381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a450600161014d565b505f5b92915050565b6001600160a01b0381168114610167575f5ffd5b50565b5f5f5f5f6080858703121561017d575f5ffd5b845161018881610153565b602086015190945061019981610153565b60408601519093506101aa81610153565b60608601519092506101bb81610153565b939692955090935050565b6080516113b36101fa5f395f818161021e015281816105a7015281816105fb015281816106f201526108ea01526113b35ff3fe608060405234801561000f575f5ffd5b5060043610610153575f3560e01c80637ac3c02f116100bf578063be27b22c11610079578063be27b22c146102fe578063c02b1d3f14610311578063d547741f14610324578063e2cf8c7114610337578063f3fef3a31461034a578063fe5607921461035d575f5ffd5b80637ac3c02f1461028e5780638456cb591461029f57806391d14854146102a7578063a217fddf146102ba578063a894c457146102c1578063b6b55f25146102eb575f5ffd5b8063297986f611610110578063297986f6146102195780632f2ff15d1461024057806336568abe146102555780633f4ba83a146102685780635c975abb146102705780636c19e7831461027b575f5ffd5b806301ffc9a714610157578063238ac9331461017f578063248a9ca3146101aa578063249a931a146101db57806324e359e7146101ee57806324e7964a14610201575b5f5ffd5b61016a610165366004610f36565b610370565b60405190151581526020015b60405180910390f35b600354610192906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b6101cd6101b8366004610f64565b5f908152600160208190526040909120015490565b604051908152602001610176565b6101926101e936600461101a565b6103a6565b61016a6101fc366004611093565b610444565b6002546101929061010090046001600160a01b031681565b6101927f000000000000000000000000000000000000000000000000000000000000000081565b61025361024e366004611109565b610468565b005b610253610263366004611109565b610493565b6102536104cb565b60025460ff1661016a565b610253610289366004611137565b6104ed565b6003546001600160a01b0316610192565b61025361053a565b61016a6102b5366004611109565b610559565b6101cd5f81565b61016a6102cf366004610f64565b5f908152600460205260409020546001600160a01b0316151590565b6102536102f9366004610f64565b610583565b61025361030c366004611197565b6105d3565b6101cd61031f366004611200565b61068b565b610253610332366004611109565b61081f565b610253610345366004611137565b610844565b61025361035836600461126c565b6108b3565b61025361036b366004611137565b610911565b5f6001600160e01b03198216637965db0b60e01b14806103a057506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f5f83805190602001206040516020016103ec91907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b60408051601f19818403018152919052805160209091012090505f80610412838661093b565b5090925090505f81600381111561042b5761042b611296565b1461043b575f93505050506103a0565b50949350505050565b5f5f61045084846103a6565b6001600160a01b038681169116149150509392505050565b5f828152600160208190526040909120015461048381610984565b61048d838361098e565b50505050565b6001600160a01b03811633146104bc5760405163334bd91960e11b815260040160405180910390fd5b6104c68282610a04565b505050565b5f51602061135e5f395f51905f526104e281610984565b6104ea610a6f565b50565b7fa5a0b70b385ff7611cd3840916bd08b10829e5bf9e6637cf79dd9a427fc0e2ab61051781610984565b50600380546001600160a01b0319166001600160a01b0392909216919091179055565b5f51602061135e5f395f51905f5261055181610984565b6104ea610ac1565b5f9182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f51602061135e5f395f51905f5261059a81610984565b6105cf6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085610afe565b5050565b6105db610b65565b5f5f6105e8858585610b8b565b50909250905061062b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016836001600160801b038416610d75565b604080516001600160801b03831681524263ffffffff1660208201525f8183015290516001600160a01b038416917f259061b7d9a72fd40d952567848b1301451e9c6964b4014ca7f56f87ad2eeda9919081900360600190a25050505050565b5f610694610b65565b5f5f5f6106d988888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a9250899150610b8b9050565b6002549295509093509150610729906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916101009004166001600160801b038516610d75565b60025460405163fb1643d760e01b81526001600160a01b0385811660048301526001600160801b038516602483015261ffff841660448301526101009092049091169063fb1643d7906064016020604051808303815f875af1158015610791573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b591906112aa565b604080516001600160801b03851681524263ffffffff16602082015261ffff84168183015290519195506001600160a01b038516917f259061b7d9a72fd40d952567848b1301451e9c6964b4014ca7f56f87ad2eeda99181900360600190a2505050949350505050565b5f828152600160208190526040909120015461083a81610984565b61048d8383610a04565b5f51602061135e5f395f51905f5261085b81610984565b60025461010090046001600160a01b03161561088a57604051631a2a966160e11b815260040160405180910390fd5b50600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b7fa5a0b70b385ff7611cd3840916bd08b10829e5bf9e6637cf79dd9a427fc0e2ab6108dd81610984565b6104c66001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484610d75565b7fa5a0b70b385ff7611cd3840916bd08b10829e5bf9e6637cf79dd9a427fc0e2ab61088a81610984565b5f5f5f8351604103610972576020840151604085015160608601515f1a61096488828585610da6565b95509550955050505061097d565b505081515f91506002905b9250925092565b6104ea8133610e6e565b5f6109998383610559565b6109fd575f8381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016103a0565b505f6103a0565b5f610a0f8383610559565b156109fd575f8381526001602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103a0565b610a77610ea7565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610ac9610b65565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610aa43390565b6040516001600160a01b03848116602483015283811660448301526064820183905261048d9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610eca565b60025460ff1615610b895760405163d93c066560e01b815260040160405180910390fd5b565b5f5f5f610be260035f9054906101000a90046001600160a01b03168787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061044492505050565b610c6557600354604080516020601f88018190048102820181019092528681526001600160a01b0390921691610c349189919089908990819084018382808284375f920191909152506103a692505050565b60405163a719cba560e01b81526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b5f5f5f5f5f5f8b806020019051810190610c7f91906112d9565b949a509298509096509450925090506001600160a01b038516610cb557604051631e4ec46b60e01b815260040160405180910390fd5b428363ffffffff161180610cce5750428263ffffffff16105b15610d0457604051635cf1fed960e01b815263ffffffff8085166004830152808416602483015242166044820152606401610c5c565b5f868152600460205260409020546001600160a01b031615610d3c57604051633210992160e21b815260048101879052602401610c5c565b5f9586526004602052604090952080546001600160a01b0319166001600160a01b03861617905550919990985091965090945050505050565b6040516001600160a01b038381166024830152604482018390526104c691859182169063a9059cbb90606401610b33565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610ddf57505f91506003905082610e64565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610e30573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116610e5b57505f925060019150829050610e64565b92505f91508190505b9450945094915050565b610e788282610559565b6105cf5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610c5c565b60025460ff16610b8957604051638dfc202b60e01b815260040160405180910390fd5b5f5f60205f8451602086015f885af180610ee9576040513d5f823e3d81fd5b50505f513d91508115610f00578060011415610f0d565b6001600160a01b0384163b155b1561048d57604051635274afe760e01b81526001600160a01b0385166004820152602401610c5c565b5f60208284031215610f46575f5ffd5b81356001600160e01b031981168114610f5d575f5ffd5b9392505050565b5f60208284031215610f74575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610f9e575f5ffd5b813567ffffffffffffffff811115610fb857610fb8610f7b565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610fe757610fe7610f7b565b604052818152838201602001851015610ffe575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f6040838503121561102b575f5ffd5b823567ffffffffffffffff811115611041575f5ffd5b61104d85828601610f8f565b925050602083013567ffffffffffffffff811115611069575f5ffd5b61107585828601610f8f565b9150509250929050565b6001600160a01b03811681146104ea575f5ffd5b5f5f5f606084860312156110a5575f5ffd5b83356110b08161107f565b9250602084013567ffffffffffffffff8111156110cb575f5ffd5b6110d786828701610f8f565b925050604084013567ffffffffffffffff8111156110f3575f5ffd5b6110ff86828701610f8f565b9150509250925092565b5f5f6040838503121561111a575f5ffd5b82359150602083013561112c8161107f565b809150509250929050565b5f60208284031215611147575f5ffd5b8135610f5d8161107f565b5f5f83601f840112611162575f5ffd5b50813567ffffffffffffffff811115611179575f5ffd5b602083019150836020828501011115611190575f5ffd5b9250929050565b5f5f5f604084860312156111a9575f5ffd5b833567ffffffffffffffff8111156111bf575f5ffd5b6111cb86828701610f8f565b935050602084013567ffffffffffffffff8111156111e7575f5ffd5b6111f386828701611152565b9497909650939450505050565b5f5f5f5f60408587031215611213575f5ffd5b843567ffffffffffffffff811115611229575f5ffd5b61123587828801611152565b909550935050602085013567ffffffffffffffff811115611254575f5ffd5b61126087828801611152565b95989497509550505050565b5f5f6040838503121561127d575f5ffd5b82356112888161107f565b946020939093013593505050565b634e487b7160e01b5f52602160045260245ffd5b5f602082840312156112ba575f5ffd5b5051919050565b805163ffffffff811681146112d4575f5ffd5b919050565b5f5f5f5f5f5f60c087890312156112ee575f5ffd5b865160208801519096506113018161107f565b60408801519095506001600160801b038116811461131d575f5ffd5b935061132b606088016112c1565b9250611339608088016112c1565b915060a087015161ffff8116811461134f575f5ffd5b80915050929550929550929556fe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220016406c126df3131691f2990483af2ad03c8a914ee3d8d210bd1b2ca895d561764736f6c634300081e0033000000000000000000000000f9ff95468cb9a0cd57b8542bbc4c148e290ff4650000000000000000000000006972480b73fd3a5278c039cf072b499c4ca22e3300000000000000000000000007338f0d76f9d74c42c360ff7f852fce1c536983000000000000000000000000ece2a2066f3cd37e57644130c1ab350881ff8468