Kent is a cryptocurrency built on Binance Smart Chain (BEP20) and aims to bring blockchain applications and solutions to the commercial world.
Reentrancy in Token._transfer(address,address,uint256) (#939-992):
External calls:
- swapAndLiquify(contractTokenBalance) (#970)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- buyBackTokens(balance.div(100)) (#979)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#970)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- buyBackTokens(balance.div(100)) (#979)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _burnFee = _previousBurnFee (#923)
- _burnFee = 0 (#916)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _buybackFee = _previousBuybackFee (#924)
- _buybackFee = 0 (#917)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _liquidityFee = _previousLiquidityFee (#922)
- _liquidityFee = 0 (#915)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#889)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1109)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1100)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1101)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1120)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1130)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1111)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1121)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1132)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _rTotal = _rTotal.sub(rFee) (#844)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#891)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#1119)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#1129)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1110)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1131)
- buyBackTokens(balance.div(100)) (#979)
- inSwapAndLiquify = true (#639)
- inSwapAndLiquify = false (#641)
Reentrancy in Token.setCrowdsaleAddress(address) (#663-669):
External calls:
- transfer(crowdsaleAddress,crowdsaleTotal) (#667)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- transfer(crowdsaleAddress,crowdsaleTotal) (#667)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
State variables written after the call(s):
- crowdsaleLaunched = true (#668)
Reentrancy in Token.setPrivatesaleAddress(address) (#670-676):
External calls:
- transfer(privatesaleAddress,privatesaleTotal) (#674)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- transfer(privatesaleAddress,privatesaleTotal) (#674)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
State variables written after the call(s):
- privatesaleLaunched = true (#675)
Apply the check-effects-interactions pattern.
Additional information: link
Token.recoverBEP20(address,uint256) (#1154-1157) ignores return value by IERC20(tokenAddress).transfer(owner(),tokenAmount) (#1156)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Token.setAllFeePercent(uint8,uint8,uint8,uint8) (#797-806) contains a tautology or contradiction:
- require(bool,string)(taxFee >= 0 && taxFee <= maxTaxFee,TF err) (#798)
Token.setAllFeePercent(uint8,uint8,uint8,uint8) (#797-806) contains a tautology or contradiction:
- require(bool,string)(liquidityFee >= 0 && liquidityFee <= maxLiqFee,LF err) (#799)
Token.setAllFeePercent(uint8,uint8,uint8,uint8) (#797-806) contains a tautology or contradiction:
- require(bool,string)(burnFee >= 0 && burnFee <= maxBurnFee,BF err) (#800)
Token.setAllFeePercent(uint8,uint8,uint8,uint8) (#797-806) contains a tautology or contradiction:
- require(bool,string)(buybackFee >= 0 && buybackFee <= maxBuybackFee,BBF err) (#801)
Fix the incorrect comparison by changing the value type or the comparison.
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.
Token.swapAndLiquify(uint256) (#994-1027) performs a multiplication on the result of a division:
-spentAmount = contractTokenBalance.div(totFee).mul(_burnFee) (#1000)
Token.swapAndLiquify(uint256) (#994-1027) performs a multiplication on the result of a division:
-spentAmount = contractTokenBalance.div(totFee).mul(_buybackFee) (#1006)
Consider ordering multiplication before division.
Additional information: link
Token.addLiquidity(uint256,uint256) (#1064-1076) ignores return value by pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
Ensure that all the return values of the function calls are used.
Additional information: link
Token.allowance(address,address).owner (#703) shadows:
- Ownable.owner() (#378-380) (function)
Token._approve(address,address,uint256).owner (#931) shadows:
- Ownable.owner() (#378-380) (function)
Rename the local variables that shadow another component.
Additional information: link
Token.setAllFeePercent(uint8,uint8,uint8,uint8) (#797-806) should emit an event for:
- _taxFee = taxFee (#802)
- _liquidityFee = liquidityFee (#803)
- _burnFee = burnFee (#804)
- _buybackFee = buybackFee (#805)
Token.setBuybackUpperLimit(uint256) (#812-814) should emit an event for:
- buyBackUpperLimit = buyBackLimit * 10 ** 9 (#813)
Token.setTokensSellToAddToLiquidity(uint256) (#816-818) should emit an event for:
- numTokensSellToAddToLiquidity = TokensSellToLiquidity * 10 ** 9 (#817)
Token.setMaxTxPercent(uint256) (#820-825) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(10 ** 2) (#822-824)
Token.setMaxWalletPercent(uint256) (#827-832) should emit an event for:
- _maxWalletAmount = _tTotal.mul(maxWalletPercent).div(10 ** 2) (#829-831)
Emit an event for critical parameter changes.
Additional information: link
Token.setCrowdsaleAddress(address)._crowdsaleAddress (#663) lacks a zero-check on :
- crowdsaleAddress = _crowdsaleAddress (#665)
Token.setPrivatesaleAddress(address)._privatesaleAddress (#670) lacks a zero-check on :
- privatesaleAddress = _privatesaleAddress (#672)
Check that the address is not zero.
Additional information: link
Reentrancy in Token._transfer(address,address,uint256) (#939-992):
External calls:
- swapAndLiquify(contractTokenBalance) (#970)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- buyBackTokens(balance.div(100)) (#979)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#970)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- buyBackTokens(balance.div(100)) (#979)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _previousBurnFee = _burnFee (#911)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _previousBuybackFee = _buybackFee (#912)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _previousLiquidityFee = _liquidityFee (#910)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _previousTaxFee = _taxFee (#909)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _tFeeTotal = _tFeeTotal.add(tFee) (#845)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- _taxFee = _previousTaxFee (#921)
- _taxFee = 0 (#914)
Reentrancy in Token.constructor() (#644-661):
External calls:
- pcsV2Pair = IUniswapV2Factory(_pcsV2Router.factory()).createPair(address(this),_pcsV2Router.WETH()) (#655-656)
State variables written after the call(s):
- _isExcludedFromFee[_msgSender()] = true (#658)
- _isExcludedFromFee[address(this)] = true (#659)
- pcsV2Router = _pcsV2Router (#657)
Reentrancy in Token.swapAndLiquify(uint256) (#994-1027):
External calls:
- swapTokensForBNB(spentAmount) (#1007)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- swapTokensForBNB(half) (#1019)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
State variables written after the call(s):
- swapTokensForBNB(half) (#1019)
- _allowances[owner][spender] = amount (#935)
Reentrancy in Token.swapAndLiquify(uint256) (#994-1027):
External calls:
- swapTokensForBNB(spentAmount) (#1007)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- swapTokensForBNB(half) (#1019)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- addLiquidity(otherHalf,newBalance) (#1022)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1022)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (#1022)
- _allowances[owner][spender] = amount (#935)
Reentrancy in Token.transferFrom(address,address,uint256) (#712-716):
External calls:
- _transfer(sender,recipient,amount) (#713)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- _transfer(sender,recipient,amount) (#713)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#714)
- _allowances[owner][spender] = amount (#935)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in Token._transfer(address,address,uint256) (#939-992):
External calls:
- swapAndLiquify(contractTokenBalance) (#970)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- buyBackTokens(balance.div(100)) (#979)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#970)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- buyBackTokens(balance.div(100)) (#979)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#1104)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- Transfer(sender,recipient,tTransferAmount) (#1124)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- Transfer(sender,recipient,tTransferAmount) (#1114)
- _tokenTransfer(from,to,amount,takeFee) (#991)
- Transfer(sender,recipient,tTransferAmount) (#1135)
- _tokenTransfer(from,to,amount,takeFee) (#991)
Reentrancy in Token.constructor() (#644-661):
External calls:
- pcsV2Pair = IUniswapV2Factory(_pcsV2Router.factory()).createPair(address(this),_pcsV2Router.WETH()) (#655-656)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#660)
Reentrancy in Token.swapAndLiquify(uint256) (#994-1027):
External calls:
- swapTokensForBNB(spentAmount) (#1007)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- swapTokensForBNB(half) (#1019)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#936)
- swapTokensForBNB(half) (#1019)
Reentrancy in Token.swapAndLiquify(uint256) (#994-1027):
External calls:
- swapTokensForBNB(spentAmount) (#1007)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- swapTokensForBNB(half) (#1019)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- addLiquidity(otherHalf,newBalance) (#1022)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1022)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#936)
- addLiquidity(otherHalf,newBalance) (#1022)
- SwapAndLiquify(half,newBalance,otherHalf) (#1024)
Reentrancy in Token.transferFrom(address,address,uint256) (#712-716):
External calls:
- _transfer(sender,recipient,amount) (#713)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- _transfer(sender,recipient,amount) (#713)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,dead,block.timestamp) (#1068-1075)
- pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,dead,block.timestamp.add(300)) (#1056-1061)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#936)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#714)
Apply the check-effects-interactions pattern.
Additional information: link
Ownable.unlock() (#409-414) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp > _lockTime,Contract is locked until 7 days) (#411)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#169-178) uses assembly
- INLINE ASM (#176)
Address._functionCallWithValue(address,bytes,uint256,string) (#262-283) uses assembly
- INLINE ASM (#275-278)
Do not use evm assembly.
Additional information: link
Token.includeInReward(address) (#771-782) has costly operations inside a loop:
- _excluded.pop() (#778)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#262-283) is never used and should be removed
Address.functionCall(address,bytes) (#222-224) is never used and should be removed
Address.functionCall(address,bytes,string) (#232-234) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#247-249) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#257-260) is never used and should be removed
Address.isContract(address) (#169-178) is never used and should be removed
Address.sendValue(address,uint256) (#196-202) is never used and should be removed
Context._msgData() (#141-144) is never used and should be removed
SafeERC20._callOptionalReturn(IERC20,bytes) (#340-350) is never used and should be removed
SafeERC20.safeApprove(IERC20,address,uint256) (#313-322) is never used and should be removed
SafeERC20.safeDecreaseAllowance(IERC20,address,uint256) (#329-332) is never used and should be removed
SafeERC20.safeIncreaseAllowance(IERC20,address,uint256) (#324-327) is never used and should be removed
SafeERC20.safeTransfer(IERC20,address,uint256) (#298-300) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (#302-304) is never used and should be removed
SafeMath.mod(uint256,uint256) (#126-128) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#130-133) is never used and should be removed
Remove unused functions.
Additional information: link
Token._previousTaxFee (#606) is set pre-construction with a non-constant function or state variable:
- _taxFee
Token._previousLiquidityFee (#609) is set pre-construction with a non-constant function or state variable:
- _liquidityFee
Token._previousBurnFee (#612) is set pre-construction with a non-constant function or state variable:
- _burnFee
Token._previousBuybackFee (#615) is set pre-construction with a non-constant function or state variable:
- _buybackFee
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
Low level call in Address.sendValue(address,uint256) (#196-202):
- (success) = recipient.call{value: amount}() (#200)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#262-283):
- (success,returndata) = target.call{value: weiValue}(data) (#266)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IUniswapV2Router01.WETH() (#441) is not in mixedCase
Parameter Token.setCrowdsaleAddress(address)._crowdsaleAddress (#663) is not in mixedCase
Parameter Token.setPrivatesaleAddress(address)._privatesaleAddress (#670) is not in mixedCase
Parameter Token.setTokensSellToAddToLiquidity(uint256).TokensSellToLiquidity (#816) is not in mixedCase
Parameter Token.setSwapAndLiquifyEnabled(bool)._enabled (#834) is not in mixedCase
Parameter Token.calculateTaxFee(uint256)._amount (#894) is not in mixedCase
Parameter Token.calculateLiquidityFee(uint256)._amount (#900) is not in mixedCase
Variable Token._tTotal (#598) is not in mixedCase
Variable Token._name (#601) is not in mixedCase
Variable Token._symbol (#602) is not in mixedCase
Variable Token._taxFee (#605) is not in mixedCase
Variable Token._liquidityFee (#608) is not in mixedCase
Variable Token._burnFee (#611) is not in mixedCase
Variable Token._buybackFee (#614) is not in mixedCase
Variable Token._maxTxAmount (#621) is not in mixedCase
Variable Token._maxWalletAmount (#622) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#142)" inContext (#136-145)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#446) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#447)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#751) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1128)
Variable Token._getValues(uint256).rTransferAmount (#850) is too similar to Token._getValues(uint256).tTransferAmount (#849)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#751) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1099)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#751) is too similar to Token._getTValues(uint256).tTransferAmount (#857)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1099) is too similar to Token._getTValues(uint256).tTransferAmount (#857)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1099) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1128)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1118) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1128)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1099) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1099)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1128) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1108)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#865) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1108)
Variable Token._getValues(uint256).rTransferAmount (#850) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1128)
Variable Token._getValues(uint256).rTransferAmount (#850) is too similar to Token._getTValues(uint256).tTransferAmount (#857)
Variable Token._getValues(uint256).rTransferAmount (#850) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1099)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1128) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1118)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#865) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1118)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#751) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1108)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#751) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1118)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1099) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1108)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1118) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1108)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1099) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1118)
Variable Token._getValues(uint256).rTransferAmount (#850) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1108)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1118) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1118)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#865) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1128)
Variable Token._getValues(uint256).rTransferAmount (#850) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1118)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1108) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1108)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#751) is too similar to Token._getValues(uint256).tTransferAmount (#849)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1108) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1118)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#865) is too similar to Token._getTValues(uint256).tTransferAmount (#857)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1128) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1128)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1099) is too similar to Token._getValues(uint256).tTransferAmount (#849)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1128) is too similar to Token._getTValues(uint256).tTransferAmount (#857)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1108) is too similar to Token._getValues(uint256).tTransferAmount (#849)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#865) is too similar to Token._getValues(uint256).tTransferAmount (#849)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1118) is too similar to Token._getValues(uint256).tTransferAmount (#849)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1128) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1099)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1108) is too similar to Token._getTValues(uint256).tTransferAmount (#857)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1118) is too similar to Token._getTValues(uint256).tTransferAmount (#857)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1108) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1128)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1108) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1099)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#865) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1099)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1118) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1099)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1128) is too similar to Token._getValues(uint256).tTransferAmount (#849)
Prevent variables from having similar names.
Additional information: link
Token.slitherConstructorVariables() (#579-1159) uses literals with too many digits:
- dead = 0x000000000000000000000000000000000000dEaD (#583)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Token.dead (#583) should be constant
Token.maxBurnFee (#586) should be constant
Token.maxBuybackFee (#587) should be constant
Token.maxLiqFee (#584) should be constant
Token.maxTaxFee (#585) should be constant
Token.minMxTxPercentage (#588) should be constant
Token.minMxWalletPercentage (#589) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#387-390)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#392-396)
geUnlockTime() should be declared external:
- Ownable.geUnlockTime() (#398-400)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#402-407)
unlock() should be declared external:
- Ownable.unlock() (#409-414)
name() should be declared external:
- Token.name() (#677-679)
symbol() should be declared external:
- Token.symbol() (#681-683)
decimals() should be declared external:
- Token.decimals() (#685-687)
totalSupply() should be declared external:
- Token.totalSupply() (#689-691)
allowance(address,address) should be declared external:
- Token.allowance(address,address) (#703-705)
approve(address,uint256) should be declared external:
- Token.approve(address,uint256) (#707-710)
transferFrom(address,address,uint256) should be declared external:
- Token.transferFrom(address,address,uint256) (#712-716)
increaseAllowance(address,uint256) should be declared external:
- Token.increaseAllowance(address,uint256) (#718-721)
decreaseAllowance(address,uint256) should be declared external:
- Token.decreaseAllowance(address,uint256) (#723-726)
isExcludedFromReward(address) should be declared external:
- Token.isExcludedFromReward(address) (#728-730)
totalFees() should be declared external:
- Token.totalFees() (#732-734)
deliver(uint256) should be declared external:
- Token.deliver(uint256) (#736-743)
reflectionFromToken(uint256,bool) should be declared external:
- Token.reflectionFromToken(uint256,bool) (#745-754)
excludeFromReward(address) should be declared external:
- Token.excludeFromReward(address) (#762-769)
excludeFromFee(address) should be declared external:
- Token.excludeFromFee(address) (#785-787)
includeInFee(address) should be declared external:
- Token.includeInFee(address) (#789-791)
setDisableBuyBack() should be declared external:
- Token.setDisableBuyBack() (#793-795)
buyBackUpperLimitAmount() should be declared external:
- Token.buyBackUpperLimitAmount() (#808-810)
setSwapAndLiquifyEnabled(bool) should be declared external:
- Token.setSwapAndLiquifyEnabled(bool) (#834-837)
isExcludedFromFee(address) should be declared external:
- Token.isExcludedFromFee(address) (#927-929)
recoverBEP20(address,uint256) should be declared external:
- Token.recoverBEP20(address,uint256) (#1154-1157)
Use the external attribute for functions never called from the contract.
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
Young tokens have high risks of price dump / death
Unable to find Youtube account
Unable to find Discord account