Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Reentrancy in Token._transfer(address,address,uint256) (#1081-1151):
External calls:
- swapAndLiquify(contractTokenBalance) (#1133)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1185-1191)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#1133)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#1028)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#827)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#813)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#936)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#814)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#843)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#844)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#829)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#938)
- _rOwned[burnAddress] = _rOwned[burnAddress].add(tBurn) (#819)
- _rOwned[burnAddress] = _rOwned[burnAddress].add(tBurn) (#834)
- _rOwned[burnAddress] = _rOwned[burnAddress].add(tBurn) (#849)
- _rOwned[burnAddress] = _rOwned[burnAddress].add(tBurn) (#943)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- _rTotal = _rTotal.sub(rFee) (#980)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#1030)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#935)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#842)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#828)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#937)
- _tOwned[burnAddress] = _tOwned[burnAddress].add(tBurn) (#818)
- _tOwned[burnAddress] = _tOwned[burnAddress].add(tBurn) (#833)
- _tOwned[burnAddress] = _tOwned[burnAddress].add(tBurn) (#848)
- _tOwned[burnAddress] = _tOwned[burnAddress].add(tBurn) (#942)
Apply the check-effects-interactions pattern.
Additional information: link
Token.addLiquidity(uint256,uint256) (#775-788) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
Ensure that all the return values of the function calls are used.
Additional information: link
Token.allowance(address,address).owner (#771) shadows:
- Ownable.owner() (#398-400) (function)
Token._approve(address,address,uint256).owner (#1073) shadows:
- Ownable.owner() (#398-400) (function)
Rename the local variables that shadow another component.
Additional information: link
Token.setTaxFeePercent(uint256) (#957-959) should emit an event for:
- _taxFee = taxFee (#958)
Token.setLiquidityFeePercent(uint256) (#961-963) should emit an event for:
- _liquidityFee = liquidityFee (#962)
Token.setMaxTxPercent(uint256) (#965-969) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(10 ** 2) (#966-968)
Emit an event for critical parameter changes.
Additional information: link
Reentrancy in Token._transfer(address,address,uint256) (#1081-1151):
External calls:
- swapAndLiquify(contractTokenBalance) (#1133)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1185-1191)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#1133)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- _burnFee = _previousBurnFee (#1066)
- _burnFee = 0 (#1060)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- _liquidityFee = _previousLiquidityFee (#1065)
- _liquidityFee = 0 (#1059)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- _previousBurnFee = _burnFee (#1056)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- _previousLiquidityFee = _liquidityFee (#1055)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- _previousTaxFee = _taxFee (#1054)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- _tFeeTotal = _tFeeTotal.add(tFee) (#981)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- _taxFee = _previousTaxFee (#1064)
- _taxFee = 0 (#1058)
Reentrancy in Token.constructor() (#724-743):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#729-730)
State variables written after the call(s):
- _isExcluded[burnAddress] = true (#736)
- _isExcludedFromFee[owner()] = true (#737)
- _isExcludedFromFee[ownerAddres] = true (#738)
- _isExcludedFromFee[burnAddress] = true (#739)
- _isExcludedFromFee[address(this)] = true (#740)
- uniswapV2Router = _uniswapV2Router (#733)
Reentrancy in Token.swapAndLiquify(uint256) (#1153-1174):
External calls:
- swapTokensForEth(half) (#1165)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1185-1191)
- addLiquidity(otherHalf,newBalance) (#1171)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1171)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (#1171)
- _allowances[owner][spender] = amount (#1077)
Reentrancy in Token.transferFrom(address,address,uint256) (#861-865):
External calls:
- _transfer(sender,recipient,amount) (#862)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1185-1191)
External calls sending eth:
- _transfer(sender,recipient,amount) (#862)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#863)
- _allowances[owner][spender] = amount (#1077)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in Token._transfer(address,address,uint256) (#1081-1151):
External calls:
- swapAndLiquify(contractTokenBalance) (#1133)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1185-1191)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#1133)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
Event emitted after the call(s):
- Transfer(sender,burnAddress,tBurn) (#820)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- Transfer(sender,burnAddress,tBurn) (#835)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- Transfer(sender,burnAddress,tBurn) (#850)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- Transfer(sender,recipient,tTransferAmount) (#822)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- Transfer(sender,burnAddress,tBurn) (#944)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- Transfer(sender,recipient,tTransferAmount) (#852)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- Transfer(sender,recipient,tTransferAmount) (#837)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
- Transfer(sender,recipient,tTransferAmount) (#946)
- _tokenTransfer(from,to,amount,takeFee) (#1150)
Reentrancy in Token.constructor() (#724-743):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#729-730)
Event emitted after the call(s):
- Transfer(address(0),ownerAddres,_tTotal) (#742)
Reentrancy in Token.swapAndLiquify(uint256) (#1153-1174):
External calls:
- swapTokensForEth(half) (#1165)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1185-1191)
- addLiquidity(otherHalf,newBalance) (#1171)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1171)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#1078)
- addLiquidity(otherHalf,newBalance) (#1171)
- SwapAndLiquify(half,newBalance,otherHalf) (#1173)
Reentrancy in Token.transferFrom(address,address,uint256) (#861-865):
External calls:
- _transfer(sender,recipient,amount) (#862)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1185-1191)
External calls sending eth:
- _transfer(sender,recipient,amount) (#862)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#780-787)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#1078)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#863)
Apply the check-effects-interactions pattern.
Additional information: link
Ownable.unlock() (#445-450) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now > _lockTime,Contract is locked until 7 days) (#447)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#250-259) uses assembly
- INLINE ASM (#257)
Address._functionCallWithValue(address,bytes,uint256,string) (#343-364) uses assembly
- INLINE ASM (#356-359)
Do not use evm assembly.
Additional information: link
Token.includeInReward(address) (#921-932) has costly operations inside a loop:
- _excluded.pop() (#928)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#343-364) is never used and should be removed
Address.functionCall(address,bytes) (#303-305) is never used and should be removed
Address.functionCall(address,bytes,string) (#313-315) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#328-330) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#338-341) is never used and should be removed
Address.isContract(address) (#250-259) is never used and should be removed
Address.sendValue(address,uint256) (#277-283) is never used and should be removed
Context._msgData() (#222-225) is never used and should be removed
SafeMath.mod(uint256,uint256) (#128-130) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#144-147) is never used and should be removed
Remove unused functions.
Additional information: link
Token._rTotal (#682) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
Token._previousTaxFee (#690) is set pre-construction with a non-constant function or state variable:
- _taxFee
Token._previousLiquidityFee (#693) is set pre-construction with a non-constant function or state variable:
- _liquidityFee
Token._previousBurnFee (#698) is set pre-construction with a non-constant function or state variable:
- _burnFee
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) (#277-283):
- (success) = recipient.call{value: amount}() (#281)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#343-364):
- (success,returndata) = target.call{value: weiValue}(data) (#347)
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() (#489) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#490) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#507) is not in mixedCase
Function IUniswapV2Router01.WETH() (#529) is not in mixedCase
Parameter Token.setSwapAndLiquifyEnabled(bool)._enabled (#971) is not in mixedCase
Parameter Token.calculateTaxFee(uint256)._amount (#1033) is not in mixedCase
Parameter Token.calculateLiquidityFee(uint256)._amount (#1039) is not in mixedCase
Parameter Token.calculateBurnFee(uint256)._amount (#1045) is not in mixedCase
Variable Token._taxFee (#689) is not in mixedCase
Variable Token._liquidityFee (#692) is not in mixedCase
Variable Token._burnFee (#695) is not in mixedCase
Variable Token._maxTxAmount (#706) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#223)" inContext (#217-226)
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 (#534) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#535)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#900) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#841)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#900) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#826)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#900) is too similar to Token._getTValues(uint256).tTransferAmount (#995)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#841) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#841)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#934) is too similar to Token._getValues(uint256).tTransferAmount (#986)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#841) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#826)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#841) is too similar to Token._getTValues(uint256).tTransferAmount (#995)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#900) is too similar to Token._getValues(uint256).tTransferAmount (#986)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#934) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#826)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#934) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#841)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#934) is too similar to Token._getTValues(uint256).tTransferAmount (#995)
Variable Token._getValues(uint256).rTransferAmount (#987) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#826)
Variable Token._getValues(uint256).rTransferAmount (#987) is too similar to Token._getTValues(uint256).tTransferAmount (#995)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#826) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#826)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#826) is too similar to Token._getTValues(uint256).tTransferAmount (#995)
Variable Token._getValues(uint256).rTransferAmount (#987) is too similar to Token._getValues(uint256).tTransferAmount (#986)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#934) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#812)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#812) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#934)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#841) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#812)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#826) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#812)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#812) is too similar to Token._getTValues(uint256).tTransferAmount (#995)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#812) is too similar to Token._getValues(uint256).tTransferAmount (#986)
Variable Token._getValues(uint256).rTransferAmount (#987) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#812)
Variable Token._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1004) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#934)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#826) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#841)
Variable Token._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1004) is too similar to Token._getTValues(uint256).tTransferAmount (#995)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#900) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#934)
Variable Token._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1004) is too similar to Token._getValues(uint256).tTransferAmount (#986)
Variable Token._getValues(uint256).rTransferAmount (#987) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#841)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#812) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#812)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#812) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#826)
Variable Token._transferBothExcluded(address,address,uint256).rTransferAmount (#934) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#934)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#826) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#934)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#841) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#934)
Variable Token._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1004) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#812)
Variable Token._transferStandard(address,address,uint256).rTransferAmount (#812) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#841)
Variable Token._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1004) is too similar to Token._transferToExcluded(address,address,uint256).tTransferAmount (#826)
Variable Token._getValues(uint256).rTransferAmount (#987) is too similar to Token._transferBothExcluded(address,address,uint256).tTransferAmount (#934)
Variable Token._transferToExcluded(address,address,uint256).rTransferAmount (#826) is too similar to Token._getValues(uint256).tTransferAmount (#986)
Variable Token._transferFromExcluded(address,address,uint256).rTransferAmount (#841) is too similar to Token._getValues(uint256).tTransferAmount (#986)
Variable Token._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1004) is too similar to Token._transferFromExcluded(address,address,uint256).tTransferAmount (#841)
Variable Token.reflectionFromToken(uint256,bool).rTransferAmount (#900) is too similar to Token._transferStandard(address,address,uint256).tTransferAmount (#812)
Prevent variables from having similar names.
Additional information: link
Token.slitherConstructorVariables() (#667-1199) uses literals with too many digits:
- burnAddress = address(0x000000000000000000000000000000000000dEaD) (#696)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Token._decimals (#687) should be constant
Token._name (#685) should be constant
Token._symbol (#686) should be constant
Token._tTotal (#681) should be constant
Token.burnAddress (#696) should be constant
Token.maxBurn (#708) should be constant
Token.numTokensSellToAddToLiquidity (#707) should be constant
Token.ownerAddres (#697) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#417-420)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#426-430)
geUnlockTime() should be declared external:
- Ownable.geUnlockTime() (#432-434)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#437-442)
unlock() should be declared external:
- Ownable.unlock() (#445-450)
name() should be declared external:
- Token.name() (#745-747)
symbol() should be declared external:
- Token.symbol() (#749-751)
decimals() should be declared external:
- Token.decimals() (#753-755)
totalSupply() should be declared external:
- Token.totalSupply() (#757-759)
transfer(address,uint256) should be declared external:
- Token.transfer(address,uint256) (#766-769)
allowance(address,address) should be declared external:
- Token.allowance(address,address) (#771-773)
approve(address,uint256) should be declared external:
- Token.approve(address,uint256) (#856-859)
transferFrom(address,address,uint256) should be declared external:
- Token.transferFrom(address,address,uint256) (#861-865)
increaseAllowance(address,uint256) should be declared external:
- Token.increaseAllowance(address,uint256) (#867-870)
decreaseAllowance(address,uint256) should be declared external:
- Token.decreaseAllowance(address,uint256) (#872-875)
isExcludedFromReward(address) should be declared external:
- Token.isExcludedFromReward(address) (#877-879)
totalFees() should be declared external:
- Token.totalFees() (#881-883)
deliver(uint256) should be declared external:
- Token.deliver(uint256) (#885-892)
reflectionFromToken(uint256,bool) should be declared external:
- Token.reflectionFromToken(uint256,bool) (#894-903)
excludeFromReward(address) should be declared external:
- Token.excludeFromReward(address) (#911-919)
excludeFromFee(address) should be declared external:
- Token.excludeFromFee(address) (#949-951)
includeInFee(address) should be declared external:
- Token.includeInFee(address) (#953-955)
setSwapAndLiquifyEnabled(bool) should be declared external:
- Token.setSwapAndLiquifyEnabled(bool) (#971-974)
isExcludedFromFee(address) should be declared external:
- Token.isExcludedFromFee(address) (#1069-1071)
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