Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract locking ether found:
Contract BLACKCATDAO (#262-279) has payable functions:
- BLACKCATDAO.fallback() (#275-277)
But does not have a function to withdraw the ether
Remove the payable attribute or add a withdraw function.
Additional information: link
Not a direct threat, but may indicate unreliable intentions of developer. Widespread names (e.g. Elon, King, Moon, Doge) are common among meme-tokens and scams. The allow to gain free hype and attract unexperienced investors.
BaseToken.setTaxFee(uint256) (#251-253) should emit an event for:
- _taxFee = taxFee (#252)
BaseToken.setBurnFee(uint256) (#255-257) should emit an event for:
- _burnFee = burnFee (#256)
Emit an event for critical parameter changes.
Additional information: link
BaseToken.setProjectAddress(address)._projectAddress (#247) lacks a zero-check on :
- projectAddress = _projectAddress (#248)
Check that the address is not zero.
Additional information: link
SafeMath.mod(uint256,uint256) (#56-59) is never used and should be removed
Remove unused functions.
Additional information: link
BaseToken._previousTaxFee (#104) is set pre-construction with a non-constant function or state variable:
- _taxFee
BaseToken._previousBurnFee (#107) is set pre-construction with a non-constant function or state variable:
- _burnFee
Remove any initialization of state variables via non-constant state variables or function calls. If variables must be set upon contract deployment, locate initialization in the constructor instead.
Additional information: link
Pragma version^0.4.25 (#25) allows old versions
solc-0.4.26 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
Parameter BaseToken.calculateTaxFee(uint256)._amount (#191) is not in mixedCase
Parameter BaseToken.calculateBurnFee(uint256)._amount (#197) is not in mixedCase
Parameter BaseToken.setProjectAddress(address)._projectAddress (#247) is not in mixedCase
Constant BaseToken.MAXSupply (#93) is not in UPPER_CASE_WITH_UNDERSCORES
Variable BaseToken._taxFee (#103) is not in mixedCase
Variable BaseToken._burnFee (#106) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
BLACKCATDAO.slitherConstructorVariables() (#262-279) uses literals with too many digits:
- totalSupply = 100000000000 * 10 ** uint256(decimals) (#92)
BLACKCATDAO.slitherConstructorVariables() (#262-279) uses literals with too many digits:
- burnAddress = 0x000000000000000000000000000000000000dEaD (#110)
BLACKCATDAO.slitherConstructorConstantVariables() (#262-279) uses literals with too many digits:
- MAXSupply = 10000000000000000000000000000000000000 * 10 ** uint256(decimals) (#93)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
BaseToken.burnAddress (#110) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#72-76)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#78-81)
transfer(address,uint256) should be declared external:
- BaseToken.transfer(address,uint256) (#149-152)
transferFrom(address,address,uint256) should be declared external:
- BaseToken.transferFrom(address,address,uint256) (#154-158)
approve(address,uint256) should be declared external:
- BaseToken.approve(address,uint256) (#160-165)
increaseAllowance(address,uint256) should be declared external:
- BaseToken.increaseAllowance(address,uint256) (#167-172)
decreaseAllowance(address,uint256) should be declared external:
- BaseToken.decreaseAllowance(address,uint256) (#174-179)
mintToken(address,uint256) should be declared external:
- BaseToken.mintToken(address,uint256) (#181-189)
includeInFee(address) should be declared external:
- BaseToken.includeInFee(address) (#222-224)
isExcludeFromFee(address) should be declared external:
- BaseToken.isExcludeFromFee(address) (#226-229)
setLocked(address) should be declared external:
- BaseToken.setLocked(address) (#232-234)
setUnlocked(address) should be declared external:
- BaseToken.setUnlocked(address) (#236-238)
isLocked(address) should be declared external:
- BaseToken.isLocked(address) (#241-244)
setProjectAddress(address) should be declared external:
- BaseToken.setProjectAddress(address) (#247-249)
setTaxFee(uint256) should be declared external:
- BaseToken.setTaxFee(uint256) (#251-253)
setBurnFee(uint256) should be declared external:
- BaseToken.setBurnFee(uint256) (#255-257)
fallback() should be declared external:
- BLACKCATDAO.fallback() (#275-277)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Telegram and Twitter accounts