Reentrancy in BEP20._transfer(address,address,uint256) (#622-657):
External calls:
- swapAndLiquify(contractTokenBalance) (#640)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#696-702)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#640)
- recipient.transfer(amount) (#605)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
State variables written after the call(s):
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#643)
- finalAmount = takeFee(sender,recipient,amount) (#649)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#732)
- _balances[recipient] = _balances[recipient].add(finalAmount) (#651)
Apply the check-effects-interactions pattern.
Additional information: link
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract ownership is not renounced (belongs to a wallet)
BEP20.addLiquidity(uint256,uint256) (#707-718) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
Ensure that all the return values of the function calls are used.
Additional information: link
BEP20.allowance(address,address).owner (#512) shadows:
- Ownable.owner() (#150-152) (function)
BEP20._approve(address,address,uint256).owner (#535) shadows:
- Ownable.owner() (#150-152) (function)
Rename the local variables that shadow another component.
Additional information: link
BEP20.setEatLargeCake(uint256,uint256,uint256) (#555-561) should emit an event for:
- _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee) (#560)
BEP20.setEatLittleCake(uint256,uint256,uint256) (#563-569) should emit an event for:
- _totalTaxIfmaichuing = _maichuLiquidityFee.add(_maichuMarketingFee).add(_maichuTeamFee) (#568)
BEP20.setDistributionSettings(uint256,uint256,uint256) (#571-577) should emit an event for:
- _liquidityShare = newLiquidityShare (#572)
- _teamShare = newTeamShare (#574)
- _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare) (#576)
BEP20.setNumTokensBeforeSwap(uint256) (#579-581) should emit an event for:
- minimumTokensBeforeSwap = newValue (#580)
Emit an event for critical parameter changes.
Additional information: link
BEP20.setdoYouLikeCake(address).newAddress (#583) lacks a zero-check on :
- doYouLikeCake = address(newAddress) (#584)
BEP20.setiLikeCake(address).newAddress (#587) lacks a zero-check on :
- iLikeCake = address(newAddress) (#588)
Check that the address is not zero.
Additional information: link
Reentrancy in BEP20.constructor(string,string,uint256,uint256[3],uint256[3],uint256[3],address[2]) (#441-490):
External calls:
- uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#477-478)
State variables written after the call(s):
- _allowances[address(this)][address(uniswapV2Router)] = _totalSupply (#481)
- _balances[_msgSender()] = _totalSupply (#488)
- isExcludedFromCut[owner()] = true (#483)
- isExcludedFromCut[address(this)] = true (#484)
- isMarketPair[address(uniswapPair)] = true (#486)
- uniswapV2Router = _uniswapV2Router (#480)
Reentrancy in BEP20.swapAndLiquify(uint256) (#666-688):
External calls:
- swapTokensForEth(tokensForSwap) (#671)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#696-702)
- addLiquidity(tokensForLP,amountBNBLiquidity) (#687)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
External calls sending eth:
- transferToAddressETH(doYouLikeCake,amountBNBMarketing) (#681)
- recipient.transfer(amount) (#605)
- transferToAddressETH(iLikeCake,amountBNBTeam) (#684)
- recipient.transfer(amount) (#605)
- addLiquidity(tokensForLP,amountBNBLiquidity) (#687)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
State variables written after the call(s):
- addLiquidity(tokensForLP,amountBNBLiquidity) (#687)
- _allowances[owner][spender] = amount (#539)
Reentrancy in BEP20.transferFrom(address,address,uint256) (#616-620):
External calls:
- _transfer(sender,recipient,amount) (#617)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#696-702)
External calls sending eth:
- _transfer(sender,recipient,amount) (#617)
- recipient.transfer(amount) (#605)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#618)
- _allowances[owner][spender] = amount (#539)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in BEP20._transfer(address,address,uint256) (#622-657):
External calls:
- swapAndLiquify(contractTokenBalance) (#640)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#696-702)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#640)
- recipient.transfer(amount) (#605)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
Event emitted after the call(s):
- Transfer(sender,address(this),feeAmount) (#733)
- finalAmount = takeFee(sender,recipient,amount) (#649)
- Transfer(sender,recipient,finalAmount) (#653)
Reentrancy in BEP20.constructor(string,string,uint256,uint256[3],uint256[3],uint256[3],address[2]) (#441-490):
External calls:
- uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#477-478)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_totalSupply) (#489)
Reentrancy in BEP20.swapAndLiquify(uint256) (#666-688):
External calls:
- swapTokensForEth(tokensForSwap) (#671)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#696-702)
- addLiquidity(tokensForLP,amountBNBLiquidity) (#687)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
External calls sending eth:
- transferToAddressETH(doYouLikeCake,amountBNBMarketing) (#681)
- recipient.transfer(amount) (#605)
- transferToAddressETH(iLikeCake,amountBNBTeam) (#684)
- recipient.transfer(amount) (#605)
- addLiquidity(tokensForLP,amountBNBLiquidity) (#687)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#540)
- addLiquidity(tokensForLP,amountBNBLiquidity) (#687)
Reentrancy in BEP20.swapTokensForEth(uint256) (#690-705):
External calls:
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#696-702)
Event emitted after the call(s):
- SwapTokensForETH(tokenAmount,path) (#704)
Reentrancy in BEP20.transferFrom(address,address,uint256) (#616-620):
External calls:
- _transfer(sender,recipient,amount) (#617)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#696-702)
External calls sending eth:
- _transfer(sender,recipient,amount) (#617)
- recipient.transfer(amount) (#605)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#540)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#618)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#84-93) uses assembly
- INLINE ASM (#91)
Address._functionCallWithValue(address,bytes,uint256,string) (#120-137) uses assembly
- INLINE ASM (#129-132)
Do not use evm assembly.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#120-137) is never used and should be removed
Address.functionCall(address,bytes) (#103-105) is never used and should be removed
Address.functionCall(address,bytes,string) (#107-109) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#111-113) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#115-118) is never used and should be removed
Address.isContract(address) (#84-93) is never used and should be removed
Address.sendValue(address,uint256) (#95-101) is never used and should be removed
Context._msgData() (#13-16) is never used and should be removed
SafeMath.mod(uint256,uint256) (#72-74) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#76-79) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#95-101):
- (success) = recipient.call{value: amount}() (#99)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#120-137):
- (success,returndata) = target.call{value: weiValue}(data) (#123)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#203) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#204) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#220) is not in mixedCase
Function IUniswapV2Router01.WETH() (#239) is not in mixedCase
Parameter BEP20.setSwapAndLiquifyEnabled(bool)._enabled (#591) is not in mixedCase
Variable BEP20._balances (#384) is not in mixedCase
Variable BEP20._buyLiquidityFee (#392) is not in mixedCase
Variable BEP20._buyMarketingFee (#393) is not in mixedCase
Variable BEP20._buyTeamFee (#394) is not in mixedCase
Variable BEP20._maichuLiquidityFee (#396) is not in mixedCase
Variable BEP20._maichuMarketingFee (#397) is not in mixedCase
Variable BEP20._maichuTeamFee (#398) is not in mixedCase
Variable BEP20._liquidityShare (#400) is not in mixedCase
Variable BEP20._marketingShare (#401) is not in mixedCase
Variable BEP20._teamShare (#402) is not in mixedCase
Variable BEP20._totalTaxIfBuying (#404) is not in mixedCase
Variable BEP20._totalTaxIfmaichuing (#405) is not in mixedCase
Variable BEP20._totalDistributionShares (#406) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#14)" inContext (#8-17)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in BEP20._transfer(address,address,uint256) (#622-657):
External calls:
- swapAndLiquify(contractTokenBalance) (#640)
- recipient.transfer(amount) (#605)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#640)
- recipient.transfer(amount) (#605)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
State variables written after the call(s):
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#643)
- finalAmount = takeFee(sender,recipient,amount) (#649)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#732)
- _balances[recipient] = _balances[recipient].add(finalAmount) (#651)
Event emitted after the call(s):
- Transfer(sender,address(this),feeAmount) (#733)
- finalAmount = takeFee(sender,recipient,amount) (#649)
- Transfer(sender,recipient,finalAmount) (#653)
Reentrancy in BEP20.swapAndLiquify(uint256) (#666-688):
External calls:
- transferToAddressETH(doYouLikeCake,amountBNBMarketing) (#681)
- recipient.transfer(amount) (#605)
- transferToAddressETH(iLikeCake,amountBNBTeam) (#684)
- recipient.transfer(amount) (#605)
External calls sending eth:
- transferToAddressETH(doYouLikeCake,amountBNBMarketing) (#681)
- recipient.transfer(amount) (#605)
- transferToAddressETH(iLikeCake,amountBNBTeam) (#684)
- recipient.transfer(amount) (#605)
- addLiquidity(tokensForLP,amountBNBLiquidity) (#687)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
State variables written after the call(s):
- addLiquidity(tokensForLP,amountBNBLiquidity) (#687)
- _allowances[owner][spender] = amount (#539)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#540)
- addLiquidity(tokensForLP,amountBNBLiquidity) (#687)
Reentrancy in BEP20.transferFrom(address,address,uint256) (#616-620):
External calls:
- _transfer(sender,recipient,amount) (#617)
- recipient.transfer(amount) (#605)
External calls sending eth:
- _transfer(sender,recipient,amount) (#617)
- recipient.transfer(amount) (#605)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#710-717)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#618)
- _allowances[owner][spender] = amount (#539)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#540)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#618)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#243) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#244)
Prevent variables from having similar names.
Additional information: link
BEP20.slitherConstructorVariables() (#371-740) uses literals with too many digits:
- deadAddress = 0x000000000000000000000000000000000000dEaD (#382)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
waiveOwnership() should be declared external:
- Ownable.waiveOwnership() (#159-162)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#164-168)
name() should be declared external:
- BEP20.name() (#492-494)
symbol() should be declared external:
- BEP20.symbol() (#496-498)
decimals() should be declared external:
- BEP20.decimals() (#500-502)
totalSupply() should be declared external:
- BEP20.totalSupply() (#504-506)
allowance(address,address) should be declared external:
- BEP20.allowance(address,address) (#512-514)
increaseAllowance(address,uint256) should be declared external:
- BEP20.increaseAllowance(address,uint256) (#516-519)
decreaseAllowance(address,uint256) should be declared external:
- BEP20.decreaseAllowance(address,uint256) (#521-524)
minimumTokensBeforeSwapAmount() should be declared external:
- BEP20.minimumTokensBeforeSwapAmount() (#526-528)
approve(address,uint256) should be declared external:
- BEP20.approve(address,uint256) (#530-533)
letsEatCake() should be declared external:
- BEP20.letsEatCake() (#543-545)
setMarketPairStatus(address,bool) should be declared external:
- BEP20.setMarketPairStatus(address,bool) (#547-549)
setisExcludedFromCut(address,bool) should be declared external:
- BEP20.setisExcludedFromCut(address,bool) (#551-553)
setSwapAndLiquifyEnabled(bool) should be declared external:
- BEP20.setSwapAndLiquifyEnabled(bool) (#591-594)
setSwapAndLiquifyBySmallOnly(bool) should be declared external:
- BEP20.setSwapAndLiquifyBySmallOnly(bool) (#596-598)
getCirculatingSupply() should be declared external:
- BEP20.getCirculatingSupply() (#600-602)
transfer(address,uint256) should be declared external:
- BEP20.transfer(address,uint256) (#611-614)
transferFrom(address,address,uint256) should be declared external:
- BEP20.transferFrom(address,address,uint256) (#616-620)
Use the external attribute for functions never called from the contract.
Additional information: link
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
Unable to find Telegram and Twitter accounts