DogeFather is a community owned Meme token, which aims to build a decentralized ecosystem.
It aims to develop:
dGames
dChart
dSwap
dPad
dPad will empower crypto currency projects with the ability to distribute tokens and raise liquidity.
dGames is a Play-To-Earn GameFi.
dChart is a comprehensive DeFi tools and Pool explorer on Binance Smart Chain.
dSwap is a Decentralized exchange (DEX) that operates without the involvement of a central
authority or third party.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
DOGEFATHER._getTValues(uint256) (#648-652) performs a multiplication on the result of a division:
-tFee = tAmount.div(100).mul(1) (#649)
Consider ordering multiplication before division.
Additional information: link
DOGEFATHER.allowance(address,address).owner (#474) shadows:
- Ownable.owner() (#382-384) (function)
DOGEFATHER._approve(address,address,uint256).owner (#562) shadows:
- Ownable.owner() (#382-384) (function)
Rename the local variables that shadow another component.
Additional information: link
DOGEFATHER.setUniswapPair(address).pair (#678) lacks a zero-check on :
- uniswapPair = pair (#679)
Check that the address is not zero.
Additional information: link
Redundant expression "this (#11)" inContext (#5-14)
Remove redundant statements if they congest code but offer no value.
Additional information: link
DOGEFATHER.setMaxTxPercent(uint256) (#508-512) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(10 ** 1) (#509-511)
Emit an event for critical parameter changes.
Additional information: link
DOGEFATHER._transfer(address,address,uint256) (#570-598) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp >= lastBuy[sender] + transfertimeout,currently in 10 sec lock) (#584)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#248-257) uses assembly
- INLINE ASM (#255)
Address._functionCallWithValue(address,bytes,uint256,string) (#341-362) uses assembly
- INLINE ASM (#354-357)
Do not use evm assembly.
Additional information: link
DOGEFATHER.includeAccount(address) (#549-560) has costly operations inside a loop:
- _excluded.pop() (#556)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#341-362) is never used and should be removed
Address.functionCall(address,bytes) (#301-303) is never used and should be removed
Address.functionCall(address,bytes,string) (#311-313) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#326-328) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#336-339) is never used and should be removed
Address.isContract(address) (#248-257) is never used and should be removed
Address.sendValue(address,uint256) (#275-281) is never used and should be removed
Context._msgData() (#10-13) is never used and should be removed
SafeMath.mod(uint256,uint256) (#208-210) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#224-227) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#275-281):
- (success) = recipient.call{value: amount}() (#279)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#341-362):
- (success,returndata) = target.call{value: weiValue}(data) (#345)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Constant DOGEFATHER._tTotal (#430) is not in UPPER_CASE_WITH_UNDERSCORES
Variable DOGEFATHER._maxTxAmount (#437) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable DOGEFATHER._getValues(uint256).rTransferAmount (#644) is too similar to DOGEFATHER._transferToExcluded(address,address,uint256).tTransferAmount (#609)
Variable DOGEFATHER._transferStandard(address,address,uint256).rTransferAmount (#601) is too similar to DOGEFATHER._transferStandard(address,address,uint256).tTransferAmount (#601)
Variable DOGEFATHER._transferToExcluded(address,address,uint256).rTransferAmount (#609) is too similar to DOGEFATHER._transferToExcluded(address,address,uint256).tTransferAmount (#609)
Variable DOGEFATHER._getValues(uint256).rTransferAmount (#644) is too similar to DOGEFATHER._getTValues(uint256).tTransferAmount (#650)
Variable DOGEFATHER._transferFromExcluded(address,address,uint256).rTransferAmount (#618) is too similar to DOGEFATHER._getValues(uint256).tTransferAmount (#642)
Variable DOGEFATHER.reflectionFromToken(uint256,bool).rTransferAmount (#529) is too similar to DOGEFATHER._transferStandard(address,address,uint256).tTransferAmount (#601)
Variable DOGEFATHER._transferBothExcluded(address,address,uint256).rTransferAmount (#627) is too similar to DOGEFATHER._transferStandard(address,address,uint256).tTransferAmount (#601)
Variable DOGEFATHER._transferFromExcluded(address,address,uint256).rTransferAmount (#618) is too similar to DOGEFATHER._transferBothExcluded(address,address,uint256).tTransferAmount (#627)
Variable DOGEFATHER._transferFromExcluded(address,address,uint256).rTransferAmount (#618) is too similar to DOGEFATHER._transferToExcluded(address,address,uint256).tTransferAmount (#609)
Variable DOGEFATHER._getRValues(uint256,uint256,uint256).rTransferAmount (#657) is too similar to DOGEFATHER._getValues(uint256).tTransferAmount (#642)
Variable DOGEFATHER._getRValues(uint256,uint256,uint256).rTransferAmount (#657) is too similar to DOGEFATHER._transferBothExcluded(address,address,uint256).tTransferAmount (#627)
Variable DOGEFATHER._getRValues(uint256,uint256,uint256).rTransferAmount (#657) is too similar to DOGEFATHER._transferToExcluded(address,address,uint256).tTransferAmount (#609)
Variable DOGEFATHER._transferFromExcluded(address,address,uint256).rTransferAmount (#618) is too similar to DOGEFATHER._transferFromExcluded(address,address,uint256).tTransferAmount (#618)
Variable DOGEFATHER._transferFromExcluded(address,address,uint256).rTransferAmount (#618) is too similar to DOGEFATHER._getTValues(uint256).tTransferAmount (#650)
Variable DOGEFATHER._getRValues(uint256,uint256,uint256).rTransferAmount (#657) is too similar to DOGEFATHER._transferFromExcluded(address,address,uint256).tTransferAmount (#618)
Variable DOGEFATHER._getRValues(uint256,uint256,uint256).rTransferAmount (#657) is too similar to DOGEFATHER._getTValues(uint256).tTransferAmount (#650)
Variable DOGEFATHER._transferStandard(address,address,uint256).rTransferAmount (#601) is too similar to DOGEFATHER._getValues(uint256).tTransferAmount (#642)
Variable DOGEFATHER._transferStandard(address,address,uint256).rTransferAmount (#601) is too similar to DOGEFATHER._transferToExcluded(address,address,uint256).tTransferAmount (#609)
Variable DOGEFATHER.reflectionFromToken(uint256,bool).rTransferAmount (#529) is too similar to DOGEFATHER._getValues(uint256).tTransferAmount (#642)
Variable DOGEFATHER._transferBothExcluded(address,address,uint256).rTransferAmount (#627) is too similar to DOGEFATHER._getValues(uint256).tTransferAmount (#642)
Variable DOGEFATHER.reflectionFromToken(uint256,bool).rTransferAmount (#529) is too similar to DOGEFATHER._transferBothExcluded(address,address,uint256).tTransferAmount (#627)
Variable DOGEFATHER._transferBothExcluded(address,address,uint256).rTransferAmount (#627) is too similar to DOGEFATHER._transferBothExcluded(address,address,uint256).tTransferAmount (#627)
Variable DOGEFATHER.reflectionFromToken(uint256,bool).rTransferAmount (#529) is too similar to DOGEFATHER._transferToExcluded(address,address,uint256).tTransferAmount (#609)
Variable DOGEFATHER._transferBothExcluded(address,address,uint256).rTransferAmount (#627) is too similar to DOGEFATHER._transferToExcluded(address,address,uint256).tTransferAmount (#609)
Variable DOGEFATHER._transferStandard(address,address,uint256).rTransferAmount (#601) is too similar to DOGEFATHER._getTValues(uint256).tTransferAmount (#650)
Variable DOGEFATHER.reflectionFromToken(uint256,bool).rTransferAmount (#529) is too similar to DOGEFATHER._transferFromExcluded(address,address,uint256).tTransferAmount (#618)
Variable DOGEFATHER.reflectionFromToken(uint256,bool).rTransferAmount (#529) is too similar to DOGEFATHER._getTValues(uint256).tTransferAmount (#650)
Variable DOGEFATHER._transferBothExcluded(address,address,uint256).rTransferAmount (#627) is too similar to DOGEFATHER._getTValues(uint256).tTransferAmount (#650)
Variable DOGEFATHER._transferFromExcluded(address,address,uint256).rTransferAmount (#618) is too similar to DOGEFATHER._transferStandard(address,address,uint256).tTransferAmount (#601)
Variable DOGEFATHER._getRValues(uint256,uint256,uint256).rTransferAmount (#657) is too similar to DOGEFATHER._transferStandard(address,address,uint256).tTransferAmount (#601)
Variable DOGEFATHER._transferToExcluded(address,address,uint256).rTransferAmount (#609) is too similar to DOGEFATHER._getValues(uint256).tTransferAmount (#642)
Variable DOGEFATHER._transferToExcluded(address,address,uint256).rTransferAmount (#609) is too similar to DOGEFATHER._getTValues(uint256).tTransferAmount (#650)
Variable DOGEFATHER._getValues(uint256).rTransferAmount (#644) is too similar to DOGEFATHER._transferBothExcluded(address,address,uint256).tTransferAmount (#627)
Variable DOGEFATHER._transferStandard(address,address,uint256).rTransferAmount (#601) is too similar to DOGEFATHER._transferBothExcluded(address,address,uint256).tTransferAmount (#627)
Variable DOGEFATHER._transferBothExcluded(address,address,uint256).rTransferAmount (#627) is too similar to DOGEFATHER._transferFromExcluded(address,address,uint256).tTransferAmount (#618)
Variable DOGEFATHER._transferToExcluded(address,address,uint256).rTransferAmount (#609) is too similar to DOGEFATHER._transferFromExcluded(address,address,uint256).tTransferAmount (#618)
Variable DOGEFATHER._getValues(uint256).rTransferAmount (#644) is too similar to DOGEFATHER._transferStandard(address,address,uint256).tTransferAmount (#601)
Variable DOGEFATHER._getValues(uint256).rTransferAmount (#644) is too similar to DOGEFATHER._getValues(uint256).tTransferAmount (#642)
Variable DOGEFATHER._transferToExcluded(address,address,uint256).rTransferAmount (#609) is too similar to DOGEFATHER._transferBothExcluded(address,address,uint256).tTransferAmount (#627)
Variable DOGEFATHER._transferToExcluded(address,address,uint256).rTransferAmount (#609) is too similar to DOGEFATHER._transferStandard(address,address,uint256).tTransferAmount (#601)
Variable DOGEFATHER._getValues(uint256).rTransferAmount (#644) is too similar to DOGEFATHER._transferFromExcluded(address,address,uint256).tTransferAmount (#618)
Variable DOGEFATHER._transferStandard(address,address,uint256).rTransferAmount (#601) is too similar to DOGEFATHER._transferFromExcluded(address,address,uint256).tTransferAmount (#618)
Prevent variables from having similar names.
Additional information: link
DOGEFATHER.slitherConstructorVariables() (#418-682) uses literals with too many digits:
- _maxTxAmount = 10000000 * 10 ** 6 * 10 ** 9 (#437)
DOGEFATHER.slitherConstructorConstantVariables() (#418-682) uses literals with too many digits:
- _tTotal = 1000000000 * 10 ** 6 * 10 ** 9 (#430)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
DOGEFATHER._decimals (#436) should be constant
DOGEFATHER._name (#434) should be constant
DOGEFATHER._symbol (#435) should be constant
DOGEFATHER.transfertimeout (#439) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#401-404)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#410-414)
name() should be declared external:
- DOGEFATHER.name() (#448-450)
symbol() should be declared external:
- DOGEFATHER.symbol() (#452-454)
decimals() should be declared external:
- DOGEFATHER.decimals() (#456-458)
totalSupply() should be declared external:
- DOGEFATHER.totalSupply() (#460-462)
balanceOf(address) should be declared external:
- DOGEFATHER.balanceOf(address) (#464-467)
transfer(address,uint256) should be declared external:
- DOGEFATHER.transfer(address,uint256) (#469-472)
allowance(address,address) should be declared external:
- DOGEFATHER.allowance(address,address) (#474-476)
approve(address,uint256) should be declared external:
- DOGEFATHER.approve(address,uint256) (#478-481)
transferFrom(address,address,uint256) should be declared external:
- DOGEFATHER.transferFrom(address,address,uint256) (#483-487)
increaseAllowance(address,uint256) should be declared external:
- DOGEFATHER.increaseAllowance(address,uint256) (#489-492)
decreaseAllowance(address,uint256) should be declared external:
- DOGEFATHER.decreaseAllowance(address,uint256) (#494-497)
isExcluded(address) should be declared external:
- DOGEFATHER.isExcluded(address) (#499-501)
totalFees() should be declared external:
- DOGEFATHER.totalFees() (#503-505)
reflect(uint256) should be declared external:
- DOGEFATHER.reflect(uint256) (#514-521)
reflectionFromToken(uint256,bool) should be declared external:
- DOGEFATHER.reflectionFromToken(uint256,bool) (#523-532)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find whitepaper link on the website
Unable to find token on CoinHunt
Additional information: link
Token is marked as scam (rug pull, honeypot, phishing, etc.)
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
Young tokens have high risks of scam / price dump / death
Alexa traffic rank is relatively low
Additional information: link
Token has relatively low CoinGecko rank
Unable to find Youtube account
Unable to find Discord account