Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Token._decimals (#859) should be constant
Token._tTotal (#854) should be constant
Token.luckyMin (#876) should be constant
Token.numTokensSellToAddToLiquidity (#870) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
Reentrancy in Token._transfer(address,address,uint256) (#1242-1308):
External calls:
- swapAndLiquify(contractTokenBalance) (#1282)
- usdt.approve(address(uniswapV2Router),usdtAmount) (#1375)
- uniswapV2Router.addLiquidity(address(this),address(usdt),tokenAmount,usdtAmount,0,0,blackHole,block.timestamp) (#1377-1386)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(wrap),block.timestamp) (#1343-1349)
- wrap.withdraw() (#1351)
- ILucky(luckyReceiver).transferNotify(to) (#1295)
- ILucky(luckyReceiver).swap() (#1302)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#1189)
- _rOwned[devReceiver] = _rOwned[devReceiver].add(rDev) (#1193)
- _rOwned[sender] = _rOwned[sender].sub(rAmount,sub2 rAmount) (#1467)
- _rOwned[sender] = _rOwned[sender].sub(rAmount,sub1 rAmount) (#1442)
- _rOwned[sender] = _rOwned[sender].sub(rAmount,sub3 rAmount) (#1494)
- _rOwned[sender] = _rOwned[sender].sub(rAmount,sub4 rAmount) (#1520)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1443)
- _rOwned[luckyReceiver] = _rOwned[luckyReceiver].add(rLucky) (#1197)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1469)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1495)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1522)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- _rTotal = _rTotal.sub(rFee,reflect fee) (#1113)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#1191)
- _tOwned[sender] = _tOwned[sender].sub(tAmount,sub4 tAmount) (#1519)
- _tOwned[devReceiver] = _tOwned[devReceiver].add(tDev) (#1195)
- _tOwned[sender] = _tOwned[sender].sub(tAmount,sub3 tAmount) (#1493)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1468)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1521)
- _tOwned[luckyReceiver] = _tOwned[luckyReceiver].add(tLucky) (#1199)
Apply the check-effects-interactions pattern.
Additional information: link
Token.addLiquidityUsdt(uint256,uint256) (#1372-1387) ignores return value by usdt.approve(address(uniswapV2Router),usdtAmount) (#1375)
Token.addLiquidityUsdt(uint256,uint256) (#1372-1387) ignores return value by uniswapV2Router.addLiquidity(address(this),address(usdt),tokenAmount,usdtAmount,0,0,blackHole,block.timestamp) (#1377-1386)
Token.addLiquidity(uint256,uint256) (#1389-1402) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,blackHole,block.timestamp) (#1394-1401)
Ensure that all the return values of the function calls are used.
Additional information: link
Token.allowance(address,address).owner (#978) shadows:
- Ownable.owner() (#147-149) (function)
Token._approve(address,address,uint256).owner (#1231) shadows:
- Ownable.owner() (#147-149) (function)
Rename the local variables that shadow another component.
Additional information: link
Token.setMaxTxPercent(uint256) (#1100-1102) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(10 ** 2) (#1101)
Emit an event for critical parameter changes.
Additional information: link
Token.constructor(address,string,string)._devReceiver (#904) lacks a zero-check on :
- devReceiver = _devReceiver (#909)
Token.setDev(address)._dev (#930) lacks a zero-check on :
- devReceiver = _dev (#932)
Token.setLucky(address)._lucky (#936) lacks a zero-check on :
- luckyReceiver = _lucky (#938)
Check that the address is not zero.
Additional information: link
Reentrancy in Token._transfer(address,address,uint256) (#1242-1308):
External calls:
- swapAndLiquify(contractTokenBalance) (#1282)
- usdt.approve(address(uniswapV2Router),usdtAmount) (#1375)
- uniswapV2Router.addLiquidity(address(this),address(usdt),tokenAmount,usdtAmount,0,0,blackHole,block.timestamp) (#1377-1386)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(wrap),block.timestamp) (#1343-1349)
- wrap.withdraw() (#1351)
- ILucky(luckyReceiver).transferNotify(to) (#1295)
- ILucky(luckyReceiver).swap() (#1302)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- feeIt = true (#1223)
- feeIt = false (#1219)
Reentrancy in Token.constructor(address,string,string) (#903-928):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),address(usdt)) (#916-917)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#923)
- _isExcludedFromFee[address(this)] = true (#924)
- _isExcludedFromFee[_devReceiver] = true (#925)
- uniswapV2Router = _uniswapV2Router (#920)
Reentrancy in Token.swapAndLiquify(uint256) (#1310-1332):
External calls:
- swapTokensForUsdt(half) (#1322)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(wrap),block.timestamp) (#1343-1349)
- wrap.withdraw() (#1351)
- addLiquidityUsdt(otherHalf,usdtBalance) (#1329)
- usdt.approve(address(uniswapV2Router),usdtAmount) (#1375)
- uniswapV2Router.addLiquidity(address(this),address(usdt),tokenAmount,usdtAmount,0,0,blackHole,block.timestamp) (#1377-1386)
State variables written after the call(s):
- addLiquidityUsdt(otherHalf,usdtBalance) (#1329)
- _allowances[owner][spender] = amount (#1238)
Reentrancy in Token.transferFrom(address,address,uint256) (#996-1011):
External calls:
- _transfer(sender,recipient,amount) (#1001)
- usdt.approve(address(uniswapV2Router),usdtAmount) (#1375)
- uniswapV2Router.addLiquidity(address(this),address(usdt),tokenAmount,usdtAmount,0,0,blackHole,block.timestamp) (#1377-1386)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(wrap),block.timestamp) (#1343-1349)
- wrap.withdraw() (#1351)
- ILucky(luckyReceiver).transferNotify(to) (#1295)
- ILucky(luckyReceiver).swap() (#1302)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#1002-1009)
- _allowances[owner][spender] = amount (#1238)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in Token._transfer(address,address,uint256) (#1242-1308):
External calls:
- swapAndLiquify(contractTokenBalance) (#1282)
- usdt.approve(address(uniswapV2Router),usdtAmount) (#1375)
- uniswapV2Router.addLiquidity(address(this),address(usdt),tokenAmount,usdtAmount,0,0,blackHole,block.timestamp) (#1377-1386)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(wrap),block.timestamp) (#1343-1349)
- wrap.withdraw() (#1351)
- ILucky(luckyReceiver).transferNotify(to) (#1295)
- ILucky(luckyReceiver).swap() (#1302)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#1446)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- Transfer(sender,recipient,tTransferAmount) (#1472)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- Transfer(sender,recipient,tTransferAmount) (#1498)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- Transfer(sender,recipient,tTransferAmount) (#1525)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- Transfer(sender,luckyReceiver,tLucky) (#1448)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- Transfer(sender,luckyReceiver,tLucky) (#1500)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- Transfer(sender,devReceiver,tDev) (#1449)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- Transfer(sender,luckyReceiver,tLucky) (#1474)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- Transfer(sender,devReceiver,tDev) (#1501)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- Transfer(sender,devReceiver,tDev) (#1475)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- Transfer(sender,luckyReceiver,tLucky) (#1527)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
- Transfer(sender,devReceiver,tDev) (#1528)
- _tokenTransfer(from,to,amount,takeFee) (#1307)
Reentrancy in Token.constructor(address,string,string) (#903-928):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),address(usdt)) (#916-917)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#927)
Reentrancy in Token.swapAndLiquify(uint256) (#1310-1332):
External calls:
- swapTokensForUsdt(half) (#1322)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(wrap),block.timestamp) (#1343-1349)
- wrap.withdraw() (#1351)
- addLiquidityUsdt(otherHalf,usdtBalance) (#1329)
- usdt.approve(address(uniswapV2Router),usdtAmount) (#1375)
- uniswapV2Router.addLiquidity(address(this),address(usdt),tokenAmount,usdtAmount,0,0,blackHole,block.timestamp) (#1377-1386)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#1239)
- addLiquidityUsdt(otherHalf,usdtBalance) (#1329)
- SwapAndLiquify(half,usdtBalance,otherHalf) (#1331)
Reentrancy in Token.transferFrom(address,address,uint256) (#996-1011):
External calls:
- _transfer(sender,recipient,amount) (#1001)
- usdt.approve(address(uniswapV2Router),usdtAmount) (#1375)
- uniswapV2Router.addLiquidity(address(this),address(usdt),tokenAmount,usdtAmount,0,0,blackHole,block.timestamp) (#1377-1386)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(wrap),block.timestamp) (#1343-1349)
- wrap.withdraw() (#1351)
- ILucky(luckyReceiver).transferNotify(to) (#1295)
- ILucky(luckyReceiver).swap() (#1302)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#1239)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#1002-1009)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#432-441) uses assembly
- INLINE ASM (#439)
Address._verifyCallResult(bool,bytes,string) (#577-594) uses assembly
- INLINE ASM (#586-589)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['>=0.5.0', '>=0.6.2', '^0.8.0', '^0.8.4']
- ^0.8.0 (#7)
- ^0.8.0 (#88)
- ^0.8.0 (#116)
- ^0.8.0 (#187)
- ^0.8.0 (#409)
- >=0.5.0 (#600)
- >=0.6.2 (#656)
- >=0.6.2 (#755)
- >=0.5.0 (#801)
- ^0.8.4 (#822)
Use one Solidity version.
Additional information: link
Token.includeInReward(address) (#1079-1090) has costly operations inside a loop:
- _excluded.pop() (#1086)
Use a local variable to hold the loop computation result.
Additional information: link
Address._verifyCallResult(bool,bytes,string) (#577-594) is never used and should be removed
Address.functionCall(address,bytes) (#485-487) is never used and should be removed
Address.functionCall(address,bytes,string) (#495-497) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#510-512) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#520-527) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#559-561) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#569-575) is never used and should be removed
Address.functionStaticCall(address,bytes) (#535-537) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#545-551) is never used and should be removed
Address.isContract(address) (#432-441) is never used and should be removed
Address.sendValue(address,uint256) (#459-465) is never used and should be removed
Context._msgData() (#105-108) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#374-379) is never used and should be removed
SafeMath.mod(uint256,uint256) (#334-336) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#396-401) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#205-211) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#247-252) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#259-264) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#230-240) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#218-223) is never used and should be removed
Token.addLiquidity(uint256,uint256) (#1389-1402) is never used and should be removed
Token.swapTokensForEth(uint256) (#1354-1370) is never used and should be removed
Remove unused functions.
Additional information: link
Token._rTotal (#855) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
Remove any initialization of state variables via non-constant state variables or function calls. If variables must be set upon contract deployment, locate initialization in the constructor instead.
Additional information: link
Pragma version^0.8.0 (#7) allows old versions
Pragma version^0.8.0 (#88) allows old versions
Pragma version^0.8.0 (#116) allows old versions
Pragma version^0.8.0 (#187) allows old versions
Pragma version^0.8.0 (#409) allows old versions
Pragma version>=0.5.0 (#600) allows old versions
Pragma version>=0.6.2 (#656) allows old versions
Pragma version>=0.6.2 (#755) allows old versions
Pragma version>=0.5.0 (#801) allows old versions
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#459-465):
- (success) = recipient.call{value: amount}() (#463)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#520-527):
- (success,returndata) = target.call{value: value}(data) (#525)
Low level call in Address.functionStaticCall(address,bytes,string) (#545-551):
- (success,returndata) = target.staticcall(data) (#549)
Low level call in Address.functionDelegateCall(address,bytes,string) (#569-575):
- (success,returndata) = target.delegatecall(data) (#573)
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() (#617) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#618) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#635) is not in mixedCase
Function IUniswapV2Router01.WETH() (#660) is not in mixedCase
Parameter Token.setDev(address)._dev (#930) is not in mixedCase
Parameter Token.setLucky(address)._lucky (#936) is not in mixedCase
Parameter Token.setWrap(IWrap)._wrap (#942) is not in mixedCase
Parameter Token.setSwapAndLiquifyEnabled(bool)._enabled (#1104) is not in mixedCase
Variable Token._maxTxAmount (#869) is not in mixedCase
Constant Token.blackHole (#871-872) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#106)" inContext (#100-109)
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 (#665) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#666)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1440) is too similar to Token._getRValues(uint256,uint256,uint256,uint256).tTransferAmount (#1142)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1155) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1434)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1517) is too similar to Token._getRValues(uint256,uint256,uint256,uint256).tTransferAmount (#1142)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1491) is too similar to Token._getTValues(uint256).tTransferAmount (#1120)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1155) is too similar to Token._getRValues(uint256,uint256,uint256,uint256).tTransferAmount (#1142)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1491) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1459)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1491) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1434)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1155) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1485)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1491) is too similar to Token._getRValues(uint256,uint256,uint256,uint256).tTransferAmount (#1142)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1517) is too similar to Token._getTValues(uint256).tTransferAmount (#1120)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1155) is too similar to Token._getTValues(uint256).tTransferAmount (#1120)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1155) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1511)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1440) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1459)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1517) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1459)
Variable Token._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1155) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1459)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1517) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1434)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1517) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1511)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1465) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#1459)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1440) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1511)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1465) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1511)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1491) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1485)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1465) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1434)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1440) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#1434)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1465) is too similar to Token._getRValues(uint256,uint256,uint256,uint256).tTransferAmount (#1142)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1465) is too similar to Token._getTValues(uint256).tTransferAmount (#1120)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1440) is too similar to Token._getTValues(uint256).tTransferAmount (#1120)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#1517) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1485)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#1491) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#1511)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#1440) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1485)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#1465) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#1485)
Prevent variables from having similar names.
Additional information: link
Token.slitherConstructorConstantVariables() (#841-1532) uses literals with too many digits:
- blackHole = 0x0000000000000000000000000000000000000001 (#871-872)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#166-169)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#175-179)
setDev(address) should be declared external:
- Token.setDev(address) (#930-934)
setLucky(address) should be declared external:
- Token.setLucky(address) (#936-940)
setWrap(IWrap) should be declared external:
- Token.setWrap(IWrap) (#942-946)
name() should be declared external:
- Token.name() (#948-950)
symbol() should be declared external:
- Token.symbol() (#952-954)
decimals() should be declared external:
- Token.decimals() (#956-958)
totalSupply() should be declared external:
- Token.totalSupply() (#960-962)
transfer(address,uint256) should be declared external:
- Token.transfer(address,uint256) (#969-976)
allowance(address,address) should be declared external:
- Token.allowance(address,address) (#978-985)
approve(address,uint256) should be declared external:
- Token.approve(address,uint256) (#987-994)
transferFrom(address,address,uint256) should be declared external:
- Token.transferFrom(address,address,uint256) (#996-1011)
increaseAllowance(address,uint256) should be declared external:
- Token.increaseAllowance(address,uint256) (#1013-1024)
decreaseAllowance(address,uint256) should be declared external:
- Token.decreaseAllowance(address,uint256) (#1026-1040)
isExcludedFromReward(address) should be declared external:
- Token.isExcludedFromReward(address) (#1042-1044)
deliver(uint256) should be declared external:
- Token.deliver(uint256) (#1046-1055)
excludeFromReward(address) should be declared external:
- Token.excludeFromReward(address) (#1069-1077)
excludeFromFee(address) should be declared external:
- Token.excludeFromFee(address) (#1092-1094)
includeInFee(address) should be declared external:
- Token.includeInFee(address) (#1096-1098)
setSwapAndLiquifyEnabled(bool) should be declared external:
- Token.setSwapAndLiquifyEnabled(bool) (#1104-1107)
isExcludedFromFee(address) should be declared external:
- Token.isExcludedFromFee(address) (#1226-1228)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
Token has a considerable age, but we're still unable to find its website
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Token has a considerable age, but social accounts / website are missing or have few users
Token has a considerable age, but average PancakeSwap 30d trading volume is low
Young tokens have high risks of price dump / death
Unable to find Telegram and Twitter accounts