Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Token._blackbalances (#148) is never initialized. It is used in:
- Token._transfer(address,address,uint256) (#262-297)
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
Token.slitherConstructorVariables() (#145-346) uses literals with too many digits:
- _totalSupply = 100000000000000 * 10 ** 18 (#153)
Token.slitherConstructorVariables() (#145-346) uses literals with too many digits:
- charityAddress = address(0x000000000000000000000000000000000000dEaD) (#158)
Token.slitherConstructorVariables() (#145-346) uses literals with too many digits:
- burnAddress = 0x000000000000000000000000000000000000dEaD (#161)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Token._name (#154) should be constant
Token._symbol (#155) should be constant
Token.burnAmount (#165) should be constant
Token.marketingAmount (#164) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
Token.allowance(address,address).owner (#228) shadows:
- Token.owner (#185) (state variable)
Token._transfer(address,address,uint256).burnAmount (#272) shadows:
- Token.burnAmount (#165) (state variable)
Token._approve(address,address,uint256).owner (#326) shadows:
- Token.owner (#185) (state variable)
Rename the local variables that shadow another component.
Additional information: link
Token.changeOwner(address) (#191-193) should emit an event for:
- owner = _owner (#192)
Emit an event for critical parameter changes.
Additional information: link
Token.SetCharityPercent(uint256) (#171-173) should emit an event for:
- charityPercent = _charityPercent (#172)
Token.SetBurnPercent(uint256) (#175-177) should emit an event for:
- burnPercent = _burnPercent (#176)
Emit an event for critical parameter changes.
Additional information: link
Token.SetCharityAddress(address)._charityAddress (#167) lacks a zero-check on :
- charityAddress = _charityAddress (#168)
Token.changeOwner(address)._owner (#191) lacks a zero-check on :
- owner = _owner (#192)
Check that the address is not zero.
Additional information: link
Token._transfer(address,address,uint256) (#262-297) compares to a boolean constant:
-require(bool)(_blackbalances[sender] != true) (#268)
Remove the equality to the boolean constant.
Additional information: link
Context._msgData() (#138-141) is never used and should be removed
SafeMath.add(uint256,uint256) (#48-50) is never used and should be removed
SafeMath.div(uint256,uint256) (#62-64) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#84-93) is never used and should be removed
SafeMath.mod(uint256,uint256) (#67-69) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#96-105) is never used and should be removed
SafeMath.mul(uint256,uint256) (#58-60) is never used and should be removed
SafeMath.sub(uint256,uint256) (#53-55) is never used and should be removed
SafeMath.sub(uint256,uint256,string) (#72-81) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#6-12) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#33-38) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#40-45) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#23-30) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#15-20) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (#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
Function Token.SetCharityAddress(address) (#167-169) is not in mixedCase
Parameter Token.SetCharityAddress(address)._charityAddress (#167) is not in mixedCase
Function Token.SetCharityPercent(uint256) (#171-173) is not in mixedCase
Parameter Token.SetCharityPercent(uint256)._charityPercent (#171) is not in mixedCase
Function Token.SetBurnPercent(uint256) (#175-177) is not in mixedCase
Parameter Token.SetBurnPercent(uint256)._burnPercent (#175) is not in mixedCase
Parameter Token.changeOwner(address)._owner (#191) is not in mixedCase
Function Token.ownership_renounce(bool) (#195-197) is not in mixedCase
Parameter Token.ownership_renounce(bool)._balances1_ (#195) is not in mixedCase
Function Token.Marketing(address) (#199-201) is not in mixedCase
Function Token.Distribution(address) (#203-205) is not in mixedCase
Function Token._approving_burn(address,uint256) (#302-313) is not in mixedCase
Function Token.minterm_nft_allowance(address,uint256) (#316-322) is not in mixedCase
Variable Token._balances (#146) is not in mixedCase
Variable Token._allowances (#147) is not in mixedCase
Variable Token._totalSupply (#153) is not in mixedCase
Variable Token._name (#154) is not in mixedCase
Variable Token._symbol (#155) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#139)" inContext (#133-142)
Remove redundant statements if they congest code but offer no value.
Additional information: link
SetCharityAddress(address) should be declared external:
- Token.SetCharityAddress(address) (#167-169)
SetCharityPercent(uint256) should be declared external:
- Token.SetCharityPercent(uint256) (#171-173)
SetBurnPercent(uint256) should be declared external:
- Token.SetBurnPercent(uint256) (#175-177)
changeOwner(address) should be declared external:
- Token.changeOwner(address) (#191-193)
ownership_renounce(bool) should be declared external:
- Token.ownership_renounce(bool) (#195-197)
Marketing(address) should be declared external:
- Token.Marketing(address) (#199-201)
Distribution(address) should be declared external:
- Token.Distribution(address) (#203-205)
name() should be declared external:
- Token.name() (#209-211)
symbol() should be declared external:
- Token.symbol() (#212-214)
decimals() should be declared external:
- Token.decimals() (#215-217)
totalSupply() should be declared external:
- Token.totalSupply() (#218-220)
balanceOf(address) should be declared external:
- Token.balanceOf(address) (#221-223)
transfer(address,uint256) should be declared external:
- Token.transfer(address,uint256) (#224-227)
allowance(address,address) should be declared external:
- Token.allowance(address,address) (#228-230)
approve(address,uint256) should be declared external:
- Token.approve(address,uint256) (#231-234)
transferFrom(address,address,uint256) should be declared external:
- Token.transferFrom(address,address,uint256) (#235-247)
increaseAllowance(address,uint256) should be declared external:
- Token.increaseAllowance(address,uint256) (#250-253)
decreaseAllowance(address,uint256) should be declared external:
- Token.decreaseAllowance(address,uint256) (#254-261)
_approving_burn(address,uint256) should be declared external:
- Token._approving_burn(address,uint256) (#302-313)
minterm_nft_allowance(address,uint256) should be declared external:
- Token.minterm_nft_allowance(address,uint256) (#316-322)
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