2.1k txs
2.1k calls
constructor
constructor(address _tokiemonItems)
functions
checkQuestRequirements
viewfunction checkQuestRequirements(address account, uint256[] questIds) view returns (bool[] hasRequiredItems)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getAccountQuestData
viewfunction getAccountQuestData(address account, uint256[] questIds) view returns (bool[] completed, uint256 points, tuple[] questConfigs)
getQuest
viewfunction getQuest(uint256 questId) view returns (tuple quest)
getQuestCompletions
viewfunction getQuestCompletions(address account, uint256[] questIds) view returns (bool[] statuses)
getQuestPointsForAccounts
viewfunction getQuestPointsForAccounts(address[] accounts) view returns (uint256[] points)
getQuests
viewfunction getQuests(uint256[] questIds) view returns (tuple[])
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
QUEST_MANAGER_ROLE
viewfunction QUEST_MANAGER_ROLE() view returns (bytes32)
questCompletions
viewfunction questCompletions(address, uint256) view returns (bool)
questPoints
viewfunction questPoints(address) view returns (uint256)
quests
viewfunction quests(uint256) view returns (uint256 requiredItemId, uint256 pointsReward, bool active)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokiemonItems
viewfunction tokiemonItems() view returns (address)
bulkConfigureQuests
nonpayablefunction bulkConfigureQuests(tuple config)
bulkResetQuestCompletions
nonpayablefunction bulkResetQuestCompletions(address account, uint256[] questIds, bool shouldResetPoints)
configureQuest
nonpayablefunction configureQuest(uint256 questId, uint256 requiredItemId, uint256 pointsReward, bool active, uint256[] rewardItemIds, uint256[] rewardAmounts)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
markQuestComplete
nonpayablefunction markQuestComplete(address account, uint256 questId)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
events
BulkQuestReset
event BulkQuestReset(address indexed account, uint256[] questIds)
QuestCompleted
event QuestCompleted(address indexed account, uint256 indexed questId)
QuestConfigured
event QuestConfigured(uint256 indexed questId, uint256 requiredItemId, uint256 pointsReward, bool active, uint256[] rewardItemIds, uint256[] rewardAmounts)
QuestPointsEarned
event QuestPointsEarned(address indexed account, uint256 indexed questId, uint256 points)
QuestPointsReset
event QuestPointsReset(address indexed account, uint256 pointsDeducted)
QuestReset
event QuestReset(address indexed account, uint256 indexed questId)
QuestRewardMinted
event QuestRewardMinted(address indexed account, uint256 indexed questId, uint256[] itemIds, uint256[] amounts)
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)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620025e5380380620025e5833981016040819052620000349162000136565b600180556001600160a01b0381166080526200005260003362000087565b506200007f7fc76a12ea3bbc29d28ade8cd9cea2ef1b869cd4aab844b5075c9ff73b4186bd713362000087565b505062000168565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166200012c576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620000e33390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000130565b5060005b92915050565b6000602082840312156200014957600080fd5b81516001600160a01b03811681146200016157600080fd5b9392505050565b60805161244c62000199600039600081816102d5015281816113da01528181611691015261185a015261244c6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806391d14854116100b8578063c892b7261161007c578063c892b72614610322578063d547741f14610335578063e085f98014610348578063f666c6e114610397578063f6e27f9c146103aa578063ff2f0a63146103d857600080fd5b806391d1485414610295578063a217fddf146102a8578063ac5a4e3f146102b0578063bdf46b28146102d0578063bf6334731461030f57600080fd5b806336568abe1161010a57806336568abe146101f557806349f86f34146102085780634fb8eea4146102285780636282fc981461024857806366f756871461025b57806388d749301461028257600080fd5b806301ffc9a714610147578063136aafd51461016f578063248a9ca31461019d5780632f2ff15d146101c05780633638e6ab146101d5575b600080fd5b61015a610155366004611dd5565b6103fa565b60405190151581526020015b60405180910390f35b61018f61017d366004611e22565b60036020526000908152604090205481565b604051908152602001610166565b61018f6101ab366004611e3d565b60009081526020819052604090206001015490565b6101d36101ce366004611e56565b610431565b005b6101e86101e3366004611ecd565b61045c565b6040516101669190611f5d565b6101d3610203366004611e56565b61052d565b61021b610216366004611e3d565b610565565b6040516101669190611ff8565b61023b61023636600461200b565b610685565b60405161016691906120a6565b6101d36102563660046120c9565b61083f565b61018f7fc76a12ea3bbc29d28ade8cd9cea2ef1b869cd4aab844b5075c9ff73b4186bd7181565b6101d361029036600461212d565b610a39565b61015a6102a3366004611e56565b610bdc565b61018f600081565b6102c36102be36600461200b565b610c05565b60405161016691906121c9565b6102f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610166565b6101d361031d3660046121dc565b610cce565b6101e8610330366004611ecd565b61121f565b6101d3610343366004611e56565b611471565b61037a610356366004611e3d565b60046020526000908152604090208054600182015460029092015490919060ff1683565b604080519384526020840192909252151590820152606001610166565b6101d36103a5366004612216565b611496565b61015a6103b8366004612216565b600260209081526000928352604080842090915290825290205460ff1681565b6103eb6103e6366004611ecd565b61199a565b60405161016693929190612240565b60006001600160e01b03198216637965db0b60e01b148061042b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008281526020819052604090206001015461044c81611c2e565b6104568383611c3b565b50505050565b6060816001600160401b0381111561047657610476612275565b60405190808252806020026020018201604052801561049f578160200160208202803683370190505b50905060005b82811015610525576001600160a01b0385166000908152600260205260408120908585848181106104d8576104d861228b565b90506020020135815260200190815260200160002060009054906101000a900460ff1682828151811061050d5761050d61228b565b911515602092830291909101909101526001016104a5565b509392505050565b6001600160a01b03811633146105565760405163334bd91960e11b815260040160405180910390fd5b6105608282611ccd565b505050565b6105996040518060a00160405280600081526020016000815260200160001515815260200160608152602001606081525090565b600082815260046020908152604091829020825160a08101845281548152600182015481840152600282015460ff16151581850152600382018054855181860281018601909652808652919492936060860193929083018282801561061d57602002820191906000526020600020905b815481526020019060010190808311610609575b505050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561067557602002820191906000526020600020905b815481526020019060010190808311610661575b5050505050815250509050919050565b60606000826001600160401b038111156106a1576106a1612275565b60405190808252806020026020018201604052801561070657816020015b6106f36040518060a00160405280600081526020016000815260200160001515815260200160608152602001606081525090565b8152602001906001900390816106bf5790505b50905060005b83811015610525576004600086868481811061072a5761072a61228b565b60209081029290920135835250818101929092526040908101600020815160a08101835281548152600182015481850152600282015460ff161515818401526003820180548451818702810187019095528085529194929360608601939092908301828280156107b957602002820191906000526020600020905b8154815260200190600101908083116107a5575b505050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561081157602002820191906000526020600020905b8154815260200190600101908083116107fd575b50505050508152505082828151811061082c5761082c61228b565b602090810291909101015260010161070c565b600061084a81611c2e565b6000805b8481101561093457600086868381811061086a5761086a61228b565b6001600160a01b038b166000908152600260209081526040808320938202959095013580835292905292909220549192505060ff161561092b576001600160a01b03881660009081526002602090815260408083208484529091529020805460ff1916905584156108f4576000818152600460205260409020600101546108f190846122b7565b92505b60405181906001600160a01b038a16907f3dde3572984ba4f6c958dfeef00cb13612f55ebe02553b19107f05725fa2185590600090a35b5060010161084e565b508280156109425750600081115b156109ee576001600160a01b03861660009081526003602052604090205481111561098257506001600160a01b0385166000908152600360205260409020545b6001600160a01b038616600090815260036020526040812080548392906109aa9084906122ca565b90915550506040518181526001600160a01b038716907f7a21150b98016fe94701003d360a19ffb37032837fb8dd532f788ab64102b5d09060200160405180910390a25b856001600160a01b03167fa228df79d6ece169060f9d556acba164df70671d0c4d0f06ed062b8dceab1e948686604051610a2992919061230f565b60405180910390a2505050505050565b6000610a4481611c2e565b8315610a9057838214610a905760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b60448201526064015b60405180910390fd5b6040518060a001604052808981526020018881526020018715158152602001868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505090825250604080516020868102828101820190935286825292830192909187918791829185019084908082843760009201829052509390945250508b815260046020908152604091829020845181558482015160018201559184015160028301805460ff191691151591909117905560608401518051929350610b6d9260038501929190910190611d75565b5060808201518051610b89916004840191602090910190611d75565b50905050887f437157ef6813e3083508ac856346c788e2a38366e5a69a01dec72dad9267697c89898989898989604051610bc9979695949392919061232b565b60405180910390a2505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060816001600160401b03811115610c1f57610c1f612275565b604051908082528060200260200182016040528015610c48578160200160208202803683370190505b50905060005b82811015610cc75760036000858584818110610c6c57610c6c61228b565b9050602002016020810190610c819190611e22565b6001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110610cb457610cb461228b565b6020908102919091010152600101610c4e565b5092915050565b6000610cd981611c2e565b610ce66020830183612374565b9050610cf28380612374565b9050148015610d195750610d096040830183612374565b9050610d158380612374565b9050145b8015610d3d5750610d2d6060830183612374565b9050610d398380612374565b9050145b8015610d615750610d516080830183612374565b9050610d5d8380612374565b9050145b8015610d855750610d7560a0830183612374565b9050610d818380612374565b9050145b610dd15760405162461bcd60e51b815260206004820181905260248201527f4c656e677468206d69736d6174636820696e20717565737420636f6e666967736044820152606401610a87565b60005b610dde8380612374565b9050811015610560576000610df66080850185612374565b83818110610e0657610e0661228b565b9050602002810190610e189190612374565b90501115610ecf57610e2d60a0840184612374565b82818110610e3d57610e3d61228b565b9050602002810190610e4f9190612374565b9050610e5e6080850185612374565b83818110610e6e57610e6e61228b565b9050602002810190610e809190612374565b905014610ecf5760405162461bcd60e51b815260206004820152601a60248201527f4c656e677468206d69736d6174636820696e20726577617264730000000000006044820152606401610a87565b6040805160a0810190915280610ee86020860186612374565b84818110610ef857610ef861228b565b905060200201358152602001848060400190610f149190612374565b84818110610f2457610f2461228b565b905060200201358152602001848060600190610f409190612374565b84818110610f5057610f5061228b565b9050602002016020810190610f6591906123bd565b15158152602001610f796080860186612374565b84818110610f8957610f8961228b565b9050602002810190610f9b9190612374565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505090825250602001610fdf60a0860186612374565b84818110610fef57610fef61228b565b90506020028101906110019190612374565b80806020026020016040519081016040528093929190818152602001838360200280828437600092018290525093909452506004925061104390508680612374565b858181106110535761105361228b565b905060200201358152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555060608201518160030190805190602001906110b8929190611d75565b50608082015180516110d4916004840191602090910190611d75565b506110e3915084905080612374565b828181106110f3576110f361228b565b905060200201357f437157ef6813e3083508ac856346c788e2a38366e5a69a01dec72dad9267697c84806020019061112b9190612374565b8481811061113b5761113b61228b565b905060200201358580604001906111529190612374565b858181106111625761116261228b565b905060200201358680606001906111799190612374565b868181106111895761118961228b565b905060200201602081019061119e91906123bd565b6111ab6080890189612374565b878181106111bb576111bb61228b565b90506020028101906111cd9190612374565b6111da60a08b018b612374565b898181106111ea576111ea61228b565b90506020028101906111fc9190612374565b60405161120f979695949392919061232b565b60405180910390a2600101610dd4565b6060816001600160401b0381111561123957611239612275565b604051908082528060200260200182016040528015611262578160200160208202803683370190505b50905060005b82811015610525576000600460008686858181106112885761128861228b565b60209081029290920135835250818101929092526040908101600020815160a08101835281548152600182015481850152600282015460ff1615158184015260038201805484518187028101870190955280855291949293606086019390929083018282801561131757602002820191906000526020600020905b815481526020019060010190808311611303575b505050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561136f57602002820191906000526020600020905b81548152602001906001019080831161135b575b505050505081525050905080600001516000036113af57600183838151811061139a5761139a61228b565b91151560209283029190910190910152611468565b8051604051627eeac760e11b81526001600160a01b03888116600483015260248201929092526000917f0000000000000000000000000000000000000000000000000000000000000000169062fdd58e90604401602060405180830381865afa158015611420573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144491906123d8565b118383815181106114575761145761228b565b911515602092830291909101909101525b50600101611268565b60008281526020819052604090206001015461148c81611c2e565b6104568383611ccd565b7fc76a12ea3bbc29d28ade8cd9cea2ef1b869cd4aab844b5075c9ff73b4186bd716114c081611c2e565b6001600160a01b038316600090815260026020908152604080832085845290915290205460ff16156115345760405162461bcd60e51b815260206004820152601760248201527f517565737420616c726561647920636f6d706c657465640000000000000000006044820152606401610a87565b6000828152600460209081526040808320815160a08101835281548152600182015481850152600282015460ff161515818401526003820180548451818702810187019095528085529194929360608601939092908301828280156115b857602002820191906000526020600020905b8154815260200190600101908083116115a4575b505050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561161057602002820191906000526020600020905b8154815260200190600101908083116115fc575b5050505050815250509050806040015161165f5760405162461bcd60e51b815260206004820152601060248201526f5175657374206e6f742061637469766560801b6044820152606401610a87565b805115611748578051604051627eeac760e11b81526001600160a01b03868116600483015260248201929092526000917f0000000000000000000000000000000000000000000000000000000000000000169062fdd58e90604401602060405180830381865afa1580156116d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fb91906123d8565b116117485760405162461bcd60e51b815260206004820152601760248201527f5265717569726564206974656d206e6f74206f776e65640000000000000000006044820152606401610a87565b6001600160a01b03841660009081526002602090815260408083208684528252909120805460ff191660011790558101511561180757806020015160036000866001600160a01b03166001600160a01b0316815260200190815260200160002060008282546117b791906122b7565b9250508190555082846001600160a01b03167f961ba5af725e39da46e74b461d95f9ccaf582bfd8590fb676ee305b18e6f527183602001516040516117fe91815260200190565b60405180910390a35b60405183906001600160a01b038616907f6618f11353f68847dc28cc4b36a04270fab5e356fa35386e6315ba7ff205a63390600090a3606081015151156104565760005b816060015151811015611947577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663731133e9868460600151848151811061189e5761189e61228b565b6020026020010151856080015185815181106118bc576118bc61228b565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152608060648201526000608482015260a401600060405180830381600087803b15801561192357600080fd5b505af1158015611937573d6000803e3d6000fd5b50506001909201915061184b9050565b5082846001600160a01b03167f809ff8f49b06587e4a564c9b62de4d173aa017c01930611855f75fc9e770d08f8360600151846080015160405161198c9291906123f1565b60405180910390a350505050565b6060600081836001600160401b038111156119b7576119b7612275565b6040519080825280602002602001820160405280156119e0578160200160208202803683370190505b509250836001600160401b038111156119fb576119fb612275565b604051908082528060200260200182016040528015611a6057816020015b611a4d6040518060a00160405280600081526020016000815260200160001515815260200160608152602001606081525090565b815260200190600190039081611a195790505b50905060005b84811015611c09576001600160a01b038716600090815260026020526040812090878784818110611a9957611a9961228b565b90506020020135815260200190815260200160002060009054906101000a900460ff16848281518110611ace57611ace61228b565b9115156020928302919091019091015260046000878784818110611af457611af461228b565b60209081029290920135835250818101929092526040908101600020815160a08101835281548152600182015481850152600282015460ff16151581840152600382018054845181870281018701909552808552919492936060860193909290830182828015611b8357602002820191906000526020600020905b815481526020019060010190808311611b6f575b5050505050815260200160048201805480602002602001604051908101604052809291908181526020018280548015611bdb57602002820191906000526020600020905b815481526020019060010190808311611bc7575b505050505081525050828281518110611bf657611bf661228b565b6020908102919091010152600101611a66565b506001600160a01b038616600090815260036020526040902054915093509350939050565b611c388133611d38565b50565b6000611c478383610bdc565b611cc5576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611c7d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161042b565b50600061042b565b6000611cd98383610bdc565b15611cc5576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161042b565b611d428282610bdc565b611d715760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610a87565b5050565b828054828255906000526020600020908101928215611db0579160200282015b82811115611db0578251825591602001919060010190611d95565b50611dbc929150611dc0565b5090565b5b80821115611dbc5760008155600101611dc1565b600060208284031215611de757600080fd5b81356001600160e01b031981168114611dff57600080fd5b9392505050565b80356001600160a01b0381168114611e1d57600080fd5b919050565b600060208284031215611e3457600080fd5b611dff82611e06565b600060208284031215611e4f57600080fd5b5035919050565b60008060408385031215611e6957600080fd5b82359150611e7960208401611e06565b90509250929050565b60008083601f840112611e9457600080fd5b5081356001600160401b03811115611eab57600080fd5b6020830191508360208260051b8501011115611ec657600080fd5b9250929050565b600080600060408486031215611ee257600080fd5b611eeb84611e06565b925060208401356001600160401b03811115611f0657600080fd5b611f1286828701611e82565b9497909650939450505050565b60008151808452602080850194506020840160005b83811015611f52578151151587529582019590820190600101611f34565b509495945050505050565b602081526000611dff6020830184611f1f565b60008151808452602080850194506020840160005b83811015611f5257815187529582019590820190600101611f85565b80518252602081015160208301526040810151151560408301526000606082015160a06060850152611fd660a0850182611f70565b905060808301518482036080860152611fef8282611f70565b95945050505050565b602081526000611dff6020830184611fa1565b6000806020838503121561201e57600080fd5b82356001600160401b0381111561203457600080fd5b61204085828601611e82565b90969095509350505050565b60008282518085526020808601955060208260051b8401016020860160005b8481101561209957601f19868403018952612087838351611fa1565b9884019892509083019060010161206b565b5090979650505050505050565b602081526000611dff602083018461204c565b80358015158114611e1d57600080fd5b600080600080606085870312156120df57600080fd5b6120e885611e06565b935060208501356001600160401b0381111561210357600080fd5b61210f87828801611e82565b90945092506121229050604086016120b9565b905092959194509250565b60008060008060008060008060c0898b03121561214957600080fd5b88359750602089013596506040890135955061216760608a016120b9565b945060808901356001600160401b038082111561218357600080fd5b61218f8c838d01611e82565b909650945060a08b01359150808211156121a857600080fd5b506121b58b828c01611e82565b999c989b5096995094979396929594505050565b602081526000611dff6020830184611f70565b6000602082840312156121ee57600080fd5b81356001600160401b0381111561220457600080fd5b820160c08185031215611dff57600080fd5b6000806040838503121561222957600080fd5b61223283611e06565b946020939093013593505050565b6060815260006122536060830186611f1f565b846020840152828103604084015261226b818561204c565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561042b5761042b6122a1565b8181038181111561042b5761042b6122a1565b81835260006001600160fb1b038311156122f657600080fd5b8260051b80836020870137939093016020019392505050565b6020815260006123236020830184866122dd565b949350505050565b878152866020820152851515604082015260a06060820152600061235360a0830186886122dd565b82810360808401526123668185876122dd565b9a9950505050505050505050565b6000808335601e1984360301811261238b57600080fd5b8301803591506001600160401b038211156123a557600080fd5b6020019150600581901b3603821315611ec657600080fd5b6000602082840312156123cf57600080fd5b611dff826120b9565b6000602082840312156123ea57600080fd5b5051919050565b6040815260006124046040830185611f70565b8281036020840152611fef8185611f7056fea2646970667358221220f8c06f13e4ff92a644b157b51fd4c8044337fc924f98f6597a21da21d3bba49b64736f6c63430008180033000000000000000000000000ad574f7f4eb563b0ccdcca0d7d7628aeaf071d65