Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Reentrancy in Token._transfer(address,address,uint256) (#426-467):
External calls:
- swapAndLiquify(contractTokenBalance) (#458)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#458)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- address(_marketingWallet).transfer(address(this).balance) (#487)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#395)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#559)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#568)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#579)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#589)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#560)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#570)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#580)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#591)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _rTotal = _rTotal.sub(rFee) (#350)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#397)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#578)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#588)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#569)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#590)
Apply the check-effects-interactions pattern.
Additional information: link
Token.claimAltTokens(IERC20,address) (#316-318) ignores return value by tokenAddress.transfer(walletaddress,tokenAddress.balanceOf(address(this))) (#317)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Combination 3: Reentrancy vulnerabilities + Unchecked transfer vulnerability. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Ownable.constructor().msgSender (#63) lacks a zero-check on :
- _owner = msgSender (#64)
Token.constructor(address)._marketingAddress (#169) lacks a zero-check on :
- _marketingWallet = _marketingAddress (#183)
Token.setMarketingWallet(address)._address (#284) lacks a zero-check on :
- _marketingWallet = _address (#285)
Token.claimETH(address).walletaddress (#311) lacks a zero-check on :
- address(walletaddress).transfer(address(this).balance) (#313)
Token.clearStuckBalance(address).walletaddress (#320) lacks a zero-check on :
- walletaddress.transfer(address(this).balance) (#321)
Check that the address is not zero.
Additional information: link
Token._transfer(address,address,uint256) (#426-467) uses tx.origin for authorization: require(bool)(tx.origin == to) (#439)
Do not use tx.origin for authorization.
Additional information: link
Token.addLiquidity(uint256,uint256) (#510-523) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
Ensure that all the return values of the function calls are used.
Additional information: link
Token.allowance(address,address).owner (#214) shadows:
- Ownable.owner() (#68-70) (function)
Token._approve(address,address,uint256).owner (#419) shadows:
- Ownable.owner() (#68-70) (function)
Rename the local variables that shadow another component.
Additional information: link
Token.setMaxTxAmount(uint256) (#288-290) should emit an event for:
- _maxTxAmount = maxTxAmount * 10 ** 9 (#289)
Token.setMaxHoldings(uint256) (#292-294) should emit an event for:
- _maxHoldings = maxHoldings * 10 ** 9 (#293)
Token.setSwapThresholdAmount(uint256) (#307-309) should emit an event for:
- _routermax = routerMax * 10 ** 9 (#308)
Emit an event for critical parameter changes.
Additional information: link
Reentrancy in Token._transfer(address,address,uint256) (#426-467):
External calls:
- swapAndLiquify(contractTokenBalance) (#458)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#458)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- address(_marketingWallet).transfer(address(this).balance) (#487)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _isBlacklisted[recipient] = true (#530)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _liquidityMarketingFee = _totalFees (#412)
- _liquidityMarketingFee = 0 (#407)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _previousTaxFee = _taxFee (#403)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _tFeeTotal = _tFeeTotal.add(tFee) (#351)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _taxFee = _previousTaxFee (#411)
- _taxFee = 0 (#406)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _totalFees = _liquidityMarketingFee (#404)
Reentrancy in Token.constructor(address) (#169-186):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#174)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#180)
- _isExcludedFromFee[address(this)] = true (#181)
- _marketingWallet = _marketingAddress (#183)
- uniswapV2Router = _uniswapV2Router (#177)
Reentrancy in Token.swapAndLiquify(uint256) (#469-490):
External calls:
- swapTokensForEth(half) (#482)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
- addLiquidity(otherHalf,newBalance) (#484)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#484)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (#484)
- _allowances[owner][spender] = amount (#422)
Reentrancy in Token.swapAndLiquify(uint256) (#469-490):
External calls:
- swapTokensForEth(half) (#482)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
- addLiquidity(otherHalf,newBalance) (#484)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- swapTokensForEth(toMarketing) (#486)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#484)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
State variables written after the call(s):
- swapTokensForEth(toMarketing) (#486)
- _allowances[owner][spender] = amount (#422)
Reentrancy in Token.transferFrom(address,address,uint256) (#223-227):
External calls:
- _transfer(sender,recipient,amount) (#224)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
External calls sending eth:
- _transfer(sender,recipient,amount) (#224)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- address(_marketingWallet).transfer(address(this).balance) (#487)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#225)
- _allowances[owner][spender] = amount (#422)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in Token._transfer(address,address,uint256) (#426-467):
External calls:
- swapAndLiquify(contractTokenBalance) (#458)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#458)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- address(_marketingWallet).transfer(address(this).balance) (#487)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#563)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- Transfer(sender,recipient,tTransferAmount) (#583)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- Transfer(sender,recipient,tTransferAmount) (#573)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- Transfer(sender,recipient,tTransferAmount) (#594)
- _tokenTransfer(from,to,amount,takeFee) (#466)
Reentrancy in Token.constructor(address) (#169-186):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#174)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#185)
Reentrancy in Token.swapAndLiquify(uint256) (#469-490):
External calls:
- swapTokensForEth(half) (#482)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
- addLiquidity(otherHalf,newBalance) (#484)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#484)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#423)
- addLiquidity(otherHalf,newBalance) (#484)
Reentrancy in Token.swapAndLiquify(uint256) (#469-490):
External calls:
- swapTokensForEth(half) (#482)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
- addLiquidity(otherHalf,newBalance) (#484)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- swapTokensForEth(toMarketing) (#486)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#484)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#423)
- swapTokensForEth(toMarketing) (#486)
Reentrancy in Token.swapAndLiquify(uint256) (#469-490):
External calls:
- swapTokensForEth(half) (#482)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
- addLiquidity(otherHalf,newBalance) (#484)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- swapTokensForEth(toMarketing) (#486)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#484)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- address(_marketingWallet).transfer(address(this).balance) (#487)
Event emitted after the call(s):
- SwapAndLiquify(half,newBalance,otherHalf) (#489)
Reentrancy in Token.transferFrom(address,address,uint256) (#223-227):
External calls:
- _transfer(sender,recipient,amount) (#224)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#501-507)
External calls sending eth:
- _transfer(sender,recipient,amount) (#224)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- address(_marketingWallet).transfer(address(this).balance) (#487)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#423)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#225)
Apply the check-effects-interactions pattern.
Additional information: link
Token.includeInReward(address) (#263-274) has costly operations inside a loop:
- _excluded.pop() (#270)
Use a local variable to hold the loop computation result.
Additional information: link
Token._rTotal (#124) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
Token._previousTaxFee (#138) is set pre-construction with a non-constant function or state variable:
- _taxFee
Token._totalFees (#139) is set pre-construction with a non-constant function or state variable:
- _liquidityMarketingFee
Token._maxTxAmount (#148) is set pre-construction with a non-constant function or state variable:
- _tTotal.mul(1).div(100)
Token._maxHoldings (#149) is set pre-construction with a non-constant function or state variable:
- _tTotal.mul(1).div(100)
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 version0.8.0 (#1) allows old versions
solc-0.8.0 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
Function IUniswapV2Router02.WETH() (#96) is not in mixedCase
Parameter Token.setMarketingWallet(address)._address (#284) is not in mixedCase
Parameter Token.blacklist(address)._address (#324) is not in mixedCase
Parameter Token.removeFromBlacklist(address)._address (#328) is not in mixedCase
Parameter Token.getIsBlacklistedStatus(address)._address (#332) is not in mixedCase
Parameter Token.setSwapAndLiquifyEnabled(bool)._enabled (#341) is not in mixedCase
Variable Token._taxFee (#136) is not in mixedCase
Variable Token._liquidityMarketingFee (#137) is not in mixedCase
Variable Token._maxTxAmount (#148) is not in mixedCase
Variable Token._maxHoldings (#149) is not in mixedCase
Variable Token._routermax (#153) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Reentrancy in Token._transfer(address,address,uint256) (#426-467):
External calls:
- swapAndLiquify(contractTokenBalance) (#458)
- address(_marketingWallet).transfer(address(this).balance) (#487)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#458)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- address(_marketingWallet).transfer(address(this).balance) (#487)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _isBlacklisted[recipient] = true (#530)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _liquidityMarketingFee = _totalFees (#412)
- _liquidityMarketingFee = 0 (#407)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _previousTaxFee = _taxFee (#403)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#395)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#559)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#568)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#579)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#589)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#560)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#570)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#580)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#591)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _rTotal = _rTotal.sub(rFee) (#350)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _tFeeTotal = _tFeeTotal.add(tFee) (#351)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#397)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#578)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#588)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#569)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#590)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _taxFee = _previousTaxFee (#411)
- _taxFee = 0 (#406)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- _totalFees = _liquidityMarketingFee (#404)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#563)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- Transfer(sender,recipient,tTransferAmount) (#583)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- Transfer(sender,recipient,tTransferAmount) (#573)
- _tokenTransfer(from,to,amount,takeFee) (#466)
- Transfer(sender,recipient,tTransferAmount) (#594)
- _tokenTransfer(from,to,amount,takeFee) (#466)
Reentrancy in Token.swapAndLiquify(uint256) (#469-490):
External calls:
- address(_marketingWallet).transfer(address(this).balance) (#487)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#484)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- address(_marketingWallet).transfer(address(this).balance) (#487)
Event emitted after the call(s):
- SwapAndLiquify(half,newBalance,otherHalf) (#489)
Reentrancy in Token.transferFrom(address,address,uint256) (#223-227):
External calls:
- _transfer(sender,recipient,amount) (#224)
- address(_marketingWallet).transfer(address(this).balance) (#487)
External calls sending eth:
- _transfer(sender,recipient,amount) (#224)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#515-522)
- address(_marketingWallet).transfer(address(this).balance) (#487)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#225)
- _allowances[owner][spender] = amount (#422)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#423)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#225)
Apply the check-effects-interactions pattern.
Additional information: link
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#577) is too similar to Token._getValues(uint256).tTransferAmount (#355)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#577) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#567)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#587) is too similar to Token._getTValues(uint256).tTransferAmount (#363)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#371) is too similar to Token._getTValues(uint256).tTransferAmount (#363)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#567) is too similar to Token._getValues(uint256).tTransferAmount (#355)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#567) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#567)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#577) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#558)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#577) is too similar to Token._getTValues(uint256).tTransferAmount (#363)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#567) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#558)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#567) is too similar to Token._getTValues(uint256).tTransferAmount (#363)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#587) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#587)
Variable Token._getValues(uint256).rTransferAmount (#356) is too similar to Token._getTValues(uint256).tTransferAmount (#363)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#577) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#587)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#577) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#577)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#567) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#577)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#567) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#587)
Variable Token._getValues(uint256).rTransferAmount (#356) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#587)
Variable Token._getValues(uint256).rTransferAmount (#356) is too similar to Token._getValues(uint256).tTransferAmount (#355)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#371) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#558)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#558) is too similar to Token._getValues(uint256).tTransferAmount (#355)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#371) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#567)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#587) is too similar to Token._getValues(uint256).tTransferAmount (#355)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#371) is too similar to Token._getValues(uint256).tTransferAmount (#355)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#558) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#587)
Variable Token._getValues(uint256).rTransferAmount (#356) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#577)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#558) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#577)
Variable Token._getValues(uint256).rTransferAmount (#356) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#558)
Variable Token._getValues(uint256).rTransferAmount (#356) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#567)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#558) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#567)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#558) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#558)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#587) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#577)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#558) is too similar to Token._getTValues(uint256).tTransferAmount (#363)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#371) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#587)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#587) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#558)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#587) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#567)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#371) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#577)
Prevent variables from having similar names.
Additional information: link
Token.slitherConstructorVariables() (#108-597) uses literals with too many digits:
- _tTotal = 1000000000000 * 10 ** 9 (#123)
Token.slitherConstructorVariables() (#108-597) uses literals with too many digits:
- _burnWallet = 0x000000000000000000000000000000000000dEaD (#133)
Token.slitherConstructorVariables() (#108-597) uses literals with too many digits:
- _routermax = 5000000000 * 10 ** 9 (#153)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Ownable._previousOwner (#59) is never used in Token (#108-597)
Remove unused state variables.
Additional information: link
Ownable._previousOwner (#59) should be constant
Token._burnWallet (#133) should be constant
Token._decimals (#130) should be constant
Token._name (#128) should be constant
Token._symbol (#129) should be constant
Token._tTotal (#123) should be constant
Token.antiBotLaunch (#146) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#77-80)
name() should be declared external:
- Token.name() (#188-190)
symbol() should be declared external:
- Token.symbol() (#192-194)
decimals() should be declared external:
- Token.decimals() (#196-198)
totalSupply() should be declared external:
- Token.totalSupply() (#200-202)
transfer(address,uint256) should be declared external:
- Token.transfer(address,uint256) (#209-212)
allowance(address,address) should be declared external:
- Token.allowance(address,address) (#214-216)
approve(address,uint256) should be declared external:
- Token.approve(address,uint256) (#218-221)
transferFrom(address,address,uint256) should be declared external:
- Token.transferFrom(address,address,uint256) (#223-227)
increaseAllowance(address,uint256) should be declared external:
- Token.increaseAllowance(address,uint256) (#229-232)
decreaseAllowance(address,uint256) should be declared external:
- Token.decreaseAllowance(address,uint256) (#234-237)
isExcludedFromReward(address) should be declared external:
- Token.isExcludedFromReward(address) (#239-241)
totalFees() should be declared external:
- Token.totalFees() (#243-245)
isExcludedFromFee(address) should be declared external:
- Token.isExcludedFromFee(address) (#415-417)
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