Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
LTT.swapETHForTokens(uint256) (#811-826) sends eth to arbitrary user
Dangerous calls:
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#818-823)
LTT.addLiquidity(uint256,uint256) (#828-841) sends eth to arbitrary user
Dangerous calls:
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#833-840)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in LTT._transfer(address,address,uint256) (#665-751):
External calls:
- swapTokens(contractTokenBalance) (#698)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#800-806)
External calls sending eth:
- swapTokens(contractTokenBalance) (#698)
- recipient.transfer(amount) (#1079)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _rOwned[deadAddress] = _rOwned[deadAddress].add(rLiquidity.div(4)) (#948)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity.div(5)) (#949)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#872)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#863)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#893)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#864)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#883)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#884)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#874)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#895)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _rTotal = _rTotal.sub(rFee) (#902)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _tOwned[deadAddress] = _tOwned[deadAddress].add(tLiquidity.div(4)) (#951)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#882)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity.div(5)) (#952)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#892)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#873)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#894)
Apply the check-effects-interactions pattern.
Additional information: link
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.
LTT.addLiquidity(uint256,uint256) (#828-841) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#833-840)
Ensure that all the return values of the function calls are used.
Additional information: link
LTT.allowance(address,address).owner (#573) shadows:
- Ownable.owner() (#157-159) (function)
LTT._approve(address,address,uint256).owner (#657) shadows:
- Ownable.owner() (#157-159) (function)
Rename the local variables that shadow another component.
Additional information: link
LTT.setTaxFeePercent(uint256) (#1002-1004) should emit an event for:
- _taxFee = taxFee (#1003)
LTT.setBlockN(uint256) (#1015-1017) should emit an event for:
- blockN = _blockN (#1016)
LTT.setBuyFee(uint256,uint256) (#1029-1032) should emit an event for:
- _buyTaxFee = buyTaxFee (#1030)
- _buyLiquidityFee = buyLiquidityFee (#1031)
LTT.setSellFee(uint256,uint256) (#1034-1037) should emit an event for:
- _sellTaxFee = sellTaxFee (#1035)
- _sellLiquidityFee = sellLiquidityFee (#1036)
LTT.setLiquidityFeePercent(uint256) (#1039-1041) should emit an event for:
- _liquidityFee = liquidityFee (#1040)
LTT.setMaxTxAmount(uint256) (#1044-1046) should emit an event for:
- _maxTxAmount = maxTxAmount (#1045)
LTT.setLiquidityDivisor(uint256) (#1057-1059) should emit an event for:
- liquidityDivisor = divisor (#1058)
Emit an event for critical parameter changes.
Additional information: link
LTT.constructor(address)._addressM (#515) lacks a zero-check on :
- addressM = _addressM (#531)
LTT.setAddressM(address)._addressM (#1006) lacks a zero-check on :
- addressM = _addressM (#1007)
LTT.setAddressP(address)._addressP (#1010) lacks a zero-check on :
- addressP = _addressP (#1011)
Check that the address is not zero.
Additional information: link
Reentrancy in LTT._transfer(address,address,uint256) (#665-751):
External calls:
- swapTokens(contractTokenBalance) (#698)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#800-806)
External calls sending eth:
- swapTokens(contractTokenBalance) (#698)
- recipient.transfer(amount) (#1079)
State variables written after the call(s):
- removeAllFee() (#714)
- _liquidityFee = 0 (#974)
- _liquidityFee = _buyLiquidityFee (#716)
- removeAllFee() (#720)
- _liquidityFee = 0 (#974)
- _liquidityFee = _sellLiquidityFee (#722)
- removeAllFee() (#727)
- _liquidityFee = 0 (#974)
- _liquidityFee = _addressFees[from]._liquidityFee (#729)
- _liquidityFee = _addressFees[from]._sellLiquidityFee (#734)
- removeAllFee() (#741)
- _liquidityFee = 0 (#974)
- _liquidityFee = _addressFees[to]._buyLiquidityFee (#744)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _liquidityFee = _previousLiquidityFee (#979)
- _liquidityFee = 0 (#974)
- removeAllFee() (#714)
- _previousLiquidityFee = _liquidityFee (#971)
- removeAllFee() (#720)
- _previousLiquidityFee = _liquidityFee (#971)
- removeAllFee() (#727)
- _previousLiquidityFee = _liquidityFee (#971)
- removeAllFee() (#741)
- _previousLiquidityFee = _liquidityFee (#971)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _previousLiquidityFee = _liquidityFee (#971)
- removeAllFee() (#714)
- _previousTaxFee = _taxFee (#970)
- removeAllFee() (#720)
- _previousTaxFee = _taxFee (#970)
- removeAllFee() (#727)
- _previousTaxFee = _taxFee (#970)
- removeAllFee() (#741)
- _previousTaxFee = _taxFee (#970)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _previousTaxFee = _taxFee (#970)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _tFeeTotal = _tFeeTotal.add(tFee) (#903)
- removeAllFee() (#714)
- _taxFee = 0 (#973)
- _taxFee = _buyTaxFee (#715)
- removeAllFee() (#720)
- _taxFee = 0 (#973)
- _taxFee = _sellTaxFee (#721)
- removeAllFee() (#727)
- _taxFee = 0 (#973)
- _taxFee = _addressFees[from]._taxFee (#728)
- _taxFee = _addressFees[from]._sellTaxFee (#733)
- removeAllFee() (#741)
- _taxFee = 0 (#973)
- _taxFee = _addressFees[to]._buyTaxFee (#743)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _taxFee = _previousTaxFee (#978)
- _taxFee = 0 (#973)
Reentrancy in LTT.changeRouterVersion(address) (#1082-1095):
External calls:
- _pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#1088-1089)
State variables written after the call(s):
- uniswapV2Pair = _pair (#1091)
- uniswapV2Router = _uniswapV2Router (#1094)
Reentrancy in LTT.constructor(address) (#515-545):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#526-527)
State variables written after the call(s):
- _isExcludedFromFee[addressM] = true (#532)
- _isExcludedFromFee[owner()] = true (#535)
- _isExcludedFromFee[address(this)] = true (#536)
- _startTimeForSwap = block.timestamp (#542)
- addressM = _addressM (#531)
- isTxLimitExempt[addressM] = true (#533)
- isTxLimitExempt[owner()] = true (#538)
- isTxLimitExempt[address(this)] = true (#539)
- uniswapV2Router = _uniswapV2Router (#529)
Reentrancy in LTT.swapAndLiquify(uint256) (#753-774):
External calls:
- swapTokensForEth(half) (#765)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#800-806)
- addLiquidity(otherHalf,newBalance) (#771)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#833-840)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#771)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#833-840)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (#771)
- _allowances[owner][spender] = amount (#661)
Reentrancy in LTT.transferFrom(address,address,uint256) (#582-586):
External calls:
- _transfer(sender,recipient,amount) (#583)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#800-806)
External calls sending eth:
- _transfer(sender,recipient,amount) (#583)
- recipient.transfer(amount) (#1079)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#584)
- _allowances[owner][spender] = amount (#661)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in LTT._transfer(address,address,uint256) (#665-751):
External calls:
- swapTokens(contractTokenBalance) (#698)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#800-806)
External calls sending eth:
- swapTokens(contractTokenBalance) (#698)
- recipient.transfer(amount) (#1079)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#867)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- Transfer(sender,recipient,tTransferAmount) (#877)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- Transfer(sender,recipient,tTransferAmount) (#887)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- Transfer(sender,recipient,tTransferAmount) (#898)
- _tokenTransfer(from,to,amount,takeFee) (#750)
Reentrancy in LTT.constructor(address) (#515-545):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#526-527)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#544)
Reentrancy in LTT.swapAndLiquify(uint256) (#753-774):
External calls:
- swapTokensForEth(half) (#765)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#800-806)
- addLiquidity(otherHalf,newBalance) (#771)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#833-840)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#771)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#833-840)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#662)
- addLiquidity(otherHalf,newBalance) (#771)
- SwapAndLiquify(half,newBalance,otherHalf) (#773)
Reentrancy in LTT.swapETHForTokens(uint256) (#811-826):
External calls:
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#818-823)
Event emitted after the call(s):
- SwapETHForTokens(amount,path) (#825)
Reentrancy in LTT.swapTokensForEth(uint256) (#791-809):
External calls:
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#800-806)
Event emitted after the call(s):
- SwapTokensForETH(tokenAmount,path) (#808)
Reentrancy in LTT.transferFrom(address,address,uint256) (#582-586):
External calls:
- _transfer(sender,recipient,amount) (#583)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#800-806)
External calls sending eth:
- _transfer(sender,recipient,amount) (#583)
- recipient.transfer(amount) (#1079)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#662)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#584)
Apply the check-effects-interactions pattern.
Additional information: link
Ownable.unlock() (#192-197) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp > _lockTime,Contract is locked until 7 days) (#194)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#87-96) uses assembly
- INLINE ASM (#94)
Address._functionCallWithValue(address,bytes,uint256,string) (#124-141) uses assembly
- INLINE ASM (#133-136)
Do not use evm assembly.
Additional information: link
LTT.includeInReward(address) (#644-655) has costly operations inside a loop:
- _excluded.pop() (#651)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#124-141) is never used and should be removed
Address.functionCall(address,bytes) (#107-109) is never used and should be removed
Address.functionCall(address,bytes,string) (#111-113) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#115-117) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#119-122) is never used and should be removed
Address.isContract(address) (#87-96) is never used and should be removed
Address.sendValue(address,uint256) (#98-104) is never used and should be removed
Context._msgData() (#10-13) is never used and should be removed
LTT.addLiquidity(uint256,uint256) (#828-841) is never used and should be removed
LTT.swapAndLiquify(uint256) (#753-774) is never used and should be removed
LTT.swapETHForTokens(uint256) (#811-826) is never used and should be removed
SafeMath.mod(uint256,uint256) (#75-77) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#79-82) is never used and should be removed
Remove unused functions.
Additional information: link
LTT._rTotal (#437) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
LTT._previousTaxFee (#460) is set pre-construction with a non-constant function or state variable:
- _taxFee
LTT._previousLiquidityFee (#463) is set pre-construction with a non-constant function or state variable:
- _liquidityFee
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) (#98-104):
- (success) = recipient.call{value: amount}() (#102)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#124-141):
- (success,returndata) = target.call{value: weiValue}(data) (#127)
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() (#237) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#238) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#254) is not in mixedCase
Function IUniswapV2Router01.WETH() (#275) is not in mixedCase
Parameter LTT.calculateTaxFee(uint256)._amount (#955) is not in mixedCase
Parameter LTT.calculateLiquidityFee(uint256)._amount (#961) is not in mixedCase
Parameter LTT.setAddressM(address)._addressM (#1006) is not in mixedCase
Parameter LTT.setAddressP(address)._addressP (#1010) is not in mixedCase
Parameter LTT.setBlockN(uint256)._blockN (#1015) is not in mixedCase
Parameter LTT.setSwapAndLiquifyEnabled(bool)._enabled (#1063) is not in mixedCase
Parameter LTT.changeRouterVersion(address)._router (#1082) is not in mixedCase
Parameter LTT.transferForeignToken(address,address)._token (#1101) is not in mixedCase
Parameter LTT.transferForeignToken(address,address)._to (#1101) is not in mixedCase
Function LTT.Sweep() (#1107-1110) is not in mixedCase
Parameter LTT.setAddressFee(address,bool,uint256,uint256)._address (#1112) is not in mixedCase
Parameter LTT.setAddressFee(address,bool,uint256,uint256)._enable (#1112) is not in mixedCase
Parameter LTT.setAddressFee(address,bool,uint256,uint256)._addressTaxFee (#1112) is not in mixedCase
Parameter LTT.setAddressFee(address,bool,uint256,uint256)._addressLiquidityFee (#1112) is not in mixedCase
Parameter LTT.setBuyAddressFee(address,bool,uint256,uint256)._address (#1118) is not in mixedCase
Parameter LTT.setBuyAddressFee(address,bool,uint256,uint256)._enable (#1118) is not in mixedCase
Parameter LTT.setBuyAddressFee(address,bool,uint256,uint256)._addressTaxFee (#1118) is not in mixedCase
Parameter LTT.setBuyAddressFee(address,bool,uint256,uint256)._addressLiquidityFee (#1118) is not in mixedCase
Parameter LTT.setSellAddressFee(address,bool,uint256,uint256)._address (#1124) is not in mixedCase
Parameter LTT.setSellAddressFee(address,bool,uint256,uint256)._enable (#1124) is not in mixedCase
Parameter LTT.setSellAddressFee(address,bool,uint256,uint256)._addressTaxFee (#1124) is not in mixedCase
Parameter LTT.setSellAddressFee(address,bool,uint256,uint256)._addressLiquidityFee (#1124) is not in mixedCase
Variable LTT._taxFee (#459) is not in mixedCase
Variable LTT._liquidityFee (#462) is not in mixedCase
Variable LTT._buyTaxFee (#465) is not in mixedCase
Variable LTT._buyLiquidityFee (#466) is not in mixedCase
Variable LTT._sellTaxFee (#468) is not in mixedCase
Variable LTT._sellLiquidityFee (#469) is not in mixedCase
Variable LTT._startTimeForSwap (#473) is not in mixedCase
Variable LTT._intervalMinutesForSwap (#474) is not in mixedCase
Variable LTT._addressFees (#479) is not in mixedCase
Variable LTT._maxTxAmount (#481) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#11)" inContext (#5-14)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in LTT._transfer(address,address,uint256) (#665-751):
External calls:
- swapTokens(contractTokenBalance) (#698)
- recipient.transfer(amount) (#1079)
State variables written after the call(s):
- removeAllFee() (#714)
- _liquidityFee = 0 (#974)
- _liquidityFee = _buyLiquidityFee (#716)
- removeAllFee() (#720)
- _liquidityFee = 0 (#974)
- _liquidityFee = _sellLiquidityFee (#722)
- removeAllFee() (#727)
- _liquidityFee = 0 (#974)
- _liquidityFee = _addressFees[from]._liquidityFee (#729)
- _liquidityFee = _addressFees[from]._sellLiquidityFee (#734)
- removeAllFee() (#741)
- _liquidityFee = 0 (#974)
- _liquidityFee = _addressFees[to]._buyLiquidityFee (#744)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _liquidityFee = _previousLiquidityFee (#979)
- _liquidityFee = 0 (#974)
- removeAllFee() (#714)
- _previousLiquidityFee = _liquidityFee (#971)
- removeAllFee() (#720)
- _previousLiquidityFee = _liquidityFee (#971)
- removeAllFee() (#727)
- _previousLiquidityFee = _liquidityFee (#971)
- removeAllFee() (#741)
- _previousLiquidityFee = _liquidityFee (#971)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _previousLiquidityFee = _liquidityFee (#971)
- removeAllFee() (#714)
- _previousTaxFee = _taxFee (#970)
- removeAllFee() (#720)
- _previousTaxFee = _taxFee (#970)
- removeAllFee() (#727)
- _previousTaxFee = _taxFee (#970)
- removeAllFee() (#741)
- _previousTaxFee = _taxFee (#970)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _previousTaxFee = _taxFee (#970)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _rOwned[deadAddress] = _rOwned[deadAddress].add(rLiquidity.div(4)) (#948)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity.div(5)) (#949)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#872)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#863)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#893)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#864)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#883)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#884)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#874)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#895)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _rTotal = _rTotal.sub(rFee) (#902)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _tFeeTotal = _tFeeTotal.add(tFee) (#903)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _tOwned[deadAddress] = _tOwned[deadAddress].add(tLiquidity.div(4)) (#951)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#882)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity.div(5)) (#952)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#892)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#873)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#894)
- removeAllFee() (#714)
- _taxFee = 0 (#973)
- _taxFee = _buyTaxFee (#715)
- removeAllFee() (#720)
- _taxFee = 0 (#973)
- _taxFee = _sellTaxFee (#721)
- removeAllFee() (#727)
- _taxFee = 0 (#973)
- _taxFee = _addressFees[from]._taxFee (#728)
- _taxFee = _addressFees[from]._sellTaxFee (#733)
- removeAllFee() (#741)
- _taxFee = 0 (#973)
- _taxFee = _addressFees[to]._buyTaxFee (#743)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- _taxFee = _previousTaxFee (#978)
- _taxFee = 0 (#973)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#867)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- Transfer(sender,recipient,tTransferAmount) (#887)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- Transfer(sender,recipient,tTransferAmount) (#877)
- _tokenTransfer(from,to,amount,takeFee) (#750)
- Transfer(sender,recipient,tTransferAmount) (#898)
- _tokenTransfer(from,to,amount,takeFee) (#750)
Reentrancy in LTT.transferFrom(address,address,uint256) (#582-586):
External calls:
- _transfer(sender,recipient,amount) (#583)
- recipient.transfer(amount) (#1079)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#584)
- _allowances[owner][spender] = amount (#661)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#662)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#584)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#280) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#281)
Variable LTT._transferStandard(address,address,uint256).rTransferAmount (#862) is too similar to LTT._transferStandard(address,address,uint256).tTransferAmount (#862)
Variable LTT.reflectionFromToken(uint256,bool).rTransferAmount (#623) is too similar to LTT._getTValues(uint256).tTransferAmount (#915)
Variable LTT._transferFromExcluded(address,address,uint256).rTransferAmount (#881) is too similar to LTT._getTValues(uint256).tTransferAmount (#915)
Variable LTT._getValues(uint256).rTransferAmount (#908) is too similar to LTT._getTValues(uint256).tTransferAmount (#915)
Variable LTT._transferFromExcluded(address,address,uint256).rTransferAmount (#881) is too similar to LTT._transferFromExcluded(address,address,uint256).tTransferAmount (#881)
Variable LTT._transferStandard(address,address,uint256).rTransferAmount (#862) is too similar to LTT._getTValues(uint256).tTransferAmount (#915)
Variable LTT._transferFromExcluded(address,address,uint256).rTransferAmount (#881) is too similar to LTT._transferBothExcluded(address,address,uint256).tTransferAmount (#891)
Variable LTT.reflectionFromToken(uint256,bool).rTransferAmount (#623) is too similar to LTT._transferBothExcluded(address,address,uint256).tTransferAmount (#891)
Variable LTT._getValues(uint256).rTransferAmount (#908) is too similar to LTT._transferBothExcluded(address,address,uint256).tTransferAmount (#891)
Variable LTT._transferToExcluded(address,address,uint256).rTransferAmount (#871) is too similar to LTT._transferToExcluded(address,address,uint256).tTransferAmount (#871)
Variable LTT._transferFromExcluded(address,address,uint256).rTransferAmount (#881) is too similar to LTT._transferToExcluded(address,address,uint256).tTransferAmount (#871)
Variable LTT._transferStandard(address,address,uint256).rTransferAmount (#862) is too similar to LTT._transferBothExcluded(address,address,uint256).tTransferAmount (#891)
Variable LTT.reflectionFromToken(uint256,bool).rTransferAmount (#623) is too similar to LTT._transferToExcluded(address,address,uint256).tTransferAmount (#871)
Variable LTT._getValues(uint256).rTransferAmount (#908) is too similar to LTT._transferToExcluded(address,address,uint256).tTransferAmount (#871)
Variable LTT._transferFromExcluded(address,address,uint256).rTransferAmount (#881) is too similar to LTT._getValues(uint256).tTransferAmount (#907)
Variable LTT._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#923) is too similar to LTT._getTValues(uint256).tTransferAmount (#915)
Variable LTT._transferFromExcluded(address,address,uint256).rTransferAmount (#881) is too similar to LTT._transferStandard(address,address,uint256).tTransferAmount (#862)
Variable LTT._transferToExcluded(address,address,uint256).rTransferAmount (#871) is too similar to LTT._getTValues(uint256).tTransferAmount (#915)
Variable LTT._transferStandard(address,address,uint256).rTransferAmount (#862) is too similar to LTT._transferToExcluded(address,address,uint256).tTransferAmount (#871)
Variable LTT.reflectionFromToken(uint256,bool).rTransferAmount (#623) is too similar to LTT._transferFromExcluded(address,address,uint256).tTransferAmount (#881)
Variable LTT._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#923) is too similar to LTT._transferBothExcluded(address,address,uint256).tTransferAmount (#891)
Variable LTT.reflectionFromToken(uint256,bool).rTransferAmount (#623) is too similar to LTT._getValues(uint256).tTransferAmount (#907)
Variable LTT._transferStandard(address,address,uint256).rTransferAmount (#862) is too similar to LTT._transferFromExcluded(address,address,uint256).tTransferAmount (#881)
Variable LTT._transferToExcluded(address,address,uint256).rTransferAmount (#871) is too similar to LTT._transferStandard(address,address,uint256).tTransferAmount (#862)
Variable LTT._transferStandard(address,address,uint256).rTransferAmount (#862) is too similar to LTT._getValues(uint256).tTransferAmount (#907)
Variable LTT._transferBothExcluded(address,address,uint256).rTransferAmount (#891) is too similar to LTT._getTValues(uint256).tTransferAmount (#915)
Variable LTT.reflectionFromToken(uint256,bool).rTransferAmount (#623) is too similar to LTT._transferStandard(address,address,uint256).tTransferAmount (#862)
Variable LTT._transferToExcluded(address,address,uint256).rTransferAmount (#871) is too similar to LTT._transferBothExcluded(address,address,uint256).tTransferAmount (#891)
Variable LTT._transferBothExcluded(address,address,uint256).rTransferAmount (#891) is too similar to LTT._transferToExcluded(address,address,uint256).tTransferAmount (#871)
Variable LTT._getValues(uint256).rTransferAmount (#908) is too similar to LTT._transferFromExcluded(address,address,uint256).tTransferAmount (#881)
Variable LTT._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#923) is too similar to LTT._transferToExcluded(address,address,uint256).tTransferAmount (#871)
Variable LTT._getValues(uint256).rTransferAmount (#908) is too similar to LTT._getValues(uint256).tTransferAmount (#907)
Variable LTT._transferBothExcluded(address,address,uint256).rTransferAmount (#891) is too similar to LTT._transferFromExcluded(address,address,uint256).tTransferAmount (#881)
Variable LTT._transferBothExcluded(address,address,uint256).rTransferAmount (#891) is too similar to LTT._getValues(uint256).tTransferAmount (#907)
Variable LTT._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#923) is too similar to LTT._transferFromExcluded(address,address,uint256).tTransferAmount (#881)
Variable LTT._getValues(uint256).rTransferAmount (#908) is too similar to LTT._transferStandard(address,address,uint256).tTransferAmount (#862)
Variable LTT._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#923) is too similar to LTT._getValues(uint256).tTransferAmount (#907)
Variable LTT._transferBothExcluded(address,address,uint256).rTransferAmount (#891) is too similar to LTT._transferStandard(address,address,uint256).tTransferAmount (#862)
Variable LTT._transferToExcluded(address,address,uint256).rTransferAmount (#871) is too similar to LTT._transferFromExcluded(address,address,uint256).tTransferAmount (#881)
Variable LTT._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#923) is too similar to LTT._transferStandard(address,address,uint256).tTransferAmount (#862)
Variable LTT._transferBothExcluded(address,address,uint256).rTransferAmount (#891) is too similar to LTT._transferBothExcluded(address,address,uint256).tTransferAmount (#891)
Variable LTT._transferToExcluded(address,address,uint256).rTransferAmount (#871) is too similar to LTT._getValues(uint256).tTransferAmount (#907)
Prevent variables from having similar names.
Additional information: link
LTT.slitherConstructorVariables() (#410-1131) uses literals with too many digits:
- deadAddress = 0x000000000000000000000000000000000000dEaD (#415)
LTT.slitherConstructorVariables() (#410-1131) uses literals with too many digits:
- _tTotal = 1000000 * 10 ** 6 * 10 ** 9 (#436)
LTT.slitherConstructorVariables() (#410-1131) uses literals with too many digits:
- _maxTxAmount = 1000000 * 10 ** 6 * 10 ** 9 (#481)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
LTT._decimals (#442) should be constant
LTT._intervalMinutesForSwap (#474) should be constant
LTT._name (#440) should be constant
LTT._symbol (#441) should be constant
LTT._tTotal (#436) should be constant
LTT.swapAndLiquifycount (#471) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#166-169)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#171-175)
getUnlockTime() should be declared external:
- Ownable.getUnlockTime() (#177-179)
getTime() should be declared external:
- Ownable.getTime() (#181-183)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#185-190)
unlock() should be declared external:
- Ownable.unlock() (#192-197)
name() should be declared external:
- LTT.name() (#547-549)
symbol() should be declared external:
- LTT.symbol() (#551-553)
decimals() should be declared external:
- LTT.decimals() (#555-557)
totalSupply() should be declared external:
- LTT.totalSupply() (#559-561)
transfer(address,uint256) should be declared external:
- LTT.transfer(address,uint256) (#568-571)
allowance(address,address) should be declared external:
- LTT.allowance(address,address) (#573-575)
approve(address,uint256) should be declared external:
- LTT.approve(address,uint256) (#577-580)
transferFrom(address,address,uint256) should be declared external:
- LTT.transferFrom(address,address,uint256) (#582-586)
increaseAllowance(address,uint256) should be declared external:
- LTT.increaseAllowance(address,uint256) (#588-591)
decreaseAllowance(address,uint256) should be declared external:
- LTT.decreaseAllowance(address,uint256) (#593-596)
isExcludedFromReward(address) should be declared external:
- LTT.isExcludedFromReward(address) (#598-600)
totalFees() should be declared external:
- LTT.totalFees() (#602-604)
deliver(uint256) should be declared external:
- LTT.deliver(uint256) (#607-614)
reflectionFromToken(uint256,bool) should be declared external:
- LTT.reflectionFromToken(uint256,bool) (#617-626)
excludeFromReward(address) should be declared external:
- LTT.excludeFromReward(address) (#634-642)
isExcludedFromFee(address) should be declared external:
- LTT.isExcludedFromFee(address) (#982-984)
excludeFromFee(address) should be declared external:
- LTT.excludeFromFee(address) (#986-988)
includeInFee(address) should be declared external:
- LTT.includeInFee(address) (#990-992)
getSaleAt() should be declared external:
- LTT.getSaleAt() (#1020-1022)
getBlock() should be declared external:
- LTT.getBlock() (#1024-1026)
changeRouterVersion(address) should be declared external:
- LTT.changeRouterVersion(address) (#1082-1095)
transferForeignToken(address,address) should be declared external:
- LTT.transferForeignToken(address,address) (#1101-1105)
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