Launched in 23/07/2022 by a team based in United States of America, Free Speech aims to help you regain your voice while defending your right to free speech.
Free Speech is a human activist token that operates on the BNB smart chain built to provide financial support for those who have been a target of free speech constraints in a highly digitalized world of social interactions.
Reentrancy in FreeSpeech._transfer(address,address,uint256) (#970-1000):
External calls:
- swapAndLiquify() (#990)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- swapAndLiquify() (#990)
- recipient.transfer(amount) (#1210)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#999)
- _tOwned[address(this)] = _tOwned[address(this)] + tLiquidity (#1128)
- _tOwned[sender] = _tOwned[sender] - tAmount (#1099)
- _tOwned[recipient] = _tOwned[recipient] + tTransferAmount (#1101)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- liquidityTokensCollected += (amount * _liquidityFee) / 100 (#1088)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- marketingTokensCollected += (amount * _marketingFee) / 100 (#1089)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- teamTokensCollected += (amount * _teamFee) / 100 (#1090)
Reentrancy in FreeSpeech.swapAndLiquify() (#1002-1032):
External calls:
- swapTokensForEth(halfLiquidityTokens) (#1005)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- swapTokensForEth(totalTokens) (#1016)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- transferToAddressETH(marketingWalletAddress,ethForMarketing) (#1026)
- recipient.transfer(amount) (#1210)
- transferToAddressETH(teamWalletAddress,ethForteam) (#1027)
- recipient.transfer(amount) (#1210)
State variables written after the call(s):
- liquidityTokensCollected = 0 (#1029)
Apply the check-effects-interactions pattern.
Additional information: link
FreeSpeech.recoverTokensFromContract(address,uint256) (#1235-1238) ignores return value by IERC20(_tokenAddress).transfer(marketingWalletAddress,_amount) (#1236)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ownership is not renounced (belongs to a wallet)
Combination 3: Reentrancy vulnerabilities + Unchecked transfer vulnerability. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
FreeSpeech.addLiquidity(uint256,uint256) (#1053-1066) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
Ensure that all the return values of the function calls are used.
Additional information: link
FreeSpeech.allowance(address,address).owner (#896) shadows:
- Ownable.owner() (#371-373) (function)
FreeSpeech._approve(address,address,uint256).owner (#959) shadows:
- Ownable.owner() (#371-373) (function)
Rename the local variables that shadow another component.
Additional information: link
Reentrancy in FreeSpeech._transfer(address,address,uint256) (#970-1000):
External calls:
- swapAndLiquify() (#990)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- swapAndLiquify() (#990)
- recipient.transfer(amount) (#1210)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#999)
- _liquidityFee = _previousLiquidityFee (#1147)
- _liquidityFee = 0 (#1140)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- _marketingFee = _previousMarketingFee (#1148)
- _marketingFee = 0 (#1141)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- _teamFee = _previousteamFee (#1149)
- _teamFee = 0 (#1142)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- totalSwapableFee = _liquidityFee + _marketingFee + _teamFee (#1150)
- totalSwapableFee = 0 (#1143)
Reentrancy in FreeSpeech.constructor() (#832-865):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#858-859)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#861)
- _isExcludedFromFee[address(this)] = true (#862)
- uniswapV2Router = _uniswapV2Router (#860)
Reentrancy in FreeSpeech.swapAndLiquify() (#1002-1032):
External calls:
- swapTokensForEth(halfLiquidityTokens) (#1005)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
External calls sending eth:
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
State variables written after the call(s):
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- _allowances[owner][spender] = amount (#966)
Reentrancy in FreeSpeech.swapAndLiquify() (#1002-1032):
External calls:
- swapTokensForEth(halfLiquidityTokens) (#1005)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- swapTokensForEth(totalTokens) (#1016)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
State variables written after the call(s):
- swapTokensForEth(totalTokens) (#1016)
- _allowances[owner][spender] = amount (#966)
Reentrancy in FreeSpeech.swapAndLiquify() (#1002-1032):
External calls:
- swapTokensForEth(halfLiquidityTokens) (#1005)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- swapTokensForEth(totalTokens) (#1016)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- transferToAddressETH(marketingWalletAddress,ethForMarketing) (#1026)
- recipient.transfer(amount) (#1210)
- transferToAddressETH(teamWalletAddress,ethForteam) (#1027)
- recipient.transfer(amount) (#1210)
State variables written after the call(s):
- marketingTokensCollected = 0 (#1030)
- teamTokensCollected = 0 (#1031)
Reentrancy in FreeSpeech.transferFrom(address,address,uint256) (#914-926):
External calls:
- _transfer(sender,recipient,amount) (#919)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- _transfer(sender,recipient,amount) (#919)
- recipient.transfer(amount) (#1210)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (#920-924)
- _allowances[owner][spender] = amount (#966)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in FreeSpeech._transfer(address,address,uint256) (#970-1000):
External calls:
- swapAndLiquify() (#990)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- swapAndLiquify() (#990)
- recipient.transfer(amount) (#1210)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#1104)
- _tokenTransfer(from,to,amount,takeFee) (#999)
Reentrancy in FreeSpeech.constructor() (#832-865):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#858-859)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#864)
Reentrancy in FreeSpeech.recoverTokensFromContract(address,uint256) (#1235-1238):
External calls:
- IERC20(_tokenAddress).transfer(marketingWalletAddress,_amount) (#1236)
Event emitted after the call(s):
- Log(We have recovered tokens from contract:,_amount) (#1237)
Reentrancy in FreeSpeech.swapAndLiquify() (#1002-1032):
External calls:
- swapTokensForEth(halfLiquidityTokens) (#1005)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
External calls sending eth:
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#967)
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- SwapAndLiquify(halfLiquidityTokens,newBalance,halfLiquidityTokens) (#1009-1013)
Reentrancy in FreeSpeech.swapAndLiquify() (#1002-1032):
External calls:
- swapTokensForEth(halfLiquidityTokens) (#1005)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- swapTokensForEth(totalTokens) (#1016)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#967)
- swapTokensForEth(totalTokens) (#1016)
- SwapTokensForETH(tokenAmount,path) (#1050)
- swapTokensForEth(totalTokens) (#1016)
Reentrancy in FreeSpeech.swapTokensForEth(uint256) (#1034-1051):
External calls:
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
Event emitted after the call(s):
- SwapTokensForETH(tokenAmount,path) (#1050)
Reentrancy in FreeSpeech.transferFrom(address,address,uint256) (#914-926):
External calls:
- _transfer(sender,recipient,amount) (#919)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1042-1048)
External calls sending eth:
- _transfer(sender,recipient,amount) (#919)
- recipient.transfer(amount) (#1210)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#967)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (#920-924)
Apply the check-effects-interactions pattern.
Additional information: link
Address.verifyCallResult(bool,bytes,string) (#310-330) uses assembly
- INLINE ASM (#322-325)
Do not use evm assembly.
Additional information: link
Address.functionCall(address,bytes) (#157-168) is never used and should be removed
Address.functionCall(address,bytes,string) (#176-182) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#195-207) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#215-231) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#275-285) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#293-302) is never used and should be removed
Address.functionStaticCall(address,bytes) (#239-250) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#258-267) is never used and should be removed
Address.isContract(address) (#102-108) is never used and should be removed
Address.sendValue(address,uint256) (#126-137) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (#310-330) is never used and should be removed
Context._msgData() (#37-39) is never used and should be removed
Remove unused functions.
Additional information: link
FreeSpeech._previousLiquidityFee (#791) is set pre-construction with a non-constant function or state variable:
- _liquidityFee
FreeSpeech._previousMarketingFee (#794) is set pre-construction with a non-constant function or state variable:
- _marketingFee
FreeSpeech._previousteamFee (#797) is set pre-construction with a non-constant function or state variable:
- _teamFee
FreeSpeech.totalSwapableFee (#799-800) is set pre-construction with a non-constant function or state variable:
- _liquidityFee + _marketingFee + _teamFee
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.15 (#20) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.15 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) (#126-137):
- (success) = recipient.call{value: amount}() (#132)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#215-231):
- (success,returndata) = target.call{value: value}(data) (#227-229)
Low level call in Address.functionStaticCall(address,bytes,string) (#258-267):
- (success,returndata) = target.staticcall(data) (#265)
Low level call in Address.functionDelegateCall(address,bytes,string) (#293-302):
- (success,returndata) = target.delegatecall(data) (#300)
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() (#479) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#481) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#511) is not in mixedCase
Function IUniswapV2Router01.WETH() (#555) is not in mixedCase
Parameter FreeSpeech.calculateLiquidityFee(uint256)._amount (#1131) is not in mixedCase
Parameter FreeSpeech.setNumTokensSellToAddToLiquidity(uint256)._minimumTokensBeforeSwap (#1170) is not in mixedCase
Parameter FreeSpeech.setMarketingWalletAddress(address)._marketingWallet (#1181) is not in mixedCase
Parameter FreeSpeech.setteamWalletAddress(address)._teamWallet (#1196) is not in mixedCase
Parameter FreeSpeech.setSwapAndLiquifyEnabled(bool)._enabled (#1202) is not in mixedCase
Parameter FreeSpeech.recoverTokensFromContract(address,uint256)._tokenAddress (#1235) is not in mixedCase
Parameter FreeSpeech.recoverTokensFromContract(address,uint256)._amount (#1235) is not in mixedCase
Constant FreeSpeech.deadWallet (#764-765) is not in UPPER_CASE_WITH_UNDERSCORES
Constant FreeSpeech._name (#786) is not in UPPER_CASE_WITH_UNDERSCORES
Constant FreeSpeech._symbol (#787) is not in UPPER_CASE_WITH_UNDERSCORES
Constant FreeSpeech._decimals (#788) is not in UPPER_CASE_WITH_UNDERSCORES
Variable FreeSpeech._liquidityFee (#790) is not in mixedCase
Variable FreeSpeech._marketingFee (#793) is not in mixedCase
Variable FreeSpeech._teamFee (#796) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Reentrancy in FreeSpeech._transfer(address,address,uint256) (#970-1000):
External calls:
- swapAndLiquify() (#990)
- recipient.transfer(amount) (#1210)
External calls sending eth:
- swapAndLiquify() (#990)
- recipient.transfer(amount) (#1210)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#999)
- _liquidityFee = _previousLiquidityFee (#1147)
- _liquidityFee = 0 (#1140)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- _marketingFee = _previousMarketingFee (#1148)
- _marketingFee = 0 (#1141)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- _tOwned[address(this)] = _tOwned[address(this)] + tLiquidity (#1128)
- _tOwned[sender] = _tOwned[sender] - tAmount (#1099)
- _tOwned[recipient] = _tOwned[recipient] + tTransferAmount (#1101)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- _teamFee = _previousteamFee (#1149)
- _teamFee = 0 (#1142)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- liquidityTokensCollected += (amount * _liquidityFee) / 100 (#1088)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- marketingTokensCollected += (amount * _marketingFee) / 100 (#1089)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- teamTokensCollected += (amount * _teamFee) / 100 (#1090)
- _tokenTransfer(from,to,amount,takeFee) (#999)
- totalSwapableFee = _liquidityFee + _marketingFee + _teamFee (#1150)
- totalSwapableFee = 0 (#1143)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#1104)
- _tokenTransfer(from,to,amount,takeFee) (#999)
Reentrancy in FreeSpeech.recoverETHfromContract() (#1227-1233):
External calls:
- address(marketingWalletAddress).transfer(address(this).balance) (#1228)
Event emitted after the call(s):
- AuditLog(We have recover the stock eth from contract.,marketingWalletAddress) (#1229-1232)
Reentrancy in FreeSpeech.swapAndLiquify() (#1002-1032):
External calls:
- transferToAddressETH(marketingWalletAddress,ethForMarketing) (#1026)
- recipient.transfer(amount) (#1210)
- transferToAddressETH(teamWalletAddress,ethForteam) (#1027)
- recipient.transfer(amount) (#1210)
External calls sending eth:
- addLiquidity(halfLiquidityTokens,newBalance) (#1008)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
- transferToAddressETH(marketingWalletAddress,ethForMarketing) (#1026)
- recipient.transfer(amount) (#1210)
- transferToAddressETH(teamWalletAddress,ethForteam) (#1027)
- recipient.transfer(amount) (#1210)
State variables written after the call(s):
- liquidityTokensCollected = 0 (#1029)
- marketingTokensCollected = 0 (#1030)
- teamTokensCollected = 0 (#1031)
Reentrancy in FreeSpeech.transferFrom(address,address,uint256) (#914-926):
External calls:
- _transfer(sender,recipient,amount) (#919)
- recipient.transfer(amount) (#1210)
External calls sending eth:
- _transfer(sender,recipient,amount) (#919)
- recipient.transfer(amount) (#1210)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#1058-1065)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (#920-924)
- _allowances[owner][spender] = amount (#966)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#967)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (#920-924)
Reentrancy in FreeSpeech.withdraw() (#1221-1224):
External calls:
- require(bool)(address(msg.sender).send(address(this).balance)) (#1222)
Event emitted after the call(s):
- AuditLog(We have withdraw eth from contract.,msg.sender) (#1223)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#560) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#561)
Prevent variables from having similar names.
Additional information: link
FreeSpeech.slitherConstructorConstantVariables() (#758-1264) uses literals with too many digits:
- deadWallet = 0x000000000000000000000000000000000000dEaD (#764-765)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
FreeSpeech._isExcluded (#778) is never used in FreeSpeech (#758-1264)
FreeSpeech._excluded (#780) is never used in FreeSpeech (#758-1264)
FreeSpeech.MAX (#782) is never used in FreeSpeech (#758-1264)
FreeSpeech._tFeeTotal (#784) is never used in FreeSpeech (#758-1264)
Remove unused state variables.
Additional information: link
FreeSpeech._tFeeTotal (#784) should be constant
FreeSpeech._tTotal (#783) should be constant
FreeSpeech.freespeechDeployer (#766) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
withdraw() should be declared external:
- FreeSpeech.withdraw() (#1221-1224)
recoverETHfromContract() should be declared external:
- FreeSpeech.recoverETHfromContract() (#1227-1233)
Use the external attribute for functions never called from the contract.
Additional information: link
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Token has relatively low CoinGecko rank
Unable to find Youtube account
Unable to find Discord account