0 txs
201 calls
constructor
constructor(string _version)
functions
deactivatedTime
viewfunction deactivatedTime(uint256, address) view returns (uint256)
getWearingElapsedTime
viewfunction getWearingElapsedTime(address wearer, uint256 hatId) view returns (uint256)
getWoreTime
viewfunction getWoreTime(address wearer, uint256 hatId) view returns (uint256)
hasAuthority
viewfunction hasAuthority(address authority) view returns (bool)
hatId
purefunction hatId() pure returns (uint256)
HATS
purefunction HATS() pure returns (address)
IMPLEMENTATION
purefunction IMPLEMENTATION() pure returns (address)
isActive
viewfunction isActive(uint256, address) view returns (bool)
totalActiveTime
viewfunction totalActiveTime(uint256, address) view returns (uint256)
version_
viewfunction version_() view returns (string)
version
viewfunction version() view returns (string)
woreTime
viewfunction woreTime(uint256, address) view returns (uint256)
deactivate
nonpayablefunction deactivate(uint256 hatId, address wearer)
mintHat
nonpayablefunction mintHat(uint256 hatId, address wearer, uint256 time)
reactivate
nonpayablefunction reactivate(uint256 hatId, address wearer)
renounce
nonpayablefunction renounce(uint256 hatId, address wearer)
setUp
nonpayablefunction setUp(bytes _initData)
events
HatDeactivated
event HatDeactivated(uint256 indexed hatId, address indexed wearer)
HatMinted
event HatMinted(uint256 indexed hatId, address indexed wearer, uint256 timestamp)
HatReactivated
event HatReactivated(uint256 indexed hatId, address indexed wearer)
HatRenounced
event HatRenounced(uint256 indexed hatId, address indexed wearer)
Initialized
event Initialized(uint64 version)
OperationAuthorityGranted
event OperationAuthorityGranted(address indexed authority)
OperationAuthorityRevoked
event OperationAuthorityRevoked(address indexed authority)
errors
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
creation bytecode
0x60806040523462000037576200001e62000018620001ab565b620001d1565b620000286200003d565b611e74620007158239611e7490f35b62000043565b60405190565b600080fd5b601f801991011690565b634e487b7160e01b600052604160045260246000fd5b90620000749062000048565b810190811060018060401b038211176200008d57604052565b62000052565b90620000aa620000a26200003d565b928362000068565b565b600080fd5b600080fd5b600080fd5b600080fd5b60018060401b038111620000df57620000db60209162000048565b0190565b62000052565b60005b838110620000fa575050906000910152565b806020918301518185015201620000e8565b90929192620001256200011f82620000c0565b62000093565b9381855260208501908284011162000144576200014292620000e5565b565b620000bb565b9080601f830112156200016b5781602062000168935191016200010c565b90565b620000b6565b90602082820312620001a557600082015160018060401b0381116200019f576200019c92016200014a565b90565b620000b1565b620000ac565b620001ce6200258980380380620001c28162000093565b92833981019062000171565b90565b620001dc90620001de565b565b620001e99062000491565b565b5190565b634e487b7160e01b600052602260045260246000fd5b906001600283049216801562000228575b60208310146200022257565b620001ef565b91607f169162000216565b600052602060002090565b601f602091010490565b1b90565b919060086200026c910291620002656000198462000248565b9262000248565b9181191691161790565b90565b90565b620002956200028f6200029b9262000276565b62000279565b62000276565b90565b90565b9190620002bc620002b6620002c5936200027c565b6200029e565b9083546200024c565b9055565b600090565b620002e491620002dd620002c9565b91620002a1565b565b5b818110620002f3575050565b80620003036000600193620002ce565b01620002e7565b9190601f81116200031b575b505050565b6200032a620003559362000233565b90602062000338846200023e565b830193106200035e575b6200034d906200023e565b0190620002e6565b38808062000316565b91506200034d8192905062000342565b1c90565b906200038590600019906008026200036e565b191690565b81620003969162000372565b906002021790565b90620003aa81620001eb565b9060018060401b0382116200047d57620003d182620003ca855462000205565b856200030a565b602090601f83116001146200040b57918091620003f993600092620003fe575b50506200038a565b90555b565b90915001513880620003f1565b601f198316916200041c8562000233565b9260005b818110620004645750916002939185600196941062000447575b50505002019055620003fc565b62000459910151601f84169062000372565b90553880806200043a565b9193602060018192878701518155019501920162000420565b62000052565b906200048f916200039e565b565b6200049e90600062000483565b620004a8620005bb565b565b60401c90565b60ff1690565b620004c5620004cb91620004aa565b620004b0565b90565b620004da9054620004b6565b90565b60000190565b60001c90565b60018060401b031690565b620005036200050991620004e3565b620004e9565b90565b620005189054620004f4565b90565b60018060401b031690565b60001b90565b906200053f60018060401b039162000526565b9181191691161790565b620005626200055c62000568926200051b565b62000279565b6200051b565b90565b90565b906200058862000582620005909262000549565b6200056b565b82546200052c565b9055565b6200059f906200051b565b9052565b9190620005b99060006020850194019062000594565b565b620005c562000694565b620005d360008201620004ce565b6200066d57620005e6600082016200050c565b62000602620005fb60018060401b036200051b565b916200051b565b036200060c575b50565b6200062290600060018060401b0391016200056e565b60018060401b03620006637fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291620006596200003d565b91829182620005a3565b0390a13862000609565b620006776200003d565b63f92ee8a960e01b8152806200069060048201620004dd565b0390fd5b6200069e620006fc565b90565b600090565b90565b90565b620006c5620006bf620006cb92620006a6565b62000526565b620006a9565b90565b620006f97ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00620006ac565b90565b62000706620006a1565b5062000711620006ce565b9056fe60806040526004361015610013575b610ac6565b61001e60003561012d565b806307ace2b514610128578063118dc864146101235780633a4741bd1461011e57806349b509771461011957806354fd4d501461011457806360a803901461010f57806363fec75d1461010a5780636a0ff8a1146101055780637150ef881461010057806371610773146100fb57806377aeec29146100f6578063819c4b0d146100f15780638faaab6e146100ec578063a4f9edbf146100e7578063bab0ac03146100e2578063d7c81b64146100dd5763dd1bb1fc0361000e57610a91565b6108ce565b610879565b61079f565b6106e6565b6106b0565b61067a565b610622565b6105bf565b61055c565b6104ed565b6104b9565b61047e565b6103c2565b61036b565b610312565b610179565b60e01c90565b60405190565b600080fd5b600080fd5b600091031261014e57565b61013e565b90565b61015f90610153565b9052565b919061017790600060208501940190610156565b565b346101a957610189366004610143565b6101a5610194610aef565b61019c610133565b91829182610163565b0390f35b610139565b600080fd5b6101bc81610153565b036101c357565b600080fd5b905035906101d5826101b3565b565b60018060a01b031690565b6101eb906101d7565b90565b6101f7816101e2565b036101fe57565b600080fd5b90503590610210826101ee565b565b919060408382031261023b578061022f61023892600086016101c8565b93602001610203565b90565b61013e565b90565b61025761025261025c92610153565b610240565b610153565b90565b9061026990610243565b600052602052604060002090565b61028b610286610290926101d7565b610240565b6101d7565b90565b61029c90610277565b90565b6102a890610293565b90565b906102b59061029f565b600052602052604060002090565b1c90565b90565b6102da9060086102df93026102c3565b6102c7565b90565b906102ed91546102ca565b90565b61030a61030f9261030560039360009461025f565b6102ab565b6102e2565b90565b346103435761033f61032e610328366004610212565b906102f0565b610336610133565b91829182610163565b0390f35b610139565b610351906101e2565b9052565b919061036990600060208501940190610348565b565b3461039b5761037b366004610143565b610397610386610b31565b61038e610133565b91829182610355565b0390f35b610139565b6103ba6103bf926103b560029360009461025f565b6102ab565b6102e2565b90565b346103f3576103ef6103de6103d8366004610212565b906103a0565b6103e6610133565b91829182610163565b0390f35b610139565b5190565b60209181520190565b60005b838110610419575050906000910152565b806020918301518185015201610408565b601f801991011690565b61045361045c6020936104619361044a816103f8565b938480936103fc565b95869101610405565b61042a565b0190565b61047b9160208201916000818403910152610434565b90565b346104ae5761048e366004610143565b6104aa610499610c60565b6104a1610133565b91829182610465565b0390f35b610139565b60000190565b346104e8576104d26104cc366004610212565b90610e43565b6104da610133565b806104e4816104b3565b0390f35b610139565b3461051c57610506610500366004610212565b906111b3565b61050e610133565b80610518816104b3565b0390f35b610139565b90916060828403126105575761055461053d84600085016101c8565b9361054b8160208601610203565b936040016101c8565b90565b61013e565b3461058b5761057561056f366004610521565b9161135c565b61057d610133565b80610587816104b3565b0390f35b610139565b61059990610293565b90565b6105a590610590565b9052565b91906105bd9060006020850194019061059c565b565b346105ef576105cf366004610143565b6105eb6105da6114d1565b6105e2610133565b918291826105a9565b0390f35b610139565b919060408382031261061d578061061161061a9260008601610203565b936020016101c8565b90565b61013e565b346106535761064f61063e6106383660046105f4565b906114f7565b610646610133565b91829182610163565b0390f35b610139565b6106726106779261066d60019360009461025f565b6102ab565b6102e2565b90565b346106ab576106a7610696610690366004610212565b90610658565b61069e610133565b91829182610163565b0390f35b610139565b346106e1576106dd6106cc6106c63660046105f4565b906115a3565b6106d4610133565b91829182610163565b0390f35b610139565b34610715576106ff6106f9366004610212565b906116ea565b610707610133565b80610711816104b3565b0390f35b610139565b600080fd5b600080fd5b600080fd5b909182601f830112156107635781359167ffffffffffffffff831161075e57602001926001830284011161075957565b610724565b61071f565b61071a565b9060208282031261079a57600082013567ffffffffffffffff8111610795576107919201610729565b9091565b6101ae565b61013e565b346107ce576107b86107b2366004610768565b90611ac0565b6107c0610133565b806107ca816104b3565b0390f35b610139565b906107dd90610243565b600052602052604060002090565b906107f59061029f565b600052602052604060002090565b60ff1690565b61081990600861081e93026102c3565b610803565b90565b9061082c9154610809565b90565b61084961084e926108446004936000946107d3565b6107eb565b610821565b90565b151590565b61085f90610851565b9052565b919061087790600060208501940190610856565b565b346108aa576108a661089561088f366004610212565b9061082f565b61089d610133565b91829182610863565b0390f35b610139565b906020828203126108c9576108c691600001610203565b90565b61013e565b346108fe576108fa6108e96108e43660046108af565b611ad1565b6108f1610133565b91829182610863565b0390f35b610139565b634e487b7160e01b600052600060045260246000fd5b634e487b7160e01b600052602260045260246000fd5b906001600283049216801561094f575b602083101461094a57565b610919565b91607f169161093f565b60209181520190565b600052602060002090565b90600092918054906109886109818361092f565b8094610959565b916001811690816000146109e157506001146109a4575b505050565b6109b19192939450610962565b916000925b8184106109c9575050019038808061099f565b600181602092959395548486015201910192906109b6565b92949550505060ff191682521515602002019038808061099f565b90610a069161096d565b90565b634e487b7160e01b600052604160045260246000fd5b90610a299061042a565b810190811067ffffffffffffffff821117610a4357604052565b610a09565b90610a68610a6192610a58610133565b938480926109fc565b0383610a1f565b565b90600010610a7e57610a7b90610a48565b90565b610903565b610a8e600080610a6a565b90565b34610ac157610aa1366004610143565b610abd610aac610a83565b610ab4610133565b91829182610465565b0390f35b610139565b600080fd5b600090565b90565b610ae7610ae2610aec92610ad0565b610240565b610153565b90565b610af7610acb565b50610b0a610b056028610ad3565b611ae6565b90565b600090565b90565b610b29610b24610b2e92610b12565b610240565b610153565b90565b610b39610b0d565b50610b4c610b476000610b15565b611afc565b90565b606090565b610b5d90610277565b90565b610b6990610b54565b90565b610b7590610293565b90565b600080fd5b60e01b90565b600080fd5b90610b9b610b94610133565b9283610a1f565b565b67ffffffffffffffff8111610bbb57610bb760209161042a565b0190565b610a09565b90929192610bd5610bd082610b9d565b610b88565b93818552602085019082840111610bf157610bef92610405565b565b610b83565b9080601f83011215610c1457816020610c1193519101610bc0565b90565b61071a565b90602082820312610c4a57600082015167ffffffffffffffff8111610c4557610c429201610bf6565b90565b6101ae565b61013e565b610c57610133565b3d6000823e3d90fd5b610c68610b4f565b50610c9c6000610c86610c81610c7c610b31565b610b60565b610b6c565b63dd1bb1fc90610c94610133565b938492610b7d565b82528180610cac600482016104b3565b03915afa908115610ce657600091610cc3575b5090565b610ce091503d806000833e610cd88183610a1f565b810190610c19565b38610cbf565b610c4f565b60007f4e6f7420617574686f72697a6564000000000000000000000000000000000000910152565b610d20600e6020926103fc565b610d2981610ceb565b0190565b610d439060208101906000818303910152610d13565b90565b15610d4d57565b610d55610133565b62461bcd60e51b815280610d6b60048201610d2d565b0390fd5b610d7890610293565b90565b6000910312610d8657565b61013e565b604090610db5610dbc9496959396610dab60608401986000850190610156565b6020830190610348565b0190610348565b565b60001b90565b90610dd160001991610dbe565b9181191691161790565b90565b90610df3610dee610dfa92610243565b610ddb565b8254610dc4565b9055565b90610e0a60ff91610dbe565b9181191691161790565b610e1d90610851565b90565b90565b90610e38610e33610e3f92610e14565b610e20565b8254610dfe565b9055565b610e4c33611ad1565b8015611068575b610e5c90610d46565b610e6c610e676114d1565b610590565b63a4a1f06c828492610e7d30610d6f565b92813b15611063576000610ea491610eaf8296610e98610133565b98899788968795610b7d565b855260048501610d8b565b03925af1801561105e57611031575b50610ecf610eca6114d1565b610590565b637a9df89f82823b1561102c57610f0692610efb60008094610eef610133565b96879586948593610b7d565b835260048301610163565b03925af1801561102757610ffa575b50610f3e610f236000610b15565b610f39610f326001859061025f565b85906102ab565b610dde565b610f5e6000610f59610f52600485906107d3565b85906107eb565b610e23565b610f86610f6b6000610b15565b610f81610f7a6002859061025f565b85906102ab565b610dde565b610fae610f936000610b15565b610fa9610fa26003859061025f565b85906102ab565b610dde565b90610fe2610fdc7f2c89d843fe25610b34fbe5e1f0159ce8e76d9f1d48fa8d043931b6df2bf41fa993610243565b9161029f565b91610feb610133565b80610ff5816104b3565b0390a3565b61101a9060003d8111611020575b6110128183610a1f565b810190610d7b565b38610f15565b503d611008565b610c4f565b610b78565b6110519060003d8111611057575b6110498183610a1f565b810190610d7b565b38610ebe565b503d61103f565b610c4f565b610b78565b50610e5c3361107f611079856101e2565b916101e2565b149050610e53565b60001c90565b61109961109e91611087565b610803565b90565b6110ab905461108d565b90565b60007f48617420697320616c726561647920696e616374697665000000000000000000910152565b6110e360176020926103fc565b6110ec816110ae565b0190565b61110690602081019060008183039101526110d6565b90565b1561111057565b611118610133565b62461bcd60e51b81528061112e600482016110f0565b0390fd5b61113e61114391611087565b6102c7565b90565b6111509054611132565b90565b634e487b7160e01b600052601160045260246000fd5b61117861117e91939293610153565b92610153565b820391821161118957565b611153565b61119d6111a391939293610153565b92610153565b82018092116111ae57565b611153565b6111d96111d46111cf6111c8600485906107d3565b85906107eb565b6110a1565b611109565b6111e233611ad1565b80156112d6575b6111f290610d46565b611212600061120d611206600485906107d3565b85906107eb565b610e23565b6112314261122c6112256002859061025f565b85906102ab565b610dde565b61128a61125c4261125661125161124a6001879061025f565b87906102ab565b611146565b90611169565b61128461127561126e6003869061025f565b86906102ab565b9161127f83611146565b61118e565b90610dde565b906112be6112b87f92b5a520b9e5df6b6a589eaec9136614af5c40186e27f7beb3a82364e5b41fa093610243565b9161029f565b916112c7610133565b806112d1816104b3565b0390a3565b506111f2336112ed6112e7856101e2565b916101e2565b1490506111e9565b6112fe81610851565b0361130557565b600080fd5b90505190611317826112f5565b565b90602082820312611333576113309160000161130a565b90565b61013e565b91602061135a92949361135360408201966000830190610156565b0190610348565b565b91909161137061136b33611ad1565b610d46565b61137c83828491611b99565b61139c6001611397611390600485906107d3565b86906107eb565b610e23565b6113ac6113a76114d1565b610590565b602063641f776e9183906113d4600088956113df6113c8610133565b97889687958694610b7d565b845260048401611338565b03925af1801561149057611464575b509190806114056113ff6000610b15565b91610153565b1460001461145e575042915b6114596114476114417f80e6543eb36329b7fc0d2b9b68e3293ea55ae0b19c0ed0bf2f13a671692b946b93610243565b9361029f565b93611450610133565b91829182610163565b0390a3565b91611411565b6114849060203d8111611489575b61147c8183610a1f565b810190611319565b6113ee565b503d611472565b610c4f565b600090565b90565b6114b16114ac6114b69261149a565b610240565b610153565b90565b6114c290610277565b90565b6114ce906114b9565b90565b6114d9611495565b506114f46114ef6114ea601461149d565b611afc565b6114c5565b90565b6115179061151261151c9361150a610acb565b50600161025f565b6102ab565b611146565b90565b60007f496e76616c696420776f72652074696d65000000000000000000000000000000910152565b61155460116020926103fc565b61155d8161151f565b0190565b6115779060208101906000818303910152611547565b90565b1561158157565b611589610133565b62461bcd60e51b81528061159f60048201611561565b0390fd5b906115ac610acb565b506115e7426115e06115da6115d56115d06115c96001889061025f565b88906102ab565b611146565b610153565b91610153565b101561157a565b6116056116006115f96003849061025f565b84906102ab565b611146565b9161162461161f611618600485906107d3565b83906107eb565b6110a1565b61162e575b505090565b61165f929161165361164e611659936116494294600161025f565b6102ab565b611146565b90611169565b9061118e565b3880611629565b60007f48617420697320616c7265616479206163746976650000000000000000000000910152565b61169b60156020926103fc565b6116a481611666565b0190565b6116be906020810190600081830391015261168e565b90565b156116c857565b6116d0610133565b62461bcd60e51b8152806116e6600482016116a8565b0390fd5b61171961171461170e611709611702600486906107d3565b86906107eb565b6110a1565b15610851565b6116c1565b61172233611ad1565b80156117bd575b61173290610d46565b611752600161174d611746600485906107d3565b85906107eb565b610e23565b6117714261176c6117656001859061025f565b85906102ab565b610dde565b906117a561179f7fd1d6c94eeeebb57cfc2ae9528f37b02a51f03059697136c9f4c0b87a648961f493610243565b9161029f565b916117ae610133565b806117b8816104b3565b0390a3565b50611732336117d46117ce856101e2565b916101e2565b149050611729565b60401c90565b6117ee6117f3916117dc565b610803565b90565b61180090546117e2565b90565b67ffffffffffffffff1690565b61181c61182191611087565b611803565b90565b61182e9054611810565b90565b67ffffffffffffffff1690565b61185261184d61185792610b12565b610240565b611831565b90565b90565b61187161186c6118769261185a565b610240565b611831565b90565b61188290610293565b90565b9061189867ffffffffffffffff91610dbe565b9181191691161790565b6118b66118b16118bb92611831565b610240565b611831565b90565b90565b906118d66118d16118dd926118a2565b6118be565b8254611885565b9055565b60401b90565b906118fb68ff0000000000000000916118e1565b9181191691161790565b9061191a61191561192192610e14565b610e20565b82546118e7565b9055565b61192e9061185d565b9052565b919061194690600060208501940190611925565b565b90611951611c1b565b91611967611961600085016117f6565b15610851565b9161197460008501611824565b80611988611982600061183e565b91611831565b1480611aad575b906119a361199d600161185d565b91611831565b1480611a84575b6119b5909115610851565b9081611a73575b50611a50576119e6916119db6119d2600161185d565b600087016118c1565b83611a3d575b611ab4565b6119ee575b50565b6119fc906000809101611905565b6001611a347fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291611a2b610133565b91829182611932565b0390a1386119eb565b611a4b600160008701611905565b6119e1565b611a58610133565b63f92ee8a960e01b815280611a6f600482016104b3565b0390fd5b611a7e915015610851565b386119bc565b506119b5611a9130611879565b3b611aa5611a9f6000610b15565b91610153565b1490506119aa565b508361198f565b90611abe91611c45565b565b90611aca91611948565b565b600090565b611ae390611add611acc565b50611c83565b90565b611aee610acb565b50611af7611dc1565b013590565b611b04610b0d565b50611b0d611dc1565b013560601c90565b60007f48617420616c7265616479206d696e7465640000000000000000000000000000910152565b611b4a60126020926103fc565b611b5381611b15565b0190565b611b6d9060208101906000818303910152611b3d565b90565b15611b7757565b611b7f610133565b62461bcd60e51b815280611b9560048201611b57565b0390fd5b611c0a90611c0f93611bdb611bc2611bbd611bb66001889061025f565b85906102ab565b611146565b611bd5611bcf6000610b15565b91610153565b14611b70565b80611bef611be96000610b15565b91610153565b14600014611c115750611c0542935b600161025f565b6102ab565b610dde565b565b611c059093611bfe565b611c23611e2a565b90565b90602082820312611c4057611c3d916000016101c8565b90565b61013e565b611c5d91611c569190810190611c26565b6005610dde565b565b916020611c81929493611c7a60408201966000830190610348565b0190610156565b565b611c8b611acc565b50611c9c611c976114d1565b610590565b602063b56f7562918390611ccb611cb36005611146565b94611cd6611cbf610133565b96879586948594610b7d565b845260048401611c5f565b03915afa908115611dbc57600091611d8e575b50908115611cf6575b5090565b90506020611d0a611d056114d1565b610590565b634352409a9290611d36611d1e6005611146565b94611d41611d2a610133565b96879586948594610b7d565b845260048401611c5f565b03915afa908115611d8957600091611d5b575b5038611cf2565b611d7c915060203d8111611d82575b611d748183610a1f565b810190611319565b38611d54565b503d611d6a565b610c4f565b611daf915060203d8111611db5575b611da78183610a1f565b810190611319565b38611ce9565b503d611d9d565b610c4f565b611dc9610acb565b50600236033560f01c360390565b600090565b90565b90565b611df6611df1611dfb92611ddc565b610dbe565b611ddf565b90565b611e277ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00611de2565b90565b611e32611dd7565b50611e3b611dfe565b9056fea2646970667358221220bcac9e06136cde589c509c87d3954eadcc1e1fb92ab8c335f5bdd1ae0e2b469e64736f6c6343000818003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005302e302e30000000000000000000000000000000000000000000000000000000