Kryptomons are digital collectible BEP721 NFT Token monsters built on the BSC blockchain. They can be bought and traded by using our dedicated BEP20 Token (KMON). Breed with other players to create new eggs with exciting traits and new levels of power.
At launch, 10,000 unique eggs will be stored in a smart contract on the BSC blockchain and airdropped to the top referring 10K members of our KMON community.Further eggs can be generated by the in game breeding mechanics.
Every egg has a unique but mutable genetic code (genotype) and a distinct visual appearance which is stored in the smart contract. The Genetic code is made up of 38 different genotypes that will determine all the aspects - both physical and behavioral - of your creature.
Your Kryptomon requires attention and if you fail to take regular care of it it could regress or be frozen, as in real life, where muscle is lost without constant exercise.
Like in a Pokemon game KMON trainers will be able to engage their Kryptomons in battles to grow their abilities and win the elite KMON league.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
AdminUpgradeabilityProxy.constructor(address,address,bytes)._admin (#348) shadows:
- AdminUpgradeabilityProxy._admin() (#433-438) (function)
Rename the local variables that shadow another component.
Additional information: link
Modifier AdminUpgradeabilityProxy.ifAdmin() (#373-379) does not always execute _; or revert
All the paths in a modifier must execute _ or revert.
Additional information: link
UpgradeabilityProxy.constructor(address,bytes)._logic (#268) lacks a zero-check on :
- (success) = _logic.delegatecall(_data) (#272)
AdminUpgradeabilityProxy.upgradeToAndCall(address,bytes).newImplementation (#424) lacks a zero-check on :
- (success) = newImplementation.delegatecall(data) (#426)
Check that the address is not zero.
Additional information: link
Proxy._delegate(address) (#42-61) uses assembly
- INLINE ASM (#43-60)
Address.isContract(address) (#106-115) uses assembly
- INLINE ASM (#113)
Address._verifyCallResult(bool,bytes,string) (#227-244) uses assembly
- INLINE ASM (#236-239)
UpgradeabilityProxy._implementation() (#294-299) uses assembly
- INLINE ASM (#296-298)
UpgradeabilityProxy._setImplementation(address) (#314-322) uses assembly
- INLINE ASM (#319-321)
AdminUpgradeabilityProxy._admin() (#433-438) uses assembly
- INLINE ASM (#435-437)
AdminUpgradeabilityProxy._setAdmin(address) (#444-450) uses assembly
- INLINE ASM (#447-449)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['>=0.6.2<0.8.0', '^0.6.0']
- ^0.6.0 (#5)
- >=0.6.2<0.8.0 (#83)
- ^0.6.0 (#249)
- ^0.6.0 (#327)
Use one Solidity version.
Additional information: link
Address._verifyCallResult(bool,bytes,string) (#227-244) is never used and should be removed
Address.functionCall(address,bytes) (#159-161) is never used and should be removed
Address.functionCall(address,bytes,string) (#169-171) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#184-186) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#194-201) is never used and should be removed
Address.functionStaticCall(address,bytes) (#209-211) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#219-225) is never used and should be removed
Address.sendValue(address,uint256) (#133-139) is never used and should be removed
Proxy._implementation() (#34) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.6.0 (#5) allows old versions
Pragma version>=0.6.2<0.8.0 (#83) is too complex
Pragma version^0.6.0 (#249) allows old versions
Pragma version^0.6.0 (#327) allows old versions
solc-0.6.8 is not recommended for deployment
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
Low level call in Address.sendValue(address,uint256) (#133-139):
- (success) = recipient.call{value: amount}() (#137)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#194-201):
- (success,returndata) = target.call{value: value}(data) (#199)
Low level call in Address.functionStaticCall(address,bytes,string) (#219-225):
- (success,returndata) = target.staticcall(data) (#223)
Low level call in UpgradeabilityProxy.constructor(address,bytes) (#268-275):
- (success) = _logic.delegatecall(_data) (#272)
Low level call in AdminUpgradeabilityProxy.upgradeToAndCall(address,bytes) (#424-428):
- (success) = newImplementation.delegatecall(data) (#426)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Unable to find Youtube account