Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
DogeClown._getRandomTransactionHash(address,address,uint256) (#763-765) uses a weak PRNG: "uint256(keccak256(bytes)(abi.encodePacked(now,from,to,amount))) % 100 (#764)"
DogeClown._transfer(address,address,uint256) (#767-788) uses a weak PRNG: "takeFee = random % _boomFactor == 0 (#779)"
Do not use block.timestamp, now or blockhash as a source of randomness
Additional information: link
DogeClown._transfer(address,address,uint256) (#767-788) uses a dangerous strict equality:
- takeFee = random % _boomFactor == 0 (#779)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
DogeClown.constructor() (#501-527) uses literals with too many digits:
- _tTotal = 100000000 * 10 ** _decimals (#505)
DogeClown.constructor() (#501-527) uses literals with too many digits:
- _maxTxAmount = 100000000 * 10 ** _decimals (#509)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
DogeClown.allowance(address,address).owner (#556) shadows:
- Ownable.owner() (#416-418) (function)
DogeClown._approve(address,address,uint256).owner (#755) shadows:
- Ownable.owner() (#416-418) (function)
Rename the local variables that shadow another component.
Additional information: link
DogeClown.setTaxFee(uint256) (#669-672) should emit an event for:
- _taxFee = taxFee (#671)
DogeClown.setMaxTx(uint256) (#675-677) should emit an event for:
- _maxTxAmount = maxTxPercent ** _decimals (#676)
DogeClown.setBoomFactor(uint256) (#679-681) should emit an event for:
- _boomFactor = boomFactor (#680)
Emit an event for critical parameter changes.
Additional information: link
Ownable.unlock() (#463-468) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now > _lockTime,Contract is locked until 7 days) (#465)
DogeClown._transfer(address,address,uint256) (#767-788) uses timestamp for comparisons
Dangerous comparisons:
- takeFee = random % _boomFactor == 0 (#779)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#275-284) uses assembly
- INLINE ASM (#282)
Address._functionCallWithValue(address,bytes,uint256,string) (#368-389) uses assembly
- INLINE ASM (#381-384)
Do not use evm assembly.
Additional information: link
DogeClown.includeInReward(address) (#638-649) has costly operations inside a loop:
- _excluded.pop() (#645)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#368-389) is never used and should be removed
Address.functionCall(address,bytes) (#328-330) is never used and should be removed
Address.functionCall(address,bytes,string) (#338-340) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#353-355) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#363-366) is never used and should be removed
Address.isContract(address) (#275-284) is never used and should be removed
Address.sendValue(address,uint256) (#302-308) is never used and should be removed
Context._msgData() (#247-250) is never used and should be removed
SafeMath.mod(uint256,uint256) (#220-222) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#236-239) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#302-308):
- (success) = recipient.call{value: amount}() (#306)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#368-389):
- (success,returndata) = target.call{value: weiValue}(data) (#372)
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 (#406) is not in mixedCase
Parameter DogeClown.calculateTaxFee(uint256)._amount (#733) is not in mixedCase
Variable DogeClown._taxFee (#495) is not in mixedCase
Variable DogeClown._maxTxAmount (#498) is not in mixedCase
Variable DogeClown._boomFactor (#499) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#248)" inContext (#242-251)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable DogeClown._transferBothExcluded(address,address,uint256).rTransferAmount (#652) is too similar to DogeClown._transferBothExcluded(address,address,uint256).tTransferAmount (#652)
Variable DogeClown._transferStandard(address,address,uint256).rTransferAmount (#813) is too similar to DogeClown._transferStandard(address,address,uint256).tTransferAmount (#813)
Variable DogeClown._getValues(uint256).rTransferAmount (#694) is too similar to DogeClown._transferBothExcluded(address,address,uint256).tTransferAmount (#652)
Variable DogeClown._transferBothExcluded(address,address,uint256).rTransferAmount (#652) is too similar to DogeClown._transferToExcluded(address,address,uint256).tTransferAmount (#821)
Variable DogeClown._getRValues(uint256,uint256,uint256).rTransferAmount (#707) is too similar to DogeClown._transferFromExcluded(address,address,uint256).tTransferAmount (#830)
Variable DogeClown._transferStandard(address,address,uint256).rTransferAmount (#813) is too similar to DogeClown._transferFromExcluded(address,address,uint256).tTransferAmount (#830)
Variable DogeClown._transferFromExcluded(address,address,uint256).rTransferAmount (#830) is too similar to DogeClown._transferFromExcluded(address,address,uint256).tTransferAmount (#830)
Variable DogeClown._getValues(uint256).rTransferAmount (#694) is too similar to DogeClown._transferToExcluded(address,address,uint256).tTransferAmount (#821)
Variable DogeClown._getRValues(uint256,uint256,uint256).rTransferAmount (#707) is too similar to DogeClown._getTValues(uint256).tTransferAmount (#700)
Variable DogeClown._transferStandard(address,address,uint256).rTransferAmount (#813) is too similar to DogeClown._getTValues(uint256).tTransferAmount (#700)
Variable DogeClown.reflectionFromToken(uint256,bool).rTransferAmount (#608) is too similar to DogeClown._transferFromExcluded(address,address,uint256).tTransferAmount (#830)
Variable DogeClown._transferToExcluded(address,address,uint256).rTransferAmount (#821) is too similar to DogeClown._transferToExcluded(address,address,uint256).tTransferAmount (#821)
Variable DogeClown.reflectionFromToken(uint256,bool).rTransferAmount (#608) is too similar to DogeClown._getTValues(uint256).tTransferAmount (#700)
Variable DogeClown._getRValues(uint256,uint256,uint256).rTransferAmount (#707) is too similar to DogeClown._transferBothExcluded(address,address,uint256).tTransferAmount (#652)
Variable DogeClown._transferStandard(address,address,uint256).rTransferAmount (#813) is too similar to DogeClown._transferBothExcluded(address,address,uint256).tTransferAmount (#652)
Variable DogeClown.reflectionFromToken(uint256,bool).rTransferAmount (#608) is too similar to DogeClown._transferBothExcluded(address,address,uint256).tTransferAmount (#652)
Variable DogeClown._transferBothExcluded(address,address,uint256).rTransferAmount (#652) is too similar to DogeClown._transferFromExcluded(address,address,uint256).tTransferAmount (#830)
Variable DogeClown._transferStandard(address,address,uint256).rTransferAmount (#813) is too similar to DogeClown._transferToExcluded(address,address,uint256).tTransferAmount (#821)
Variable DogeClown._getValues(uint256).rTransferAmount (#694) is too similar to DogeClown._transferFromExcluded(address,address,uint256).tTransferAmount (#830)
Variable DogeClown._getRValues(uint256,uint256,uint256).rTransferAmount (#707) is too similar to DogeClown._transferToExcluded(address,address,uint256).tTransferAmount (#821)
Variable DogeClown._transferFromExcluded(address,address,uint256).rTransferAmount (#830) is too similar to DogeClown._transferToExcluded(address,address,uint256).tTransferAmount (#821)
Variable DogeClown._transferBothExcluded(address,address,uint256).rTransferAmount (#652) is too similar to DogeClown._getTValues(uint256).tTransferAmount (#700)
Variable DogeClown.reflectionFromToken(uint256,bool).rTransferAmount (#608) is too similar to DogeClown._transferToExcluded(address,address,uint256).tTransferAmount (#821)
Variable DogeClown._getValues(uint256).rTransferAmount (#694) is too similar to DogeClown._getTValues(uint256).tTransferAmount (#700)
Variable DogeClown._transferStandard(address,address,uint256).rTransferAmount (#813) is too similar to DogeClown._getValues(uint256).tTransferAmount (#693)
Variable DogeClown._transferFromExcluded(address,address,uint256).rTransferAmount (#830) is too similar to DogeClown._transferBothExcluded(address,address,uint256).tTransferAmount (#652)
Variable DogeClown.reflectionFromToken(uint256,bool).rTransferAmount (#608) is too similar to DogeClown._getValues(uint256).tTransferAmount (#693)
Variable DogeClown._transferFromExcluded(address,address,uint256).rTransferAmount (#830) is too similar to DogeClown._getValues(uint256).tTransferAmount (#693)
Variable DogeClown.reflectionFromToken(uint256,bool).rTransferAmount (#608) is too similar to DogeClown._transferStandard(address,address,uint256).tTransferAmount (#813)
Variable DogeClown._transferToExcluded(address,address,uint256).rTransferAmount (#821) is too similar to DogeClown._transferFromExcluded(address,address,uint256).tTransferAmount (#830)
Variable DogeClown._transferFromExcluded(address,address,uint256).rTransferAmount (#830) is too similar to DogeClown._getTValues(uint256).tTransferAmount (#700)
Variable DogeClown._transferFromExcluded(address,address,uint256).rTransferAmount (#830) is too similar to DogeClown._transferStandard(address,address,uint256).tTransferAmount (#813)
Variable DogeClown._transferBothExcluded(address,address,uint256).rTransferAmount (#652) is too similar to DogeClown._getValues(uint256).tTransferAmount (#693)
Variable DogeClown._transferBothExcluded(address,address,uint256).rTransferAmount (#652) is too similar to DogeClown._transferStandard(address,address,uint256).tTransferAmount (#813)
Variable DogeClown._transferToExcluded(address,address,uint256).rTransferAmount (#821) is too similar to DogeClown._transferBothExcluded(address,address,uint256).tTransferAmount (#652)
Variable DogeClown._getValues(uint256).rTransferAmount (#694) is too similar to DogeClown._getValues(uint256).tTransferAmount (#693)
Variable DogeClown._transferToExcluded(address,address,uint256).rTransferAmount (#821) is too similar to DogeClown._getValues(uint256).tTransferAmount (#693)
Variable DogeClown._getRValues(uint256,uint256,uint256).rTransferAmount (#707) is too similar to DogeClown._getValues(uint256).tTransferAmount (#693)
Variable DogeClown._transferToExcluded(address,address,uint256).rTransferAmount (#821) is too similar to DogeClown._getTValues(uint256).tTransferAmount (#700)
Variable DogeClown._getValues(uint256).rTransferAmount (#694) is too similar to DogeClown._transferStandard(address,address,uint256).tTransferAmount (#813)
Variable DogeClown._transferToExcluded(address,address,uint256).rTransferAmount (#821) is too similar to DogeClown._transferStandard(address,address,uint256).tTransferAmount (#813)
Variable DogeClown._getRValues(uint256,uint256,uint256).rTransferAmount (#707) is too similar to DogeClown._transferStandard(address,address,uint256).tTransferAmount (#813)
Prevent variables from having similar names.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#435-438)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#444-448)
geUnlockTime() should be declared external:
- Ownable.geUnlockTime() (#450-452)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#455-460)
unlock() should be declared external:
- Ownable.unlock() (#463-468)
name() should be declared external:
- DogeClown.name() (#530-532)
symbol() should be declared external:
- DogeClown.symbol() (#534-536)
decimals() should be declared external:
- DogeClown.decimals() (#538-540)
totalSupply() should be declared external:
- DogeClown.totalSupply() (#542-544)
balanceOf(address) should be declared external:
- DogeClown.balanceOf(address) (#546-549)
transfer(address,uint256) should be declared external:
- DogeClown.transfer(address,uint256) (#551-554)
allowance(address,address) should be declared external:
- DogeClown.allowance(address,address) (#556-558)
approve(address,uint256) should be declared external:
- DogeClown.approve(address,uint256) (#560-563)
transferFrom(address,address,uint256) should be declared external:
- DogeClown.transferFrom(address,address,uint256) (#565-569)
increaseAllowance(address,uint256) should be declared external:
- DogeClown.increaseAllowance(address,uint256) (#571-574)
decreaseAllowance(address,uint256) should be declared external:
- DogeClown.decreaseAllowance(address,uint256) (#576-579)
isExcludedFromReward(address) should be declared external:
- DogeClown.isExcludedFromReward(address) (#581-583)
isExcludedFromMaxTxn(address) should be declared external:
- DogeClown.isExcludedFromMaxTxn(address) (#585-587)
totalFees() should be declared external:
- DogeClown.totalFees() (#589-591)
deliver(uint256) should be declared external:
- DogeClown.deliver(uint256) (#593-600)
reflectionFromToken(uint256,bool) should be declared external:
- DogeClown.reflectionFromToken(uint256,bool) (#602-611)
excludeFromReward(address) should be declared external:
- DogeClown.excludeFromReward(address) (#619-627)
excludeFromMaxTxn(address) should be declared external:
- DogeClown.excludeFromMaxTxn(address) (#629-632)
includeInMaxTxn(address) should be declared external:
- DogeClown.includeInMaxTxn(address) (#634-636)
excludeFromFee(address) should be declared external:
- DogeClown.excludeFromFee(address) (#661-663)
includeInFee(address) should be declared external:
- DogeClown.includeInFee(address) (#665-667)
setMaxTx(uint256) should be declared external:
- DogeClown.setMaxTx(uint256) (#675-677)
setBoomFactor(uint256) should be declared external:
- DogeClown.setBoomFactor(uint256) (#679-681)
restoreBoomFactor() should be declared external:
- DogeClown.restoreBoomFactor() (#683-685)
claimTokens() should be declared external:
- DogeClown.claimTokens() (#729-731)
isExcludedFromFee(address) should be declared external:
- DogeClown.isExcludedFromFee(address) (#751-753)
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 is marked as scam (rug pull, honeypot, phishing, etc.)
Additional information: link
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 Twitter account
Unable to find Blog account (Reddit or Medium)
Unable to find Youtube account
Unable to find Discord account