Kryxivia is a fantasy 3D MMORPG, playable on any modern browser, directly available on our website at kryxivia.io, a whole eco-system awaiting new adventurous players to collect Kryxit! In our world, prepare yourself to earn crypto-currency and unique rare NFT while having a fun and cooperative experience with your friends. You can build your own character, fight in dungeons against bosses, stake your currency in the bank, loot from farming special items, cast spells contained from magical gems named Kryxit that can be linked to your items for accessibility.
Trade your looted Kryxit and items in an in-game auction house or in form of NFT on any compatible decentralized marketplace. The e-power of your equipped pieces of stuff helps to know what is your true value is in the Kryxivia world, the higher it is: the stronger you're character is.
KryxiviaCoin._totalSupply (contracts/KryxiviaCoin.sol#15) shadows:
- ERC20._totalSupply (@openzeppelin/contracts/token/ERC20/ERC20.sol#39)
Remove the state variable shadowing.
Additional information: link
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Constant KryxiviaCoin._decimals (contracts/KryxiviaCoin.sol#13) is not in UPPER_CASE_WITH_UNDERSCORES
Variable KryxiviaCoin._burnEnabled (contracts/KryxiviaCoin.sol#20) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
KryxiviaCoin.constructor(string,string).name (contracts/KryxiviaCoin.sol#23) shadows:
- ERC20.name() (@openzeppelin/contracts/token/ERC20/ERC20.sol#61-63) (function)
- IERC20Metadata.name() (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#16) (function)
KryxiviaCoin.constructor(string,string).symbol (contracts/KryxiviaCoin.sol#24) shadows:
- ERC20.symbol() (@openzeppelin/contracts/token/ERC20/ERC20.sol#69-71) (function)
- IERC20Metadata.symbol() (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#21) (function)
Rename the local variables that shadow another component.
Additional information: link
AccessControl._setRoleAdmin(bytes32,bytes32) (@openzeppelin/contracts/access/AccessControl.sol#191-195) is never used and should be removed
Strings.toHexString(uint256) (@openzeppelin/contracts/utils/Strings.sol#39-50) is never used and should be removed
Strings.toString(uint256) (@openzeppelin/contracts/utils/Strings.sol#14-34) is never used and should be removed
Context._msgData() (@openzeppelin/contracts/utils/Context.sol#20-22) is never used and should be removed
AccessControl._setupRole(bytes32,address) (@openzeppelin/contracts/access/AccessControl.sol#182-184) is never used and should be removed
Remove unused functions.
Additional information: link
KryxiviaCoin._totalSupply (contracts/KryxiviaCoin.sol#15) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
Different versions of Solidity are used:
- Version used: ['>=0.8.0', '^0.8.0']
- ^0.8.0 (@openzeppelin/contracts/access/AccessControl.sol#3)
- ^0.8.0 (@openzeppelin/contracts/access/IAccessControl.sol#3)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#3)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/Context.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/Strings.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/introspection/ERC165.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/introspection/IERC165.sol#3)
- >=0.8.0 (contracts/KryxiviaCoin.sol#3)
Use one Solidity version.
Additional information: link
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Context.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/introspection/IERC165.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/access/IAccessControl.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/access/AccessControl.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/introspection/ERC165.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Strings.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#3) allows old versions
Pragma version>=0.8.0 (contracts/KryxiviaCoin.sol#3) allows old versions
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.
Additional information: link
KryxiviaCoin.slitherConstructorVariables() (contracts/KryxiviaCoin.sol#10-47) uses literals with too many digits:
- _totalSupply = 250000000 * (10 ** uint256(_decimals)) (contracts/KryxiviaCoin.sol#15)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#149-163)
burnFrom(address,uint256) should be declared external:
- ERC20Burnable.burnFrom(address,uint256) (@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#34-41)
setBurnState(bool) should be declared external:
- KryxiviaCoin.setBurnState(bool) (contracts/KryxiviaCoin.sol#30-33)
decimals() should be declared external:
- ERC20.decimals() (@openzeppelin/contracts/token/ERC20/ERC20.sol#86-88)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#196-204)
symbol() should be declared external:
- ERC20.symbol() (@openzeppelin/contracts/token/ERC20/ERC20.sol#69-71)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (@openzeppelin/contracts/token/ERC20/ERC20.sol#100-102)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#112-115)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#177-180)
burnKXA(uint256) should be declared external:
- KryxiviaCoin.burnKXA(uint256) (contracts/KryxiviaCoin.sol#38-45)
name() should be declared external:
- ERC20.name() (@openzeppelin/contracts/token/ERC20/ERC20.sol#61-63)
grantRole(bytes32,address) should be declared external:
- AccessControl.grantRole(bytes32,address) (@openzeppelin/contracts/access/AccessControl.sol#129-131)
revokeRole(bytes32,address) should be declared external:
- AccessControl.revokeRole(bytes32,address) (@openzeppelin/contracts/access/AccessControl.sol#142-144)
totalSupply() should be declared external:
- ERC20.totalSupply() (@openzeppelin/contracts/token/ERC20/ERC20.sol#93-95)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#131-134)
renounceRole(bytes32,address) should be declared external:
- AccessControl.renounceRole(bytes32,address) (@openzeppelin/contracts/access/AccessControl.sol#160-164)
burn(uint256) should be declared external:
- ERC20Burnable.burn(uint256) (@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#19-21)
Use the external attribute for functions never called from the contract.
Additional information: link
Token has relatively low CoinGecko rank
Twitter account link seems to be invalid