Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract ownership is not renounced (belongs to a wallet)
Owned.transferOwnership(address) (#60-62) should emit an event for:
- owner = newOwner (#61)
Emit an event for critical parameter changes.
Additional information: link
Owned.transferOwnership(address).newOwner (#60) lacks a zero-check on :
- owner = newOwner (#61)
Check that the address is not zero.
Additional information: link
Token.internalTransfer(address,address,uint256) (#98-110) uses timestamp for comparisons
Dangerous comparisons:
- require(bool)(block.timestamp >= lock[from]) (#102)
Avoid relying on block.timestamp.
Additional information: link
SafeMath.div(uint256,uint256) (#23-26) is never used and should be removed
SafeMath.max(uint256,uint256) (#43-45) is never used and should be removed
SafeMath.min(uint256,uint256) (#39-41) is never used and should be removed
SafeMath.mul(uint256,uint256) (#17-21) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.1 (#1) 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
Token.decimals (#70) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#4)
- Token.transfer(address,uint256) (#112-115)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#5)
- Token.transferFrom(address,address,uint256) (#117-122)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#6)
- Token.approve(address,uint256) (#124-129)
transferOwnership(address) should be declared external:
- Owned.transferOwnership(address) (#60-62)
setNameSymbol(string,string) should be declared external:
- Token.setNameSymbol(string,string) (#133-136)
setLock(address[],uint256[]) should be declared external:
- Token.setLock(address[],uint256[]) (#139-144)
setFreezeIn(address[],bool) should be declared external:
- Token.setFreezeIn(address[],bool) (#146-151)
setFreezeOut(address[],bool) should be declared external:
- Token.setFreezeOut(address[],bool) (#153-158)
mint(uint256) should be declared external:
- Token.mint(uint256) (#160-163)
burn(uint256) should be declared external:
- Token.burn(uint256) (#165-168)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Young tokens have high risks of price dump / death
Unable to find Telegram and Twitter accounts