1 tx
41 calls
constructor
constructor()
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getBatchSkillLevels
viewfunction getBatchSkillLevels(address[] accounts, uint256[] skillIds) view returns (uint256[][] levels)
getLevel
purefunction getLevel(uint256 xp) pure returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getSkillLevel
viewfunction getSkillLevel(address account, uint256 skillId) view returns (uint256)
getSkillLevels
viewfunction getSkillLevels(address account, uint256[] skillIds) view returns (uint256[] levels)
getSkillXP
viewfunction getSkillXP(address account, uint256 skillId) view returns (uint256)
getXPForLevel
purefunction getXPForLevel(uint256 level) pure returns (uint256)
getXPToNextLevel
viewfunction getXPToNextLevel(address account, uint256 skillId) view returns (uint256)
hasReachedLevel
viewfunction hasReachedLevel(address account, uint256 skillId, uint256 level) view returns (bool)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
XP_GRANTER_ROLE
viewfunction XP_GRANTER_ROLE() view returns (bytes32)
addExperience
nonpayablefunction addExperience(address account, uint256 skillId, uint256 amount)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
reduceExperience
nonpayablefunction reduceExperience(address account, uint256 skillId, uint256 amount)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
events
ExperienceGained
event ExperienceGained(address indexed account, uint256 indexed skillId, uint256 amount, uint256 newTotal)
ExperienceReduced
event ExperienceReduced(address indexed account, uint256 indexed skillId, uint256 amount, uint256 newTotal)
LevelUp
event LevelUp(address indexed account, uint256 indexed skillId, uint256 newLevel)
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)
creation bytecode
0x608060405234801561001057600080fd5b5061001c60003361004d565b506100477fe8e20673873883db432ebefddb52e10b31320d08e3e080adf1283a61858fb44d3361004d565b506100f9565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166100ef576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556100a73390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016100f3565b5060005b92915050565b611363806101086000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806386481d40116100a2578063c38c9fbc11610071578063c38c9fbc14610279578063d547741f1461028c578063da97925b1461029f578063e3619e2d146102b2578063f3375701146102d957600080fd5b806386481d401461022b57806391d148541461023e5780639b104c2c14610251578063a217fddf1461027157600080fd5b806336568abe116100e957806336568abe1461019c57806336ecf58c146101af57806344098d27146101c25780636a646b66146101d557806372e634b1146101f557600080fd5b806301ffc9a71461011b5780630d60192f14610143578063248a9ca3146101565780632f2ff15d14610187575b600080fd5b61012e610129366004610fc7565b6102ec565b60405190151581526020015b60405180910390f35b61012e61015136600461100d565b610323565b610179610164366004611040565b60009081526020819052604090206001015490565b60405190815260200161013a565b61019a610195366004611059565b6103af565b005b61019a6101aa366004611059565b6103da565b6101796101bd366004611085565b610412565b6101796101d0366004611085565b61047b565b6101e86101e33660046110fb565b6104af565b60405161013a9190611167565b610179610203366004611085565b6001600160a01b03919091166000908152600160209081526040808320938352929052205490565b610179610239366004611040565b610643565b61012e61024c366004611059565b6106bc565b61026461025f3660046111f1565b6106e5565b60405161013a9190611244565b610179600081565b61019a61028736600461100d565b610792565b61019a61029a366004611059565b61091e565b61019a6102ad36600461100d565b610943565b6101797fe8e20673873883db432ebefddb52e10b31320d08e3e080adf1283a61858fb44d81565b6101796102e7366004611040565b610a3f565b60006001600160e01b03198216637965db0b60e01b148061031d57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008082118015610335575060638211155b6103765760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081b195d995b609a1b60448201526064015b60405180910390fd5b6001600160a01b038416600090815260016020908152604080832086845290915290205482906103a590610643565b1015949350505050565b6000828152602081905260409020600101546103ca81610e6a565b6103d48383610e77565b50505050565b6001600160a01b03811633146104035760405163334bd91960e11b815260040160405180910390fd5b61040d8282610f09565b505050565b6001600160a01b03821660009081526001602090815260408083208484529091528120548161044082610643565b9050606381106104555760009250505061031d565b60006104656102e783600161129e565b905061047183826112b1565b9695505050505050565b6001600160a01b03821660009081526001602090815260408083208484529091528120546104a890610643565b9392505050565b60608367ffffffffffffffff8111156104ca576104ca6112c4565b6040519080825280602002602001820160405280156104fd57816020015b60608152602001906001900390816104e85790505b50905060005b8481101561063a578267ffffffffffffffff811115610524576105246112c4565b60405190808252806020026020018201604052801561054d578160200160208202803683370190505b50828281518110610560576105606112da565b602002602001018190525060005b83811015610631576105f36001600089898681811061058f5761058f6112da565b90506020020160208101906105a491906112f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008787858181106105d8576105d86112da565b90506020020135815260200190815260200160002054610643565b838381518110610605576106056112da565b6020026020010151828151811061061e5761061e6112da565b602090810291909101015260010161056e565b50600101610503565b50949350505050565b60006301720690821061065857506063919050565b600160635b808210156106b55760006002610673838561129e565b61067e90600161129e565b610688919061130b565b90508461069482610a3f565b116106a1578092506106af565b6106ac6001826112b1565b91505b5061065d565b5092915050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60608167ffffffffffffffff811115610700576107006112c4565b604051908082528060200260200182016040528015610729578160200160208202803683370190505b50905060005b8281101561078a576001600160a01b0385166000908152600160205260408120610765918686858181106105d8576105d86112da565b828281518110610777576107776112da565b602090810291909101015260010161072f565b509392505050565b7fe8e20673873883db432ebefddb52e10b31320d08e3e080adf1283a61858fb44d6107bc81610e6a565b6001600160a01b0384166108045760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081858d8dbdd5b9d608a1b604482015260640161036d565b6001600160a01b03841660009081526001602090815260408083208684529091528120549061083282610643565b9050600061084d610843868561129e565b630bebc200610f74565b6001600160a01b03881660009081526001602090815260408083208a8452909152812082905590915061087f82610643565b9050828111156108ce5786886001600160a01b03167feec61667dd6eeecdccfef3c906e0fd047cca672804901ac4254d8545e9a426d4836040516108c591815260200190565b60405180910390a35b604080518781526020810184905288916001600160a01b038b16917f4f257b68d3494f0a01e5965d1e6800e2a88f21daf6fd7283ab50f6d4757cdf73910160405180910390a35050505050505050565b60008281526020819052604090206001015461093981610e6a565b6103d48383610f09565b600061094e81610e6a565b6001600160a01b0384166109965760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081858d8dbdd5b9d608a1b604482015260640161036d565b6001600160a01b038416600090815260016020908152604080832086845290915281205490818410156109d2576109cd84836112b1565b6109d5565b60005b6001600160a01b03871660008181526001602090815260408083208a8452825291829020849055815188815290810184905292935087927fa5088215d30997f1d93eb6afd7d248186d3310fbae7978bb6648b294496476cb910160405180910390a3505050505050565b60008082118015610a51575060638211155b610a8d5760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081b195d995b609a1b604482015260640161036d565b60408051610c8081018252600080825260208201526037918101919091526074606082015260b8608082015261010260a082015261015560c08201526101b160e082015261021561010082015261028561012082015261030161014082015261038861016082015261041f6101808201526104c56101a082015261057b6101c08201526106466101e082015261072561020082015261081b61022082015261092a610240820152610a56610260820152610ba1610280820152610de86102a08201526110b86102c08201526114246102e0820152611836610300820152611d066103208201526122b061034082015261295661036082015261311d610380820152613a1a6103a08201526144706103c08201526150466103e0820152615dc8610400820152616d44610420820152617ee76104408201526192e161046082015261a9ad61048082015261c3a36104a082015261e1156104c0820152620102626104e0820152620127f861050082015262015213610520820152620181406105408201526201b6186105608201526201f156610580820152620233bd6105a082015262027e3c6105c08201526202d1c96105e082015262032f716106008201526203985961062082015262040d9a61064082015262048dd6610660820152620517c56106808201526205acbc6106a082015262064e226106c08201526206fd626106e08201526207b9a16107008201526208825e6107208201526209572a610740820152620a3a40610760820152620b2b5d610780820152620c2a846107a0820152620d37bd6107c0820152620e53216107e0820152620f7cd06108008201526210b5006108208201526211fc466108408201526213531c6108608201526214ba10610880820152621631ac6108a08201526217ba8d6108c0820152621959886108e0820152621b1123610900820152621ce25f610920820152621ed5ed6109408201526220eccf610960820152622326b3610980820152622583716109a0820152622801df6109c0820152622aa1fc6109e0820152622d65f9610a0082015262304f08610a2082015262335c48610a4082015262369470610a608201526239f741610a80820152623d835d610aa082015262413cde610ac082015262453303610ae082015262493f4a610b00820152624d90f9610b2082015262632ea0610b4082015262694920610b608201526270ea40610b80820152627c5bf0610ba0820152628d24d0610bc082015262a40830610be082015262c28cb0610c0082015262ec82e0610c20820152630125bb50610c408201526301720690610c60820152808360648110610e5e57610e5e6112da565b60200201519392505050565b610e748133610f8a565b50565b6000610e8383836106bc565b610f01576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610eb93390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161031d565b50600061031d565b6000610f1583836106bc565b15610f01576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161031d565b6000818310610f8357816104a8565b5090919050565b610f9482826106bc565b610fc35760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161036d565b5050565b600060208284031215610fd957600080fd5b81356001600160e01b0319811681146104a857600080fd5b80356001600160a01b038116811461100857600080fd5b919050565b60008060006060848603121561102257600080fd5b61102b84610ff1565b95602085013595506040909401359392505050565b60006020828403121561105257600080fd5b5035919050565b6000806040838503121561106c57600080fd5b8235915061107c60208401610ff1565b90509250929050565b6000806040838503121561109857600080fd5b6110a183610ff1565b946020939093013593505050565b60008083601f8401126110c157600080fd5b50813567ffffffffffffffff8111156110d957600080fd5b6020830191508360208260051b85010111156110f457600080fd5b9250929050565b6000806000806040858703121561111157600080fd5b843567ffffffffffffffff8082111561112957600080fd5b611135888389016110af565b9096509450602087013591508082111561114e57600080fd5b5061115b878288016110af565b95989497509550505050565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b838110156111e357888603603f19018552825180518088529088019088880190845b818110156111cd5783518352928a0192918a01916001016111b1565b509097505050938601939186019160010161118f565b509398975050505050505050565b60008060006040848603121561120657600080fd5b61120f84610ff1565b9250602084013567ffffffffffffffff81111561122b57600080fd5b611237868287016110af565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b8181101561127c57835183529284019291840191600101611260565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561031d5761031d611288565b8181038181111561031d5761031d611288565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561130257600080fd5b6104a882610ff1565b60008261132857634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122012206dbe6193628a7880f0820a1ed377c1293978db0f08038e1fe7ab3ad7ecd164736f6c63430008180033