is a unique browser-based play to earn game based on the series “The Squid Game” with in-game currency SQD, based on the Binance Smart Chain. SquidNetGame is a multiplayer game, where everyone can feel himself a hero of the series and pass five mini games.
Ownable._lockTime (#295) is never initialized. It is used in:
- Ownable.geUnlockTime() (#321-323)
SquidNetGame._isExcluded (#544) is never initialized. It is used in:
- SquidNetGame.balanceOf(address) (#624-627)
- SquidNetGame.isExcludedFromReward(address) (#659-661)
- SquidNetGame.deliver(uint256) (#667-674)
- SquidNetGame._takeLiquidity(uint256) (#753-759)
- SquidNetGame._tokenTransfer(address,address,uint256) (#857-897)
SquidNetGame._excluded (#545) is never initialized. It is used in:
- SquidNetGame._getCurrentSupply() (#741-751)
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
Contract locking ether found:
Contract SquidNetGame (#534-963) has payable functions:
- SquidNetGame.receive() (#708)
But does not have a function to withdraw the ether
Remove the payable attribute or add a withdraw function.
Additional information: link
SquidNetGame._taxFee (#556) is written in both
_taxFee = _previousTaxFee (#771)
_taxFee = 0 (#776)
SquidNetGame._liquidityFee (#559) is written in both
_liquidityFee = _previousLiquidityFee (#772)
_liquidityFee = 0 (#777)
SquidNetGame._burnFee (#562) is written in both
_burnFee = _previousBurnFee (#773)
_burnFee = 0 (#778)
SquidNetGame._devFee (#565) is written in both
_devFee = _previousDevFee (#774)
_devFee = 0 (#779)
Fix or remove the writes.
Additional information: link
Contract ownership is not renounced (belongs to a wallet)
Reentrancy in SquidNetGame._transfer(address,address,uint256) (#801-823):
External calls:
- swapAndLiquify(contractTokenBalance) (#819)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#846-852)
State variables written after the call(s):
- _tokenTransfer(from,to,amount) (#822)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#756)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#901)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#910)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#921)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#902)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#698)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#912)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#922)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#700)
- _tokenTransfer(from,to,amount) (#822)
- _rTotal = _rTotal.sub(rFee) (#711)
- _tokenTransfer(from,to,amount) (#822)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#758)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#697)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#920)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#911)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#699)
Apply the check-effects-interactions pattern.
Additional information: link
SquidNetGame.allowance(address,address).owner (#634) shadows:
- Ownable.owner() (#305-307) (function)
SquidNetGame._approve(address,address,uint256).owner (#793) shadows:
- Ownable.owner() (#305-307) (function)
Rename the local variables that shadow another component.
Additional information: link
SquidNetGame.setMaxTxPercent(uint256) (#944-949) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(10 ** 2) (#946-948)
SquidNetGame.setMaxWalletPercent(uint256) (#951-956) should emit an event for:
- _maxWalletToken = _tTotal.mul(maxWalletPercent).div(10 ** 2) (#953-955)
Emit an event for critical parameter changes.
Additional information: link
SquidNetGame.setDevWallet(address).newWallet (#940) lacks a zero-check on :
- devWallet = newWallet (#941)
Check that the address is not zero.
Additional information: link
Reentrancy in SquidNetGame._transfer(address,address,uint256) (#801-823):
External calls:
- swapAndLiquify(contractTokenBalance) (#819)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#846-852)
State variables written after the call(s):
- _tokenTransfer(from,to,amount) (#822)
- _burnFee = _previousBurnFee (#785)
- _burnFee = _previousBurnFee (#773)
- _burnFee = 0 (#778)
- _tokenTransfer(from,to,amount) (#822)
- _devFee = _previousDevFee (#786)
- _devFee = _previousDevFee (#774)
- _devFee = 0 (#779)
- _tokenTransfer(from,to,amount) (#822)
- _liquidityFee = _previousLiquidityFee (#784)
- _liquidityFee = _previousLiquidityFee (#772)
- _liquidityFee = 0 (#777)
- _liquidityFee = 0 (#885)
- _liquidityFee = _previousLiquidityFee (#892)
- _tokenTransfer(from,to,amount) (#822)
- _tFeeTotal = _tFeeTotal.add(tFee) (#712)
- _tokenTransfer(from,to,amount) (#822)
- _taxFee = _previousTaxFee (#783)
- _taxFee = _previousTaxFee (#771)
- _taxFee = 0 (#776)
- _taxFee = 0 (#884)
- _taxFee = _previousTaxFee (#891)
Reentrancy in SquidNetGame.constructor() (#593-606):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#597-598)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#602)
- _isExcludedFromFee[address(this)] = true (#603)
- uniswapV2Router = _uniswapV2Router (#600)
Reentrancy in SquidNetGame.transferFrom(address,address,uint256) (#643-647):
External calls:
- _transfer(sender,recipient,amount) (#644)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#846-852)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#645)
- _allowances[owner][spender] = amount (#797)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in SquidNetGame._transfer(address,address,uint256) (#801-823):
External calls:
- swapAndLiquify(contractTokenBalance) (#819)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#846-852)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#905)
- _tokenTransfer(from,to,amount) (#822)
- Transfer(sender,recipient,tTransferAmount) (#915)
- _tokenTransfer(from,to,amount) (#822)
- Transfer(sender,recipient,tTransferAmount) (#925)
- _tokenTransfer(from,to,amount) (#822)
- Transfer(sender,recipient,tTransferAmount) (#703)
- _tokenTransfer(from,to,amount) (#822)
Reentrancy in SquidNetGame.constructor() (#593-606):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#597-598)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#605)
Reentrancy in SquidNetGame.swapAndLiquify(uint256) (#825-837):
External calls:
- swapTokensForEth(half) (#831)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#846-852)
Event emitted after the call(s):
- SwapAndLiquify(half,newBalance,otherHalf) (#836)
Reentrancy in SquidNetGame.transferFrom(address,address,uint256) (#643-647):
External calls:
- _transfer(sender,recipient,amount) (#644)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#846-852)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#798)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#645)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#236-241) uses assembly
- INLINE ASM (#239)
Address._functionCallWithValue(address,bytes,uint256,string) (#272-288) uses assembly
- INLINE ASM (#280-283)
Do not use evm assembly.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#272-288) is never used and should be removed
Address.functionCall(address,bytes) (#253-255) is never used and should be removed
Address.functionCall(address,bytes,string) (#258-260) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#263-265) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#267-270) is never used and should be removed
Address.isContract(address) (#236-241) is never used and should be removed
Address.sendValue(address,uint256) (#244-250) is never used and should be removed
Context._msgData() (#226-229) is never used and should be removed
SafeMath.mod(uint256,uint256) (#199-201) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#215-218) is never used and should be removed
Remove unused functions.
Additional information: link
SquidNetGame._rTotal (#549) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
SquidNetGame._previousTaxFee (#557) is set pre-construction with a non-constant function or state variable:
- _taxFee
SquidNetGame._previousLiquidityFee (#560) is set pre-construction with a non-constant function or state variable:
- _liquidityFee
SquidNetGame._previousBurnFee (#563) is set pre-construction with a non-constant function or state variable:
- _burnFee
SquidNetGame._previousDevFee (#567) is set pre-construction with a non-constant function or state variable:
- _devFee
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.13 (#4) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.13 is not recommended for deployment
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) (#244-250):
- (success) = recipient.call{value: amount}() (#248)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#272-288):
- (success,returndata) = target.call{value: weiValue}(data) (#275)
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() (#361) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#362) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#379) is not in mixedCase
Function IUniswapV2Router01.WETH() (#400) is not in mixedCase
Parameter SquidNetGame.calculateTaxFee(uint256)._amount (#761) is not in mixedCase
Parameter SquidNetGame.calculateLiquidityFee(uint256)._amount (#765) is not in mixedCase
Parameter SquidNetGame.setSwapAndLiquifyEnabled(bool)._enabled (#958) is not in mixedCase
Variable SquidNetGame._taxFee (#556) is not in mixedCase
Variable SquidNetGame._liquidityFee (#559) is not in mixedCase
Variable SquidNetGame._burnFee (#562) is not in mixedCase
Variable SquidNetGame._devFee (#565) is not in mixedCase
Variable SquidNetGame._maxTxAmount (#575) is not in mixedCase
Variable SquidNetGame._maxWalletToken (#577) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#227)" inContext (#221-230)
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 (#405) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#406)
Variable SquidNetGame._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#732) is too similar to SquidNetGame._transferStandard(address,address,uint256).tTransferAmount (#900)
Variable SquidNetGame._transferToExcluded(address,address,uint256).rTransferAmount (#909) is too similar to SquidNetGame._transferStandard(address,address,uint256).tTransferAmount (#900)
Variable SquidNetGame._transferStandard(address,address,uint256).rTransferAmount (#900) is too similar to SquidNetGame._transferFromExcluded(address,address,uint256).tTransferAmount (#919)
Variable SquidNetGame._getValues(uint256).rTransferAmount (#717) is too similar to SquidNetGame._getTValues(uint256).tTransferAmount (#724)
Variable SquidNetGame._transferStandard(address,address,uint256).rTransferAmount (#900) is too similar to SquidNetGame._getTValues(uint256).tTransferAmount (#724)
Variable SquidNetGame._transferBothExcluded(address,address,uint256).rTransferAmount (#696) is too similar to SquidNetGame._transferBothExcluded(address,address,uint256).tTransferAmount (#696)
Variable SquidNetGame._transferToExcluded(address,address,uint256).rTransferAmount (#909) is too similar to SquidNetGame._getValues(uint256).tTransferAmount (#716)
Variable SquidNetGame._transferBothExcluded(address,address,uint256).rTransferAmount (#696) is too similar to SquidNetGame._transferStandard(address,address,uint256).tTransferAmount (#900)
Variable SquidNetGame._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#732) is too similar to SquidNetGame._getValues(uint256).tTransferAmount (#716)
Variable SquidNetGame.reflectionFromToken(uint256,bool).rTransferAmount (#682) is too similar to SquidNetGame._transferFromExcluded(address,address,uint256).tTransferAmount (#919)
Variable SquidNetGame.reflectionFromToken(uint256,bool).rTransferAmount (#682) is too similar to SquidNetGame._getTValues(uint256).tTransferAmount (#724)
Variable SquidNetGame._transferStandard(address,address,uint256).rTransferAmount (#900) is too similar to SquidNetGame._transferBothExcluded(address,address,uint256).tTransferAmount (#696)
Variable SquidNetGame._transferToExcluded(address,address,uint256).rTransferAmount (#909) is too similar to SquidNetGame._transferFromExcluded(address,address,uint256).tTransferAmount (#919)
Variable SquidNetGame._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#732) is too similar to SquidNetGame._transferFromExcluded(address,address,uint256).tTransferAmount (#919)
Variable SquidNetGame._transferToExcluded(address,address,uint256).rTransferAmount (#909) is too similar to SquidNetGame._transferToExcluded(address,address,uint256).tTransferAmount (#909)
Variable SquidNetGame._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#732) is too similar to SquidNetGame._transferToExcluded(address,address,uint256).tTransferAmount (#909)
Variable SquidNetGame._transferFromExcluded(address,address,uint256).rTransferAmount (#919) is too similar to SquidNetGame._transferFromExcluded(address,address,uint256).tTransferAmount (#919)
Variable SquidNetGame._transferStandard(address,address,uint256).rTransferAmount (#900) is too similar to SquidNetGame._transferStandard(address,address,uint256).tTransferAmount (#900)
Variable SquidNetGame._transferToExcluded(address,address,uint256).rTransferAmount (#909) is too similar to SquidNetGame._getTValues(uint256).tTransferAmount (#724)
Variable SquidNetGame._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#732) is too similar to SquidNetGame._getTValues(uint256).tTransferAmount (#724)
Variable SquidNetGame._transferBothExcluded(address,address,uint256).rTransferAmount (#696) is too similar to SquidNetGame._getValues(uint256).tTransferAmount (#716)
Variable SquidNetGame._transferFromExcluded(address,address,uint256).rTransferAmount (#919) is too similar to SquidNetGame._getTValues(uint256).tTransferAmount (#724)
Variable SquidNetGame._transferBothExcluded(address,address,uint256).rTransferAmount (#696) is too similar to SquidNetGame._transferFromExcluded(address,address,uint256).tTransferAmount (#919)
Variable SquidNetGame._transferStandard(address,address,uint256).rTransferAmount (#900) is too similar to SquidNetGame._getValues(uint256).tTransferAmount (#716)
Variable SquidNetGame._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#732) is too similar to SquidNetGame._transferBothExcluded(address,address,uint256).tTransferAmount (#696)
Variable SquidNetGame._transferBothExcluded(address,address,uint256).rTransferAmount (#696) is too similar to SquidNetGame._getTValues(uint256).tTransferAmount (#724)
Variable SquidNetGame._getValues(uint256).rTransferAmount (#717) is too similar to SquidNetGame._transferFromExcluded(address,address,uint256).tTransferAmount (#919)
Variable SquidNetGame._transferToExcluded(address,address,uint256).rTransferAmount (#909) is too similar to SquidNetGame._transferBothExcluded(address,address,uint256).tTransferAmount (#696)
Variable SquidNetGame._getValues(uint256).rTransferAmount (#717) is too similar to SquidNetGame._transferToExcluded(address,address,uint256).tTransferAmount (#909)
Variable SquidNetGame._transferBothExcluded(address,address,uint256).rTransferAmount (#696) is too similar to SquidNetGame._transferToExcluded(address,address,uint256).tTransferAmount (#909)
Variable SquidNetGame._transferFromExcluded(address,address,uint256).rTransferAmount (#919) is too similar to SquidNetGame._getValues(uint256).tTransferAmount (#716)
Variable SquidNetGame._transferStandard(address,address,uint256).rTransferAmount (#900) is too similar to SquidNetGame._transferToExcluded(address,address,uint256).tTransferAmount (#909)
Variable SquidNetGame.reflectionFromToken(uint256,bool).rTransferAmount (#682) is too similar to SquidNetGame._transferToExcluded(address,address,uint256).tTransferAmount (#909)
Variable SquidNetGame._transferFromExcluded(address,address,uint256).rTransferAmount (#919) is too similar to SquidNetGame._transferStandard(address,address,uint256).tTransferAmount (#900)
Variable SquidNetGame._getValues(uint256).rTransferAmount (#717) is too similar to SquidNetGame._transferBothExcluded(address,address,uint256).tTransferAmount (#696)
Variable SquidNetGame.reflectionFromToken(uint256,bool).rTransferAmount (#682) is too similar to SquidNetGame._transferBothExcluded(address,address,uint256).tTransferAmount (#696)
Variable SquidNetGame._getValues(uint256).rTransferAmount (#717) is too similar to SquidNetGame._getValues(uint256).tTransferAmount (#716)
Variable SquidNetGame._getValues(uint256).rTransferAmount (#717) is too similar to SquidNetGame._transferStandard(address,address,uint256).tTransferAmount (#900)
Variable SquidNetGame.reflectionFromToken(uint256,bool).rTransferAmount (#682) is too similar to SquidNetGame._getValues(uint256).tTransferAmount (#716)
Variable SquidNetGame._transferFromExcluded(address,address,uint256).rTransferAmount (#919) is too similar to SquidNetGame._transferToExcluded(address,address,uint256).tTransferAmount (#909)
Variable SquidNetGame.reflectionFromToken(uint256,bool).rTransferAmount (#682) is too similar to SquidNetGame._transferStandard(address,address,uint256).tTransferAmount (#900)
Variable SquidNetGame._transferFromExcluded(address,address,uint256).rTransferAmount (#919) is too similar to SquidNetGame._transferBothExcluded(address,address,uint256).tTransferAmount (#696)
Prevent variables from having similar names.
Additional information: link
Ownable._previousOwner (#294) is never used in SquidNetGame (#534-963)
Remove unused state variables.
Additional information: link
Not a direct threat, but may indicate unreliable intentions of developer. Widespread names (e.g. Elon, King, Moon, Doge) are common among meme-tokens and scams. The allow to gain free hype and attract unexperienced investors.
Ownable._lockTime (#295) should be constant
Ownable._previousOwner (#294) should be constant
SquidNetGame._decimals (#554) should be constant
SquidNetGame._name (#552) should be constant
SquidNetGame._symbol (#553) should be constant
SquidNetGame._tTotal (#548) should be constant
SquidNetGame.numTokensSellToAddToLiquidity (#576) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#315-319)
geUnlockTime() should be declared external:
- Ownable.geUnlockTime() (#321-323)
name() should be declared external:
- SquidNetGame.name() (#608-610)
symbol() should be declared external:
- SquidNetGame.symbol() (#612-614)
decimals() should be declared external:
- SquidNetGame.decimals() (#616-618)
totalSupply() should be declared external:
- SquidNetGame.totalSupply() (#620-622)
transfer(address,uint256) should be declared external:
- SquidNetGame.transfer(address,uint256) (#629-632)
allowance(address,address) should be declared external:
- SquidNetGame.allowance(address,address) (#634-636)
approve(address,uint256) should be declared external:
- SquidNetGame.approve(address,uint256) (#638-641)
transferFrom(address,address,uint256) should be declared external:
- SquidNetGame.transferFrom(address,address,uint256) (#643-647)
increaseAllowance(address,uint256) should be declared external:
- SquidNetGame.increaseAllowance(address,uint256) (#649-652)
decreaseAllowance(address,uint256) should be declared external:
- SquidNetGame.decreaseAllowance(address,uint256) (#654-657)
isExcludedFromReward(address) should be declared external:
- SquidNetGame.isExcludedFromReward(address) (#659-661)
totalFees() should be declared external:
- SquidNetGame.totalFees() (#663-665)
deliver(uint256) should be declared external:
- SquidNetGame.deliver(uint256) (#667-674)
reflectionFromToken(uint256,bool) should be declared external:
- SquidNetGame.reflectionFromToken(uint256,bool) (#676-685)
isExcludedFromFee(address) should be declared external:
- SquidNetGame.isExcludedFromFee(address) (#789-791)
setMaxTxPercent(uint256) should be declared external:
- SquidNetGame.setMaxTxPercent(uint256) (#944-949)
setMaxWalletPercent(uint256) should be declared external:
- SquidNetGame.setMaxWalletPercent(uint256) (#951-956)
setSwapAndLiquifyEnabled(bool) should be declared external:
- SquidNetGame.setSwapAndLiquifyEnabled(bool) (#958-961)
Use the external attribute for functions never called from the contract.
Additional information: link
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Unable to find KYC or doxxing proof
Unable to verify that token and website are owned by the same team (no listings + unable to find contract on website)
Unable to verify token contract address on the website
Unable to find token on CoinGecko
Additional information: link
Unable to find token on CoinMarketCap
Additional information: link
Token is not listed at Mobula.Finance
Additional information: link
Unable to find token on CoinHunt
Additional information: link
Unable to find code repository for the project
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Young tokens have high risks of price dump / death
Young tokens have high risks of price dump / death
Unable to find Blog account (Reddit or Medium)
Unable to find Youtube account
Unable to find Discord account