Reentrancy in SalfordNet._transfer(address,address,uint256) (#495-550):
External calls:
- swapAndLiquify(contractTokenBalance) (#531)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#596-602)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#531)
- wallet.transfer(amount) (#553)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee,isBuy) (#548)
- _tOwned[sender] = _tOwned[sender] - tAmount (#633)
- _tOwned[recipient] = _tOwned[recipient] + tAmount (#634)
- _tOwned[sender] = _tOwned[sender] - tAmount (#645)
- _tOwned[recipient] = _tOwned[recipient] + tTransferAmount (#646)
- _tOwned[address(this)] = _tOwned[address(this)] + buyFEE (#647)
- _tOwned[sender] = _tOwned[sender] - tAmount (#658)
- _tOwned[recipient] = _tOwned[recipient] + tTransferAmount_scope_0 (#659)
- _tOwned[address(this)] = _tOwned[address(this)] + sellFEE (#660)
- _tokenTransfer(from,to,amount,takeFee,isBuy) (#548)
- _tTotal = _tTotal - tAmount (#638)
- _tTotal = _tTotal - tTransferAmount (#651)
- _tTotal = _tTotal - tTransferAmount_scope_0 (#664)
- txCount ++ (#544)
Apply the check-effects-interactions pattern.
Additional information: link
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract ownership is not renounced (belongs to a wallet)
SalfordNet.swapAndLiquify(uint256) (#558-588) performs a multiplication on the result of a division:
-split_M = Percent_Marketing * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev) (#573)
-BNB_M = BNB_Total * split_M / 100 (#574)
SalfordNet.swapAndLiquify(uint256) (#558-588) performs a multiplication on the result of a division:
-split_D = Percent_Dev * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev) (#576)
-BNB_D = BNB_Total * split_D / 100 (#577)
Consider ordering multiplication before division.
Additional information: link
SalfordNet._transfer(address,address,uint256).isBuy (#535) is a local variable never initialized
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
SalfordNet.addLiquidity(uint256,uint256) (#606-617) ignores return value by uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
Ensure that all the return values of the function calls are used.
Additional information: link
Reentrancy in SalfordNet.constructor() (#405-427):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#415-416)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#419)
- _isExcludedFromFee[address(this)] = true (#420)
- _isExcludedFromFee[Wallet_Marketing] = true (#421)
- _isExcludedFromFee[Wallet_Burn] = true (#422)
- _isExcludedFromFee[Lp_Reciever] = true (#423)
- uniswapV2Router = _uniswapV2Router (#417)
Reentrancy in SalfordNet.swapAndLiquify(uint256) (#558-588):
External calls:
- swapTokensForBNB(tokens_to_LP_Half + tokens_to_M + tokens_to_D) (#570)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#596-602)
- addLiquidity(tokens_to_LP_Half,(BNB_Total - BNB_M - BNB_D)) (#580)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
External calls sending eth:
- addLiquidity(tokens_to_LP_Half,(BNB_Total - BNB_M - BNB_D)) (#580)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
State variables written after the call(s):
- addLiquidity(tokens_to_LP_Half,(BNB_Total - BNB_M - BNB_D)) (#580)
- _allowances[theOwner][theSpender] = amount (#490)
Reentrancy in SalfordNet.transferFrom(address,address,uint256) (#463-467):
External calls:
- _transfer(sender,recipient,amount) (#464)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#596-602)
External calls sending eth:
- _transfer(sender,recipient,amount) (#464)
- wallet.transfer(amount) (#553)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#465)
- _allowances[theOwner][theSpender] = amount (#490)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in SalfordNet._transfer(address,address,uint256) (#495-550):
External calls:
- swapAndLiquify(contractTokenBalance) (#531)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#596-602)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#531)
- wallet.transfer(amount) (#553)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
Event emitted after the call(s):
- Transfer(sender,recipient,tAmount) (#635)
- _tokenTransfer(from,to,amount,takeFee,isBuy) (#548)
- Transfer(sender,recipient,tTransferAmount) (#648)
- _tokenTransfer(from,to,amount,takeFee,isBuy) (#548)
- Transfer(sender,recipient,tTransferAmount_scope_0) (#661)
- _tokenTransfer(from,to,amount,takeFee,isBuy) (#548)
Reentrancy in SalfordNet.constructor() (#405-427):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#415-416)
Event emitted after the call(s):
- Transfer(address(0),owner(),_tTotal) (#425)
Reentrancy in SalfordNet.swapAndLiquify(uint256) (#558-588):
External calls:
- swapTokensForBNB(tokens_to_LP_Half + tokens_to_M + tokens_to_D) (#570)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#596-602)
- addLiquidity(tokens_to_LP_Half,(BNB_Total - BNB_M - BNB_D)) (#580)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
External calls sending eth:
- addLiquidity(tokens_to_LP_Half,(BNB_Total - BNB_M - BNB_D)) (#580)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
Event emitted after the call(s):
- Approval(theOwner,theSpender,amount) (#491)
- addLiquidity(tokens_to_LP_Half,(BNB_Total - BNB_M - BNB_D)) (#580)
- SwapAndLiquify(tokens_to_LP_Half,(BNB_Total - BNB_M - BNB_D),tokens_to_LP_Half) (#581)
Reentrancy in SalfordNet.transferFrom(address,address,uint256) (#463-467):
External calls:
- _transfer(sender,recipient,amount) (#464)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#596-602)
External calls sending eth:
- _transfer(sender,recipient,amount) (#464)
- wallet.transfer(amount) (#553)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
Event emitted after the call(s):
- Approval(theOwner,theSpender,amount) (#491)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#465)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#70-74) uses assembly
- INLINE ASM (#72)
Address._verifyCallResult(bool,bytes,string) (#122-135) uses assembly
- INLINE ASM (#127-130)
Do not use evm assembly.
Additional information: link
Address._verifyCallResult(bool,bytes,string) (#122-135) is never used and should be removed
Address.functionCall(address,bytes) (#82-84) is never used and should be removed
Address.functionCall(address,bytes,string) (#86-88) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#90-92) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#94-99) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#112-114) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#116-120) is never used and should be removed
Address.functionStaticCall(address,bytes) (#101-103) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#105-109) is never used and should be removed
Address.isContract(address) (#70-74) is never used and should be removed
Address.sendValue(address,uint256) (#76-80) is never used and should be removed
Context._msgData() (#61-64) is never used and should be removed
SafeMath.div(uint256,uint256) (#35-37) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#46-51) is never used and should be removed
SafeMath.mul(uint256,uint256) (#31-33) is never used and should be removed
SafeMath.sub(uint256,uint256) (#27-29) is never used and should be removed
SalfordNet._getCurrentSupply() (#481-483) is never used and should be removed
Remove unused functions.
Additional information: link
SalfordNet._maxWalletToken (#379) is set pre-construction with a non-constant function or state variable:
- _tTotal * 100 / 100
SalfordNet._previousMaxWalletToken (#380) is set pre-construction with a non-constant function or state variable:
- _maxWalletToken
SalfordNet._maxTxAmount (#382) is set pre-construction with a non-constant function or state variable:
- _tTotal * 3 / 100
SalfordNet._previousMaxTxAmount (#383) is set pre-construction with a non-constant function or state variable:
- _maxTxAmount
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 version0.8.10 (#6) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.10 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) (#76-80):
- (success) = recipient.call{value: amount}() (#78)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#94-99):
- (success,returndata) = target.call{value: value}(data) (#97)
Low level call in Address.functionStaticCall(address,bytes,string) (#105-109):
- (success,returndata) = target.staticcall(data) (#107)
Low level call in Address.functionDelegateCall(address,bytes,string) (#116-120):
- (success,returndata) = target.delegatecall(data) (#118)
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() (#164) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#165) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#178) is not in mixedCase
Function IUniswapV2Router01.WETH() (#195) is not in mixedCase
Parameter SalfordNet.addLiquidity(uint256,uint256).BNBAmount (#606) is not in mixedCase
Function SalfordNet.remove_Random_Tokens(address,uint256) (#619-625) is not in mixedCase
Parameter SalfordNet.remove_Random_Tokens(address,uint256).random_Token_Address (#619) is not in mixedCase
Parameter SalfordNet.remove_Random_Tokens(address,uint256).percent_of_Tokens (#619) is not in mixedCase
Variable SalfordNet._isExcludedFromFee (#353) is not in mixedCase
Variable SalfordNet.Wallet_Marketing (#355) is not in mixedCase
Variable SalfordNet.Wallet_Dev (#356) is not in mixedCase
Constant SalfordNet.Wallet_Burn (#357) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SalfordNet.Lp_Reciever (#358) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SalfordNet._decimals (#363) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SalfordNet._name (#365) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SalfordNet._symbol (#366) is not in UPPER_CASE_WITH_UNDERSCORES
Variable SalfordNet._Tax_On_Buy (#371) is not in mixedCase
Variable SalfordNet._Tax_On_Sell (#372) is not in mixedCase
Variable SalfordNet.Percent_Marketing (#374) is not in mixedCase
Variable SalfordNet.Percent_Dev (#375) is not in mixedCase
Variable SalfordNet.Percent_Burn (#376) is not in mixedCase
Variable SalfordNet.Percent_AutoLP (#377) is not in mixedCase
Variable SalfordNet._maxWalletToken (#379) is not in mixedCase
Variable SalfordNet._maxTxAmount (#382) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#62)" inContext (#56-65)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in SalfordNet._transfer(address,address,uint256) (#495-550):
External calls:
- swapAndLiquify(contractTokenBalance) (#531)
- wallet.transfer(amount) (#553)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#531)
- wallet.transfer(amount) (#553)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee,isBuy) (#548)
- _tOwned[sender] = _tOwned[sender] - tAmount (#633)
- _tOwned[recipient] = _tOwned[recipient] + tAmount (#634)
- _tOwned[sender] = _tOwned[sender] - tAmount (#645)
- _tOwned[recipient] = _tOwned[recipient] + tTransferAmount (#646)
- _tOwned[address(this)] = _tOwned[address(this)] + buyFEE (#647)
- _tOwned[sender] = _tOwned[sender] - tAmount (#658)
- _tOwned[recipient] = _tOwned[recipient] + tTransferAmount_scope_0 (#659)
- _tOwned[address(this)] = _tOwned[address(this)] + sellFEE (#660)
- _tokenTransfer(from,to,amount,takeFee,isBuy) (#548)
- _tTotal = _tTotal - tAmount (#638)
- _tTotal = _tTotal - tTransferAmount (#651)
- _tTotal = _tTotal - tTransferAmount_scope_0 (#664)
- txCount ++ (#544)
Event emitted after the call(s):
- Transfer(sender,recipient,tAmount) (#635)
- _tokenTransfer(from,to,amount,takeFee,isBuy) (#548)
- Transfer(sender,recipient,tTransferAmount) (#648)
- _tokenTransfer(from,to,amount,takeFee,isBuy) (#548)
- Transfer(sender,recipient,tTransferAmount_scope_0) (#661)
- _tokenTransfer(from,to,amount,takeFee,isBuy) (#548)
Reentrancy in SalfordNet.transferFrom(address,address,uint256) (#463-467):
External calls:
- _transfer(sender,recipient,amount) (#464)
- wallet.transfer(amount) (#553)
External calls sending eth:
- _transfer(sender,recipient,amount) (#464)
- wallet.transfer(amount) (#553)
- uniswapV2Router.addLiquidityETH{value: BNBAmount}(address(this),tokenAmount,0,0,Lp_Reciever,block.timestamp) (#609-616)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#465)
- _allowances[theOwner][theSpender] = amount (#490)
Event emitted after the call(s):
- Approval(theOwner,theSpender,amount) (#491)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#465)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#199) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#200)
Variable SalfordNet.swapAndLiquify(uint256).tokens_to_D (#566) is too similar to SalfordNet.swapAndLiquify(uint256).tokens_to_M (#565)
Prevent variables from having similar names.
Additional information: link
SalfordNet.slitherConstructorVariables() (#329-673) uses literals with too many digits:
- _tTotal = 3000000000 * 10 ** _decimals (#364)
SalfordNet.slitherConstructorConstantVariables() (#329-673) uses literals with too many digits:
- Wallet_Burn = address(0x000000000000000000000000000000000000dEaD) (#357)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SalfordNet.MAX (#362) is never used in SalfordNet (#329-673)
SalfordNet._previousMaxWalletToken (#380) is never used in SalfordNet (#329-673)
SalfordNet._previousMaxTxAmount (#383) is never used in SalfordNet (#329-673)
Remove unused state variables.
Additional information: link
SalfordNet.Percent_AutoLP (#377) should be constant
SalfordNet.Percent_Burn (#376) should be constant
SalfordNet.Percent_Dev (#375) should be constant
SalfordNet.Percent_Marketing (#374) should be constant
SalfordNet.Wallet_Dev (#356) should be constant
SalfordNet.Wallet_Marketing (#355) should be constant
SalfordNet._Tax_On_Buy (#371) should be constant
SalfordNet._Tax_On_Sell (#372) should be constant
SalfordNet.swapAndLiquifyEnabled (#389) should be constant
SalfordNet.swapTrigger (#369) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- SalfordNet.renounceOwnership() (#346-349)
name() should be declared external:
- SalfordNet.name() (#429-431)
symbol() should be declared external:
- SalfordNet.symbol() (#433-435)
decimals() should be declared external:
- SalfordNet.decimals() (#437-439)
totalSupply() should be declared external:
- SalfordNet.totalSupply() (#441-443)
transfer(address,uint256) should be declared external:
- SalfordNet.transfer(address,uint256) (#449-452)
allowance(address,address) should be declared external:
- SalfordNet.allowance(address,address) (#454-456)
approve(address,uint256) should be declared external:
- SalfordNet.approve(address,uint256) (#458-461)
transferFrom(address,address,uint256) should be declared external:
- SalfordNet.transferFrom(address,address,uint256) (#463-467)
increaseAllowance(address,uint256) should be declared external:
- SalfordNet.increaseAllowance(address,uint256) (#469-472)
decreaseAllowance(address,uint256) should be declared external:
- SalfordNet.decreaseAllowance(address,uint256) (#474-477)
remove_Random_Tokens(address,uint256) should be declared external:
- SalfordNet.remove_Random_Tokens(address,uint256) (#619-625)
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