HashPanda is a community oriented meme token with a mission to make cryptocurrencies mainstream features dApps such as a meme-based content platform which uses the HashPanda token as currency.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Reentrancy in HashPanda._transfer(address,address,uint256) (#606-636):
External calls:
- swapAndLiquify(contractTokenBalance) (#629)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#651-657)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#629)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#635)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#569)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#689)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#697)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#707)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#500)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#690)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#699)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#708)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#502)
- _tokenTransfer(from,to,amount,takeFee) (#635)
- _rTotal = _rTotal.sub(rFee) (#530)
- _tokenTransfer(from,to,amount,takeFee) (#635)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#571)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#499)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#706)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#698)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#501)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#234) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#235)
Variable HashPanda._getValues(uint256).rTransferAmount (#535) is too similar to HashPanda._getValues(uint256).tTransferAmount (#534)
Variable HashPanda.reflectionFromToken(uint256,bool).rTransferAmount (#468) is too similar to HashPanda._transferStandard(address,address,uint256).tTransferAmount (#688)
Variable HashPanda._transferBothExcluded(address,address,uint256).rTransferAmount (#498) is too similar to HashPanda._transferStandard(address,address,uint256).tTransferAmount (#688)
Variable HashPanda._transferFromExcluded(address,address,uint256).rTransferAmount (#705) is too similar to HashPanda._getValues(uint256).tTransferAmount (#534)
Variable HashPanda.reflectionFromToken(uint256,bool).rTransferAmount (#468) is too similar to HashPanda._transferBothExcluded(address,address,uint256).tTransferAmount (#498)
Variable HashPanda._transferBothExcluded(address,address,uint256).rTransferAmount (#498) is too similar to HashPanda._transferBothExcluded(address,address,uint256).tTransferAmount (#498)
Variable HashPanda.reflectionFromToken(uint256,bool).rTransferAmount (#468) is too similar to HashPanda._transferFromExcluded(address,address,uint256).tTransferAmount (#705)
Variable HashPanda.reflectionFromToken(uint256,bool).rTransferAmount (#468) is too similar to HashPanda._transferToExcluded(address,address,uint256).tTransferAmount (#696)
Variable HashPanda._transferBothExcluded(address,address,uint256).rTransferAmount (#498) is too similar to HashPanda._transferToExcluded(address,address,uint256).tTransferAmount (#696)
Variable HashPanda._getValues(uint256).rTransferAmount (#535) is too similar to HashPanda._transferStandard(address,address,uint256).tTransferAmount (#688)
Variable HashPanda._transferBothExcluded(address,address,uint256).rTransferAmount (#498) is too similar to HashPanda._transferFromExcluded(address,address,uint256).tTransferAmount (#705)
Variable HashPanda._transferFromExcluded(address,address,uint256).rTransferAmount (#705) is too similar to HashPanda._transferStandard(address,address,uint256).tTransferAmount (#688)
Variable HashPanda._getValues(uint256).rTransferAmount (#535) is too similar to HashPanda._transferBothExcluded(address,address,uint256).tTransferAmount (#498)
Variable HashPanda.reflectionFromToken(uint256,bool).rTransferAmount (#468) is too similar to HashPanda._getValues(uint256).tTransferAmount (#534)
Variable HashPanda._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#548) is too similar to HashPanda._transferToExcluded(address,address,uint256).tTransferAmount (#696)
Variable HashPanda._getValues(uint256).rTransferAmount (#535) is too similar to HashPanda._transferFromExcluded(address,address,uint256).tTransferAmount (#705)
Variable HashPanda._transferBothExcluded(address,address,uint256).rTransferAmount (#498) is too similar to HashPanda._getValues(uint256).tTransferAmount (#534)
Variable HashPanda._getValues(uint256).rTransferAmount (#535) is too similar to HashPanda._transferToExcluded(address,address,uint256).tTransferAmount (#696)
Variable HashPanda._transferFromExcluded(address,address,uint256).rTransferAmount (#705) is too similar to HashPanda._transferBothExcluded(address,address,uint256).tTransferAmount (#498)
Variable HashPanda._transferToExcluded(address,address,uint256).rTransferAmount (#696) is too similar to HashPanda._transferToExcluded(address,address,uint256).tTransferAmount (#696)
Variable HashPanda._transferFromExcluded(address,address,uint256).rTransferAmount (#705) is too similar to HashPanda._transferFromExcluded(address,address,uint256).tTransferAmount (#705)
Variable HashPanda._transferFromExcluded(address,address,uint256).rTransferAmount (#705) is too similar to HashPanda._transferToExcluded(address,address,uint256).tTransferAmount (#696)
Variable HashPanda._getValues(uint256).rTransferAmount (#535) is too similar to HashPanda._getTValues(uint256).tTransferAmount (#541)
Variable HashPanda._transferToExcluded(address,address,uint256).rTransferAmount (#696) is too similar to HashPanda._transferFromExcluded(address,address,uint256).tTransferAmount (#705)
Variable HashPanda._transferBothExcluded(address,address,uint256).rTransferAmount (#498) is too similar to HashPanda._getTValues(uint256).tTransferAmount (#541)
Variable HashPanda._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#548) is too similar to HashPanda._getValues(uint256).tTransferAmount (#534)
Variable HashPanda._transferFromExcluded(address,address,uint256).rTransferAmount (#705) is too similar to HashPanda._getTValues(uint256).tTransferAmount (#541)
Variable HashPanda._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#548) is too similar to HashPanda._transferBothExcluded(address,address,uint256).tTransferAmount (#498)
Variable HashPanda._transferToExcluded(address,address,uint256).rTransferAmount (#696) is too similar to HashPanda._getTValues(uint256).tTransferAmount (#541)
Variable HashPanda._transferStandard(address,address,uint256).rTransferAmount (#688) is too similar to HashPanda._getValues(uint256).tTransferAmount (#534)
Variable HashPanda._transferStandard(address,address,uint256).rTransferAmount (#688) is too similar to HashPanda._transferBothExcluded(address,address,uint256).tTransferAmount (#498)
Variable HashPanda._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#548) is too similar to HashPanda._transferStandard(address,address,uint256).tTransferAmount (#688)
Variable HashPanda._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#548) is too similar to HashPanda._transferFromExcluded(address,address,uint256).tTransferAmount (#705)
Variable HashPanda._transferStandard(address,address,uint256).rTransferAmount (#688) is too similar to HashPanda._transferStandard(address,address,uint256).tTransferAmount (#688)
Variable HashPanda._transferToExcluded(address,address,uint256).rTransferAmount (#696) is too similar to HashPanda._getValues(uint256).tTransferAmount (#534)
Variable HashPanda._transferStandard(address,address,uint256).rTransferAmount (#688) is too similar to HashPanda._transferFromExcluded(address,address,uint256).tTransferAmount (#705)
Variable HashPanda._transferToExcluded(address,address,uint256).rTransferAmount (#696) is too similar to HashPanda._transferBothExcluded(address,address,uint256).tTransferAmount (#498)
Variable HashPanda._transferStandard(address,address,uint256).rTransferAmount (#688) is too similar to HashPanda._transferToExcluded(address,address,uint256).tTransferAmount (#696)
Variable HashPanda._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#548) is too similar to HashPanda._getTValues(uint256).tTransferAmount (#541)
Variable HashPanda.reflectionFromToken(uint256,bool).rTransferAmount (#468) is too similar to HashPanda._getTValues(uint256).tTransferAmount (#541)
Variable HashPanda._transferToExcluded(address,address,uint256).rTransferAmount (#696) is too similar to HashPanda._transferStandard(address,address,uint256).tTransferAmount (#688)
Variable HashPanda._transferStandard(address,address,uint256).rTransferAmount (#688) is too similar to HashPanda._getTValues(uint256).tTransferAmount (#541)
Prevent variables from having similar names.
Additional information: link
HashPanda.slitherConstructorVariables() (#360-714) uses literals with too many digits:
- _tTotal = 1000000000 * 10 ** 6 * 10 ** 9 (#370)
HashPanda.slitherConstructorVariables() (#360-714) uses literals with too many digits:
- _maxTxAmount = 500000 * 10 ** 6 * 10 ** 9 (#384)
HashPanda.slitherConstructorVariables() (#360-714) uses literals with too many digits:
- numTokensSellToAddToLiquidity = 500000 * 10 ** 6 * 10 ** 9 (#385)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
HashPanda._decimals (#375) should be constant
HashPanda._name (#373) should be constant
HashPanda._symbol (#374) should be constant
HashPanda._tTotal (#370) should be constant
HashPanda.numTokensSellToAddToLiquidity (#385) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
HashPanda.includeInReward(address) (#485-496) has costly operations inside a loop:
- _excluded.pop() (#492)
Use a local variable to hold the loop computation result.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#147-150)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#151-155)
geUnlockTime() should be declared external:
- Ownable.geUnlockTime() (#156-158)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#159-164)
unlock() should be declared external:
- Ownable.unlock() (#165-170)
name() should be declared external:
- HashPanda.name() (#408-410)
symbol() should be declared external:
- HashPanda.symbol() (#411-413)
decimals() should be declared external:
- HashPanda.decimals() (#414-416)
totalSupply() should be declared external:
- HashPanda.totalSupply() (#417-419)
transfer(address,uint256) should be declared external:
- HashPanda.transfer(address,uint256) (#424-427)
allowance(address,address) should be declared external:
- HashPanda.allowance(address,address) (#428-430)
approve(address,uint256) should be declared external:
- HashPanda.approve(address,uint256) (#431-434)
transferFrom(address,address,uint256) should be declared external:
- HashPanda.transferFrom(address,address,uint256) (#435-439)
increaseAllowance(address,uint256) should be declared external:
- HashPanda.increaseAllowance(address,uint256) (#440-443)
decreaseAllowance(address,uint256) should be declared external:
- HashPanda.decreaseAllowance(address,uint256) (#444-447)
isExcludedFromReward(address) should be declared external:
- HashPanda.isExcludedFromReward(address) (#448-450)
totalFees() should be declared external:
- HashPanda.totalFees() (#451-453)
deliver(uint256) should be declared external:
- HashPanda.deliver(uint256) (#454-461)
reflectionFromToken(uint256,bool) should be declared external:
- HashPanda.reflectionFromToken(uint256,bool) (#462-471)
excludeFromReward(address) should be declared external:
- HashPanda.excludeFromReward(address) (#477-484)
excludeFromFee(address) should be declared external:
- HashPanda.excludeFromFee(address) (#507-509)
includeInFee(address) should be declared external:
- HashPanda.includeInFee(address) (#510-512)
setSwapAndLiquifyEnabled(bool) should be declared external:
- HashPanda.setSwapAndLiquifyEnabled(bool) (#524-527)
isExcludedFromFee(address) should be declared external:
- HashPanda.isExcludedFromFee(address) (#596-598)
Use the external attribute for functions never called from the contract.
Additional information: link
HashPanda.allowance(address,address).owner (#428) shadows:
- Ownable.owner() (#140-142) (function)
HashPanda._approve(address,address,uint256).owner (#599) shadows:
- Ownable.owner() (#140-142) (function)
Rename the local variables that shadow another component.
Additional information: link
HashPanda.setTaxFeePercent(uint256) (#513-515) should emit an event for:
- _taxFee = taxFee (#514)
HashPanda.setLiquidityFeePercent(uint256) (#516-518) should emit an event for:
- _liquidityFee = liquidityFee (#517)
HashPanda.setMaxTxPercent(uint256) (#519-523) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(10 ** 2) (#520-522)
Emit an event for critical parameter changes.
Additional information: link
HashPanda.addLiquidity(uint256,uint256) (#659-669) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
Ensure that all the return values of the function calls are used.
Additional information: link
Reentrancy in HashPanda._transfer(address,address,uint256) (#606-636):
External calls:
- swapAndLiquify(contractTokenBalance) (#629)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#651-657)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#629)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#635)
- _liquidityFee = _previousLiquidityFee (#594)
- _liquidityFee = 0 (#590)
- _tokenTransfer(from,to,amount,takeFee) (#635)
- _previousLiquidityFee = _liquidityFee (#587)
- _tokenTransfer(from,to,amount,takeFee) (#635)
- _previousTaxFee = _taxFee (#586)
- _tokenTransfer(from,to,amount,takeFee) (#635)
- _tFeeTotal = _tFeeTotal.add(tFee) (#531)
- _tokenTransfer(from,to,amount,takeFee) (#635)
- _taxFee = _previousTaxFee (#593)
- _taxFee = 0 (#589)
Reentrancy in HashPanda.constructor() (#398-407):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#401-402)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#404)
- _isExcludedFromFee[address(this)] = true (#405)
- uniswapV2Router = _uniswapV2Router (#403)
Reentrancy in HashPanda.swapAndLiquify(uint256) (#637-645):
External calls:
- swapTokensForEth(half) (#641)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#651-657)
- addLiquidity(otherHalf,newBalance) (#643)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#643)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (#643)
- _allowances[owner][spender] = amount (#603)
Reentrancy in HashPanda.transferFrom(address,address,uint256) (#435-439):
External calls:
- _transfer(sender,recipient,amount) (#436)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#651-657)
External calls sending eth:
- _transfer(sender,recipient,amount) (#436)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#437)
- _allowances[owner][spender] = amount (#603)
Apply the check-effects-interactions pattern.
Additional information: link
Ownable.unlock() (#165-170) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now > _lockTime,Contract is locked until 7 days) (#167)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#88-93) uses assembly
- INLINE ASM (#91)
Address._functionCallWithValue(address,bytes,uint256,string) (#112-127) uses assembly
- INLINE ASM (#119-122)
Do not use evm assembly.
Additional information: link
Redundant expression "this (#82)" inContext (#77-85)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in HashPanda._transfer(address,address,uint256) (#606-636):
External calls:
- swapAndLiquify(contractTokenBalance) (#629)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#651-657)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#629)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#693)
- _tokenTransfer(from,to,amount,takeFee) (#635)
- Transfer(sender,recipient,tTransferAmount) (#711)
- _tokenTransfer(from,to,amount,takeFee) (#635)
- Transfer(sender,recipient,tTransferAmount) (#702)
- _tokenTransfer(from,to,amount,takeFee) (#635)
- Transfer(sender,recipient,tTransferAmount) (#505)
- _tokenTransfer(from,to,amount,takeFee) (#635)
Reentrancy in HashPanda.constructor() (#398-407):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#401-402)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#406)
Reentrancy in HashPanda.swapAndLiquify(uint256) (#637-645):
External calls:
- swapTokensForEth(half) (#641)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#651-657)
- addLiquidity(otherHalf,newBalance) (#643)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#643)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#604)
- addLiquidity(otherHalf,newBalance) (#643)
- SwapAndLiquify(half,newBalance,otherHalf) (#644)
Reentrancy in HashPanda.transferFrom(address,address,uint256) (#435-439):
External calls:
- _transfer(sender,recipient,amount) (#436)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#651-657)
External calls sending eth:
- _transfer(sender,recipient,amount) (#436)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#661-668)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#604)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#437)
Apply the check-effects-interactions pattern.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#112-127) is never used and should be removed
Address.functionCall(address,bytes) (#99-101) is never used and should be removed
Address.functionCall(address,bytes,string) (#102-104) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#105-107) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#108-111) is never used and should be removed
Address.isContract(address) (#88-93) is never used and should be removed
Address.sendValue(address,uint256) (#94-98) is never used and should be removed
Context._msgData() (#81-84) is never used and should be removed
SafeMath.mod(uint256,uint256) (#68-70) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#71-74) is never used and should be removed
Remove unused functions.
Additional information: link
HashPanda._rTotal (#371) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
HashPanda._previousTaxFee (#377) is set pre-construction with a non-constant function or state variable:
- _taxFee
HashPanda._previousLiquidityFee (#379) 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) (#94-98):
- (success) = recipient.call{value: amount}() (#96)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#112-127):
- (success,returndata) = target.call{value: weiValue}(data) (#114)
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() (#197) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#198) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#212) is not in mixedCase
Function IUniswapV2Router01.WETH() (#230) is not in mixedCase
Parameter HashPanda.setSwapAndLiquifyEnabled(bool)._enabled (#524) is not in mixedCase
Parameter HashPanda.calculateTaxFee(uint256)._amount (#573) is not in mixedCase
Parameter HashPanda.calculateLiquidityFee(uint256)._amount (#578) is not in mixedCase
Variable HashPanda._taxFee (#376) is not in mixedCase
Variable HashPanda._liquidityFee (#378) is not in mixedCase
Variable HashPanda._maxTxAmount (#384) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Token is marked as risky (blacklisted creator, fake name, dead project, etc.)
Additional information: link
Token has no active CoinMarketCap listing / rank
Token has relatively low CoinGecko rank
Last post in Twitter was more than 180 days ago
Unable to find Youtube account
Unable to find Discord account