MotherDoge Token Logo

MotherDoge Token

ALERT: honeypot scam

About MotherDoge

Listings

Not Found
Token 2 years

Website

Not Found

Description

Not Found

Social

Not Found

Laser Scorebeta Last Audit: 7 May 2022

report
Token seems to be a scam (type: honeypot scam).


Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)

MotherDoge.swapBack() (#334-375) sends eth to arbitrary user
Dangerous calls:
- (MarketingSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#359)
- (devSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBdev}() (#361)
MotherDoge.manualSend() (#440-443) sends eth to arbitrary user
Dangerous calls:
- address(devFeeReceiver).transfer(contractETHBalance) (#442)
MotherDoge.transferForeignToken(address) (#445-449) sends eth to arbitrary user
Dangerous calls:
- address(devFeeReceiver).transfer(_contractBalance) (#448)
Ensure that an arbitrary user cannot withdraw unauthorized funds.

Additional information: link

Reentrancy in MotherDoge._transferFrom(address,address,uint256) (#269-295):
External calls:
- swapBack() (#284)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#345-351)
- (MarketingSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#359)
- (devSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBdev}() (#361)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,devFeeReceiver,block.timestamp) (#365-372)
External calls sending eth:
- swapBack() (#284)
- (MarketingSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#359)
- (devSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBdev}() (#361)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,devFeeReceiver,block.timestamp) (#365-372)
State variables written after the call(s):
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#288)
- _balances[recipient] = _balances[recipient].add(amountReceived) (#291)
- amountReceived = takeFee(sender,recipient,amount) (#290)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#321)
Apply the check-effects-interactions pattern.

Additional information: link


Contract ownership is not renounced (belongs to a wallet)


Combination 1: Reentrancy vulnerabilities + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.

MotherDoge.slitherConstructorVariables() (#167-466) performs a multiplication on the result of a division:
-swapThreshold = _totalSupply / 10000 * 25 (#207)
Consider ordering multiplication before division.

Additional information: link

MotherDoge.swapBack() (#334-375) ignores return value by router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,devFeeReceiver,block.timestamp) (#365-372)
Ensure that all the return values of the function calls are used.

Additional information: link

MotherDoge.setFees(uint256,uint256,uint256,uint256) (#403-409) should emit an event for:
- liquidityFee = _liquidityFee (#404)
- marketingFee = _marketingFee (#405)
- devFee = _devFee (#406)
- totalFee = _liquidityFee.add(_marketingFee).add(_devFee) (#407)
- feeDenominator = _feeDenominator (#408)
MotherDoge.setSellMultiplier(uint256) (#421-423) should emit an event for:
- _sellMultiplier = multiplier (#422)
MotherDoge.setTxLimit(uint256) (#429-431) should emit an event for:
- _maxTxAmount = amountBuy (#430)
MotherDoge.setSwapBackSettings(bool,uint256) (#432-435) should emit an event for:
- swapThreshold = _amount (#434)
Emit an event for critical parameter changes.

Additional information: link

Auth.transferOwnership(address).adr (#96) lacks a zero-check on :
- owner = adr (#97)
MotherDoge.setFeeReceiver(address,address)._marketingFeeReceiver (#424) lacks a zero-check on :
- marketingFeeReceiver = _marketingFeeReceiver (#425)
MotherDoge.setFeeReceiver(address,address)._devFeeReceiver (#424) lacks a zero-check on :
- devFeeReceiver = _devFeeReceiver (#426)
Check that the address is not zero.

Additional information: link

Reentrancy in MotherDoge._transferFrom(address,address,uint256) (#269-295):
External calls:
- swapBack() (#284)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#345-351)
- (MarketingSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#359)
- (devSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBdev}() (#361)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,devFeeReceiver,block.timestamp) (#365-372)
External calls sending eth:
- swapBack() (#284)
- (MarketingSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#359)
- (devSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBdev}() (#361)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,devFeeReceiver,block.timestamp) (#365-372)
State variables written after the call(s):
- launch() (#286)
- launchedAt = block.number (#395)
Reentrancy in MotherDoge.constructor() (#216-235):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#218)
State variables written after the call(s):
- _allowances[address(this)][address(router)] = type()(uint256).max (#219)
- _balances[_owner] = _totalSupply (#233)
- isFeeExempt[msg.sender] = true (#222)
- isTimelockExempt[msg.sender] = true (#228)
- isTimelockExempt[DEAD] = true (#229)
- isTimelockExempt[address(this)] = true (#230)
- isTxLimitExempt[address(this)] = true (#223)
- isTxLimitExempt[routerAddress] = true (#224)
- isTxLimitExempt[msg.sender] = true (#225)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in MotherDoge._transferFrom(address,address,uint256) (#269-295):
External calls:
- swapBack() (#284)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#345-351)
- (MarketingSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#359)
- (devSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBdev}() (#361)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,devFeeReceiver,block.timestamp) (#365-372)
External calls sending eth:
- swapBack() (#284)
- (MarketingSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#359)
- (devSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBdev}() (#361)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,devFeeReceiver,block.timestamp) (#365-372)
Event emitted after the call(s):
- Transfer(sender,address(this),feeAmount) (#322)
- amountReceived = takeFee(sender,recipient,amount) (#290)
- Transfer(sender,recipient,amountReceived) (#293)
Reentrancy in MotherDoge.constructor() (#216-235):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#218)
Event emitted after the call(s):
- Transfer(address(0),_owner,_totalSupply) (#234)
Reentrancy in MotherDoge.swapBack() (#334-375):
External calls:
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#345-351)
- (MarketingSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#359)
- (devSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBdev}() (#361)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,devFeeReceiver,block.timestamp) (#365-372)
External calls sending eth:
- (MarketingSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#359)
- (devSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBdev}() (#361)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,devFeeReceiver,block.timestamp) (#365-372)
Event emitted after the call(s):
- AutoLiquify(amountBNBLiquidity,amountToLiquify) (#373)
Apply the check-effects-interactions pattern.

Additional information: link

MotherDoge._transferFrom(address,address,uint256) (#269-295) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(cooldownTimer[recipient] < block.timestamp,Please wait for 1min between two operations) (#281)
Avoid relying on block.timestamp.

Additional information: link

MotherDoge.buyTokens(uint256,address) (#377-388) is never used and should be removed
Remove unused functions.

Additional information: link

MotherDoge._maxTxAmount (#180) is set pre-construction with a non-constant function or state variable:
- (_totalSupply * 2) / 100
MotherDoge._maxWalletSize (#181) is set pre-construction with a non-constant function or state variable:
- (_totalSupply * 6) / 100
MotherDoge.swapThreshold (#207) is set pre-construction with a non-constant function or state variable:
- _totalSupply / 10000 * 25
Remove any initialization of state variables via non-constant state variables or function calls. If variables must be set upon contract deployment, locate initialization in the constructor instead.

Additional information: link

Pragma version^0.8.11 (#6) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.11 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 MotherDoge.swapBack() (#334-375):
- (MarketingSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#359)
- (devSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBdev}() (#361)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

Variable Auth._intAddr (#71) is not in mixedCase
Function IDEXRouter.WETH() (#121) is not in mixedCase
Parameter MotherDoge.setFees(uint256,uint256,uint256,uint256)._liquidityFee (#403) is not in mixedCase
Parameter MotherDoge.setFees(uint256,uint256,uint256,uint256)._marketingFee (#403) is not in mixedCase
Parameter MotherDoge.setFees(uint256,uint256,uint256,uint256)._devFee (#403) is not in mixedCase
Parameter MotherDoge.setFees(uint256,uint256,uint256,uint256)._feeDenominator (#403) is not in mixedCase
Parameter MotherDoge.cooldownEnabled(bool,uint8)._status (#411) is not in mixedCase
Parameter MotherDoge.cooldownEnabled(bool,uint8)._interval (#411) is not in mixedCase
Parameter MotherDoge.setFeeReceiver(address,address)._marketingFeeReceiver (#424) is not in mixedCase
Parameter MotherDoge.setFeeReceiver(address,address)._devFeeReceiver (#424) is not in mixedCase
Parameter MotherDoge.setSwapBackSettings(bool,uint256)._enabled (#432) is not in mixedCase
Parameter MotherDoge.setSwapBackSettings(bool,uint256)._amount (#432) is not in mixedCase
Parameter MotherDoge.isBots(address,bool)._address (#437) is not in mixedCase
Parameter MotherDoge.isBots(address,bool)._value (#437) is not in mixedCase
Parameter MotherDoge.transferForeignToken(address)._token (#445) is not in mixedCase
Variable MotherDoge.WBNB (#170) is not in mixedCase
Variable MotherDoge.DEAD (#171) is not in mixedCase
Variable MotherDoge.ZERO (#172) is not in mixedCase
Constant MotherDoge._name (#175) is not in UPPER_CASE_WITH_UNDERSCORES
Constant MotherDoge._symbol (#176) is not in UPPER_CASE_WITH_UNDERSCORES
Constant MotherDoge._decimals (#177) is not in UPPER_CASE_WITH_UNDERSCORES
Variable MotherDoge._totalSupply (#179) is not in mixedCase
Variable MotherDoge._maxTxAmount (#180) is not in mixedCase
Variable MotherDoge._maxWalletSize (#181) is not in mixedCase
Variable MotherDoge._balances (#183) is not in mixedCase
Variable MotherDoge._allowances (#184) is not in mixedCase
Variable MotherDoge._sellMultiplier (#196) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Variable IDEXRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#126) is too similar to IDEXRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#127)
Prevent variables from having similar names.

Additional information: link

MotherDoge.slitherConstructorVariables() (#167-466) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (#171)
MotherDoge.slitherConstructorVariables() (#167-466) uses literals with too many digits:
- ZERO = 0x0000000000000000000000000000000000000000 (#172)
MotherDoge.slitherConstructorVariables() (#167-466) uses literals with too many digits:
- _totalSupply = 1000000000000 * (10 ** _decimals) (#179)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

MotherDoge.DEAD (#171) should be constant
MotherDoge.WBNB (#170) should be constant
MotherDoge.ZERO (#172) should be constant
MotherDoge._totalSupply (#179) should be constant
MotherDoge.routerAddress (#173) should be constant
Add the constant attributes to state variables that never change.

Additional information: link

transferOwnership(address) should be declared external:
- Auth.transferOwnership(address) (#96-100)
renounceOwnership() should be declared external:
- Auth.renounceOwnership() (#108-110)
cooldownEnabled(bool,uint8) should be declared external:
- MotherDoge.cooldownEnabled(bool,uint8) (#411-414)
isBots(address,bool) should be declared external:
- MotherDoge.isBots(address,bool) (#437-439)
transferForeignToken(address) should be declared external:
- MotherDoge.transferForeignToken(address) (#445-449)
isOverLiquified(uint256,uint256) should be declared external:
- MotherDoge.isOverLiquified(uint256,uint256) (#460-462)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:


Number of Binance Smart Chain (BSC) token holders is less than 100. Token is either dead or inactive. Ignore for presale.


Token seems to be untradeable: there is no PancakeSwap trading pair and no trading volumes. Ignore for presale.


Unable to find Telegram and Twitter accounts


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

Price for MotherDoge