Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract ownership is not renounced (belongs to a wallet)
CoinToken.allowance(address,address).owner (#525) shadows:
- Ownable.owner() (#406-408) (function)
CoinToken._approve(address,address,uint256).owner (#654) shadows:
- Ownable.owner() (#406-408) (function)
Rename the local variables that shadow another component.
Additional information: link
CoinToken.updateFee(uint256,uint256,uint256) (#628-635) should emit an event for:
- _TAX_FEE = _txFee * 100 (#629)
- _BURN_FEE = _burnFee * 100 (#630)
- _CHARITY_FEE = _charityFee * 100 (#631)
- ORIG_TAX_FEE = _TAX_FEE (#632)
- ORIG_BURN_FEE = _BURN_FEE (#633)
- ORIG_CHARITY_FEE = _CHARITY_FEE (#634)
Emit an event for critical parameter changes.
Additional information: link
CoinToken.constructor(string,string,uint256,uint256,uint256,uint256,uint256,address,address)._FeeAddress (#478) lacks a zero-check on :
- FeeAddress = _FeeAddress (#492)
CoinToken.constructor(string,string,uint256,uint256,uint256,uint256,uint256,address,address).tokenOwner (#478) lacks a zero-check on :
- _owner = tokenOwner (#493)
Check that the address is not zero.
Additional information: link
Address.isContract(address) (#268-277) uses assembly
- INLINE ASM (#275)
Address._functionCallWithValue(address,bytes,uint256,string) (#361-382) uses assembly
- INLINE ASM (#374-377)
Do not use evm assembly.
Additional information: link
CoinToken.includeAccount(address) (#605-616) has costly operations inside a loop:
- _excluded.pop() (#612)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#361-382) is never used and should be removed
Address.functionCall(address,bytes) (#321-323) is never used and should be removed
Address.functionCall(address,bytes,string) (#331-333) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#346-348) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#356-359) is never used and should be removed
Address.isContract(address) (#268-277) is never used and should be removed
Address.sendValue(address,uint256) (#295-301) is never used and should be removed
CoinToken._getTaxFee() (#846-848) is never used and should be removed
Context._msgData() (#11-14) is never used and should be removed
SafeMath.mod(uint256,uint256) (#225-227) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#241-244) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.2 (#3) allows old versions
solc-0.8.2 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) (#295-301):
- (success) = recipient.call{value: amount}() (#299)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#361-382):
- (success,returndata) = target.call{value: weiValue}(data) (#365)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Variable Ownable._owner (#398) is not in mixedCase
Parameter CoinToken.burn(uint256)._value (#624) is not in mixedCase
Parameter CoinToken.updateFee(uint256,uint256,uint256)._txFee (#628) is not in mixedCase
Parameter CoinToken.updateFee(uint256,uint256,uint256)._burnFee (#628) is not in mixedCase
Parameter CoinToken.updateFee(uint256,uint256,uint256)._charityFee (#628) is not in mixedCase
Variable CoinToken._NAME (#453) is not in mixedCase
Variable CoinToken._SYMBOL (#454) is not in mixedCase
Variable CoinToken._DECIMALS (#455) is not in mixedCase
Variable CoinToken.FeeAddress (#456) is not in mixedCase
Variable CoinToken._MAX (#458) is not in mixedCase
Variable CoinToken._DECIMALFACTOR (#459) is not in mixedCase
Variable CoinToken._GRANULARITY (#460) is not in mixedCase
Variable CoinToken._TAX_FEE (#469) is not in mixedCase
Variable CoinToken._BURN_FEE (#470) is not in mixedCase
Variable CoinToken._CHARITY_FEE (#471) is not in mixedCase
Variable CoinToken.ORIG_TAX_FEE (#474) is not in mixedCase
Variable CoinToken.ORIG_BURN_FEE (#475) is not in mixedCase
Variable CoinToken.ORIG_CHARITY_FEE (#476) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#12)" inContext (#6-15)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#693) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#718)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#693) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#753)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#702) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#744)
Variable CoinToken._getValues(uint256).rTransferAmount (#775) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#744)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#799) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#718)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#709) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#744)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#585) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#718)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#744) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#744)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#753) is too similar to CoinToken._getValues(uint256).tTransferAmount (#772)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#693) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#693)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#753) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#727)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#727) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#718)
Variable CoinToken._getValues(uint256).rTransferAmount (#775) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#718)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#718) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#744)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#709) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#718)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#753) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#709)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#736) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#744)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#702) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#718)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#585) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#727)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#693) is too similar to CoinToken._getValues(uint256).tTransferAmount (#772)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#693) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#727)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#753) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#744)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#585) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#709)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#693) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#709)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#727) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#709)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#799) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#744)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#753) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#718)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#585) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#744)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#693) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#744)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#727) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#727)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#727) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#744)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#709) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#727)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#709) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#709)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#702) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#727)
Variable CoinToken._getValues(uint256).rTransferAmount (#775) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#753)
Variable CoinToken._getValues(uint256).rTransferAmount (#775) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#693)
Variable CoinToken._getValues(uint256).rTransferAmount (#775) is too similar to CoinToken._getValues(uint256).tTransferAmount (#772)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#736) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#727)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#799) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#727)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#718) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#718)
Variable CoinToken._getValues(uint256).rTransferAmount (#775) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#709)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#744) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#693)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#585) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#753)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#585) is too similar to CoinToken._getValues(uint256).tTransferAmount (#772)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#585) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#693)
Variable CoinToken._getValues(uint256).rTransferAmount (#775) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#727)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#744) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#718)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#744) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#727)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#753) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#753)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#718) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#753)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#718) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#693)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#718) is too similar to CoinToken._getValues(uint256).tTransferAmount (#772)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#709) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#753)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#709) is too similar to CoinToken._getValues(uint256).tTransferAmount (#772)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#718) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#709)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#702) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#753)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#702) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#693)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#702) is too similar to CoinToken._getValues(uint256).tTransferAmount (#772)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#736) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#753)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#736) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#693)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#736) is too similar to CoinToken._getValues(uint256).tTransferAmount (#772)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#799) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#753)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#799) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#693)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#799) is too similar to CoinToken._getValues(uint256).tTransferAmount (#772)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#702) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#709)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#736) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#709)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#727) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#753)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#727) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#693)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#744) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#753)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#727) is too similar to CoinToken._getValues(uint256).tTransferAmount (#772)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#799) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#709)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#744) is too similar to CoinToken._getValues(uint256).tTransferAmount (#772)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#753) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#693)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#718) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#727)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#744) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#709)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#736) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#718)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#709) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#693)
Prevent variables from having similar names.
Additional information: link
CoinToken._GRANULARITY (#460) should be constant
CoinToken._MAX (#458) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
owner() should be declared external:
- Ownable.owner() (#406-408)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#425-428)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#434-438)
name() should be declared external:
- CoinToken.name() (#499-501)
symbol() should be declared external:
- CoinToken.symbol() (#503-505)
decimals() should be declared external:
- CoinToken.decimals() (#507-509)
totalSupply() should be declared external:
- CoinToken.totalSupply() (#511-513)
balanceOf(address) should be declared external:
- CoinToken.balanceOf(address) (#515-518)
transfer(address,uint256) should be declared external:
- CoinToken.transfer(address,uint256) (#520-523)
allowance(address,address) should be declared external:
- CoinToken.allowance(address,address) (#525-527)
approve(address,uint256) should be declared external:
- CoinToken.approve(address,uint256) (#529-532)
transferFrom(address,address,uint256) should be declared external:
- CoinToken.transferFrom(address,address,uint256) (#534-538)
increaseAllowance(address,uint256) should be declared external:
- CoinToken.increaseAllowance(address,uint256) (#540-543)
decreaseAllowance(address,uint256) should be declared external:
- CoinToken.decreaseAllowance(address,uint256) (#545-548)
isExcluded(address) should be declared external:
- CoinToken.isExcluded(address) (#550-552)
isCharity(address) should be declared external:
- CoinToken.isCharity(address) (#554-556)
totalFees() should be declared external:
- CoinToken.totalFees() (#558-560)
totalBurn() should be declared external:
- CoinToken.totalBurn() (#562-564)
totalCharity() should be declared external:
- CoinToken.totalCharity() (#566-568)
deliver(uint256) should be declared external:
- CoinToken.deliver(uint256) (#570-577)
reflectionFromToken(uint256,bool) should be declared external:
- CoinToken.reflectionFromToken(uint256,bool) (#579-588)
burn(uint256) should be declared external:
- CoinToken.burn(uint256) (#624-626)
updateFee(uint256,uint256,uint256) should be declared external:
- CoinToken.updateFee(uint256,uint256,uint256) (#628-635)
mint(address,uint256) should be declared external:
- CoinToken.mint(address,uint256) (#645-650)
Use the external attribute for functions never called from the contract.
Additional information: link
Contract name (Smart Chain Advanced Magic Multiplier Earning Rocket) has length of 52 chars.
Not a direct threat, but may indicate unreliable intentions of developer.
Unable to find website, listings and other project-related information
Token has a considerable age, but we're still unable to find its website
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Token has a considerable age, but social accounts / website are missing or have few users
Token has a considerable age, but average PancakeSwap 30d trading volume is low
Unable to find Telegram and Twitter accounts