Built by the community ...for the community!
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
CoinToken.allowance(address,address).owner (#523) shadows:
- Ownable.owner() (#406-408) (function)
CoinToken._approve(address,address,uint256).owner (#632) shadows:
- Ownable.owner() (#406-408) (function)
Rename the local variables that shadow another component.
Additional information: link
CoinToken.updateFee(uint256,uint256,uint256) (#618-626) should emit an event for:
- _TAX_FEE = _txFee * 100 (#620)
- _BURN_FEE = _burnFee * 100 (#621)
- _CHARITY_FEE = _charityFee * 100 (#622)
- ORIG_TAX_FEE = _TAX_FEE (#623)
- ORIG_BURN_FEE = _BURN_FEE (#624)
- ORIG_CHARITY_FEE = _CHARITY_FEE (#625)
Emit an event for critical parameter changes.
Additional information: link
CoinToken._GRANULARITY (#459) should be constant
CoinToken._MAX (#457) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
CoinToken.constructor(string,string,uint256,uint256,uint256,uint256,uint256,address,address,address)._FeeAddress (#477) lacks a zero-check on :
- FeeAddress = _FeeAddress (#490)
CoinToken.constructor(string,string,uint256,uint256,uint256,uint256,uint256,address,address,address).tokenOwner (#477) lacks a zero-check on :
- _owner = tokenOwner (#491)
CoinToken.constructor(string,string,uint256,uint256,uint256,uint256,uint256,address,address,address).service (#477) lacks a zero-check on :
- address(service).transfer(msg.value) (#493)
CoinToken.setAsCharityAccount(address).account (#613) lacks a zero-check on :
- FeeAddress = account (#614)
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) (#600-611) has costly operations inside a loop:
- _excluded.pop() (#607)
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() (#820-822) 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.updateFee(uint256,uint256,uint256)._txFee (#618) is not in mixedCase
Parameter CoinToken.updateFee(uint256,uint256,uint256)._burnFee (#618) is not in mixedCase
Parameter CoinToken.updateFee(uint256,uint256,uint256)._charityFee (#618) is not in mixedCase
Variable CoinToken._NAME (#452) is not in mixedCase
Variable CoinToken._SYMBOL (#453) is not in mixedCase
Variable CoinToken._DECIMALS (#454) is not in mixedCase
Variable CoinToken.FeeAddress (#455) is not in mixedCase
Variable CoinToken._MAX (#457) is not in mixedCase
Variable CoinToken._DECIMALFACTOR (#458) is not in mixedCase
Variable CoinToken._GRANULARITY (#459) is not in mixedCase
Variable CoinToken._TAX_FEE (#468) is not in mixedCase
Variable CoinToken._BURN_FEE (#469) is not in mixedCase
Variable CoinToken._CHARITY_FEE (#470) is not in mixedCase
Variable CoinToken.ORIG_TAX_FEE (#473) is not in mixedCase
Variable CoinToken.ORIG_BURN_FEE (#474) is not in mixedCase
Variable CoinToken.ORIG_CHARITY_FEE (#475) 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
Reentrancy in CoinToken.constructor(string,string,uint256,uint256,uint256,uint256,uint256,address,address,address) (#477-495):
External calls:
- address(service).transfer(msg.value) (#493)
Event emitted after the call(s):
- Transfer(address(0),tokenOwner,_tTotal) (#494)
Apply the check-effects-interactions pattern.
Additional information: link
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#686) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#719)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#711) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#719)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#773) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#703)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#694) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#727)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#679) is too similar to CoinToken._getValues(uint256).tTransferAmount (#746)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#686) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#727)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#711) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#727)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#679) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#694)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#694) is too similar to CoinToken._getValues(uint256).tTransferAmount (#746)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#686) is too similar to CoinToken._getValues(uint256).tTransferAmount (#746)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#703) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#727)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#671) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#719)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#679) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#703)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#686) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#694)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#671) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#727)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#694) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#703)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#679) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#686)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#686) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#703)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#773) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#719)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#711) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#703)
Variable CoinToken._getValues(uint256).rTransferAmount (#749) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#727)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#694) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#686)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#686) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#686)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#773) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#727)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#703) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#703)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#671) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#694)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#773) is too similar to CoinToken._getValues(uint256).tTransferAmount (#746)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#679) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#719)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#671) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#703)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#671) is too similar to CoinToken._getValues(uint256).tTransferAmount (#746)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#671) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#671)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#773) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#686)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#694) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#719)
Variable CoinToken._transferStandard(address,address,uint256).rTransferAmount (#671) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#686)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#679) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#727)
Variable CoinToken._getValues(uint256).rTransferAmount (#749) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#703)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#727) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#686)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#719) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#686)
Variable CoinToken._getValues(uint256).rTransferAmount (#749) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#686)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#703) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#671)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#727) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#703)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#719) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#703)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#703) is too similar to CoinToken._getValues(uint256).tTransferAmount (#746)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#711) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#671)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#773) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#694)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#711) is too similar to CoinToken._getValues(uint256).tTransferAmount (#746)
Variable CoinToken._transferToExcluded(address,address,uint256).rTransferAmount (#686) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#671)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#727) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#671)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#719) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#671)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#580) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#719)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#694) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#671)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#727) is too similar to CoinToken._getValues(uint256).tTransferAmount (#746)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#719) is too similar to CoinToken._getValues(uint256).tTransferAmount (#746)
Variable CoinToken._getValues(uint256).rTransferAmount (#749) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#671)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#580) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#727)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#703) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#694)
Variable CoinToken._getValues(uint256).rTransferAmount (#749) is too similar to CoinToken._getValues(uint256).tTransferAmount (#746)
Variable CoinToken._standardTransferContent(address,address,uint256,uint256).rTransferAmount (#679) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#671)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#711) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#694)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#580) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#686)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#727) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#694)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#719) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#694)
Variable CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#694) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#694)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#580) is too similar to CoinToken._getValues(uint256).tTransferAmount (#746)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#703) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#719)
Variable CoinToken._getValues(uint256).rTransferAmount (#749) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#694)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#580) is too similar to CoinToken._transferFromExcluded(address,address,uint256).tTransferAmount (#703)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#727) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#719)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#719) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#719)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#580) is too similar to CoinToken._excludedFromTransferContent(address,address,uint256,uint256,uint256).tTransferAmount (#694)
Variable CoinToken.reflectionFromToken(uint256,bool).rTransferAmount (#580) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#671)
Variable CoinToken._transferFromExcluded(address,address,uint256).rTransferAmount (#703) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#686)
Variable CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#727) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#727)
Variable CoinToken._getValues(uint256).rTransferAmount (#749) is too similar to CoinToken._transferBothExcluded(address,address,uint256).tTransferAmount (#719)
Variable CoinToken._transferBothExcluded(address,address,uint256).rTransferAmount (#719) is too similar to CoinToken._bothTransferContent(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#727)
Variable CoinToken._excludedToTransferContent(address,address,uint256,uint256,uint256).rTransferAmount (#711) is too similar to CoinToken._transferToExcluded(address,address,uint256).tTransferAmount (#686)
Variable CoinToken._getRTransferAmount(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#773) is too similar to CoinToken._transferStandard(address,address,uint256).tTransferAmount (#671)
Prevent variables from having similar names.
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() (#497-499)
symbol() should be declared external:
- CoinToken.symbol() (#501-503)
decimals() should be declared external:
- CoinToken.decimals() (#505-507)
totalSupply() should be declared external:
- CoinToken.totalSupply() (#509-511)
balanceOf(address) should be declared external:
- CoinToken.balanceOf(address) (#513-516)
transfer(address,uint256) should be declared external:
- CoinToken.transfer(address,uint256) (#518-521)
allowance(address,address) should be declared external:
- CoinToken.allowance(address,address) (#523-525)
approve(address,uint256) should be declared external:
- CoinToken.approve(address,uint256) (#527-530)
transferFrom(address,address,uint256) should be declared external:
- CoinToken.transferFrom(address,address,uint256) (#532-536)
increaseAllowance(address,uint256) should be declared external:
- CoinToken.increaseAllowance(address,uint256) (#538-541)
decreaseAllowance(address,uint256) should be declared external:
- CoinToken.decreaseAllowance(address,uint256) (#543-546)
isExcluded(address) should be declared external:
- CoinToken.isExcluded(address) (#548-550)
totalFees() should be declared external:
- CoinToken.totalFees() (#553-555)
totalBurn() should be declared external:
- CoinToken.totalBurn() (#557-559)
totalCharity() should be declared external:
- CoinToken.totalCharity() (#561-563)
deliver(uint256) should be declared external:
- CoinToken.deliver(uint256) (#565-572)
reflectionFromToken(uint256,bool) should be declared external:
- CoinToken.reflectionFromToken(uint256,bool) (#574-583)
updateFee(uint256,uint256,uint256) should be declared external:
- CoinToken.updateFee(uint256,uint256,uint256) (#618-626)
Use the external attribute for functions never called from the contract.
Additional information: link
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Unable to find token on CoinGecko
Additional information: link
Unable to find token/project description on the website or on BscScan, CoinMarketCap
Unable to find whitepaper link on the website
Unable to find token on CoinHunt
Additional information: link
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Telegram account link seems to be invalid