Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Reentrancy in token._transfer(address,address,uint256) (#762-851):
External calls:
- swapAndLiquify(contractTokenBalance) (#828)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#898-904)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#828)
- wallet.transfer(amount) (#867)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#971)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#972)
- _tOwned[address(this)] = _tOwned[address(this)].add(tDev) (#973)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- txCount ++ (#960)
Apply the check-effects-interactions pattern.
Additional information: link
token.blacklist_Remove_Wallets(address[]).gasUsed (#655) is a local variable never initialized
token.blacklist_Remove_Wallets(address[]).i (#657) is a local variable never initialized
token.blacklist_Add_Wallets(address[]).gasUsed (#637) is a local variable never initialized
token.blacklist_Add_Wallets(address[]).i (#639) 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
token.allowance(address,address).owner (#520) shadows:
- Ownable.owner() (#148-150) (function)
token._approve(address,address,uint256).owner (#754) shadows:
- Ownable.owner() (#148-150) (function)
Rename the local variables that shadow another component.
Additional information: link
token._set_Fees(uint256,uint256) (#582-588) should emit an event for:
- _sellFee = Sell_Fee (#585)
- _buyFee = Buy_Fee (#586)
token.set_Number_Of_Transactions_Before_Liquify_Trigger(uint8) (#612-614) should emit an event for:
- swapTrigger = number_of_transactions (#613)
token.set_Max_Transaction_Percent(uint256) (#718-720) should emit an event for:
- _maxTxAmount = _tTotal * maxTxPercent_x100 / 10000 (#719)
token.set_Max_Wallet_Percent(uint256) (#723-725) should emit an event for:
- _maxWalletToken = _tTotal * maxWallPercent_x100 / 10000 (#724)
Emit an event for critical parameter changes.
Additional information: link
token.Wallet_Update_Dev(address).wallet (#593) lacks a zero-check on :
- Wallet_Dev = wallet (#594)
token.set_New_Pair_Address(address).newPair (#943) lacks a zero-check on :
- uniswapV2Pair = newPair (#944)
Check that the address is not zero.
Additional information: link
Reentrancy in token._transfer(address,address,uint256) (#762-851):
External calls:
- swapAndLiquify(contractTokenBalance) (#828)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#898-904)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#828)
- wallet.transfer(amount) (#867)
State variables written after the call(s):
- _TotalFee = _buyFee (#848)
- _TotalFee = _sellFee (#848)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _TotalFee = _previousTotalFee (#746)
- _TotalFee = 0 (#739)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _buyFee = _previousBuyFee (#747)
- _buyFee = 0 (#737)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _previousBuyFee = _buyFee (#734)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _previousSellFee = _sellFee (#735)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _previousTotalFee = _TotalFee (#736)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _sellFee = _previousSellFee (#748)
- _sellFee = 0 (#738)
Reentrancy in token.constructor() (#471-486):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#478-479)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#481)
- _isExcludedFromFee[address(this)] = true (#482)
- _isExcludedFromFee[Wallet_Dev] = true (#483)
- uniswapV2Router = _uniswapV2Router (#480)
Reentrancy in token.set_New_Router_and_Make_Pair(address) (#930-934):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_newPCSRouter.factory()).createPair(address(this),_newPCSRouter.WETH()) (#932)
State variables written after the call(s):
- uniswapV2Router = _newPCSRouter (#933)
Reentrancy in token.transferFrom(address,address,uint256) (#529-533):
External calls:
- _transfer(sender,recipient,amount) (#530)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#898-904)
External calls sending eth:
- _transfer(sender,recipient,amount) (#530)
- wallet.transfer(amount) (#867)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#531)
- _allowances[owner][spender] = amount (#757)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in token._transfer(address,address,uint256) (#762-851):
External calls:
- swapAndLiquify(contractTokenBalance) (#828)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#898-904)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#828)
- wallet.transfer(amount) (#867)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#974)
- _tokenTransfer(from,to,amount,takeFee) (#850)
Reentrancy in token.constructor() (#471-486):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#478-479)
Event emitted after the call(s):
- Transfer(address(0),owner(),_tTotal) (#485)
Reentrancy in token.transferFrom(address,address,uint256) (#529-533):
External calls:
- _transfer(sender,recipient,amount) (#530)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#898-904)
External calls sending eth:
- _transfer(sender,recipient,amount) (#530)
- wallet.transfer(amount) (#867)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#758)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#531)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#68-72) uses assembly
- INLINE ASM (#70)
Address._verifyCallResult(bool,bytes,string) (#120-133) uses assembly
- INLINE ASM (#125-128)
Do not use evm assembly.
Additional information: link
Address._verifyCallResult(bool,bytes,string) (#120-133) is never used and should be removed
Address.functionCall(address,bytes) (#80-82) is never used and should be removed
Address.functionCall(address,bytes,string) (#84-86) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#88-90) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#92-97) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#110-112) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#114-118) is never used and should be removed
Address.functionStaticCall(address,bytes) (#99-101) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#103-107) is never used and should be removed
Address.isContract(address) (#68-72) is never used and should be removed
Address.sendValue(address,uint256) (#74-78) is never used and should be removed
Context._msgData() (#59-62) is never used and should be removed
SafeMath.div(uint256,uint256) (#32-34) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#43-48) is never used and should be removed
SafeMath.mul(uint256,uint256) (#28-30) is never used and should be removed
Remove unused functions.
Additional information: link
token._previousTotalFee (#417) is set pre-construction with a non-constant function or state variable:
- _TotalFee
token._previousBuyFee (#418) is set pre-construction with a non-constant function or state variable:
- _buyFee
token._previousSellFee (#419) is set pre-construction with a non-constant function or state variable:
- _sellFee
token._maxWalletToken (#428) is set pre-construction with a non-constant function or state variable:
- _tTotal.mul(5).div(1000)
token._previousMaxWalletToken (#429) is set pre-construction with a non-constant function or state variable:
- _maxWalletToken
token._maxTxAmount (#433) is set pre-construction with a non-constant function or state variable:
- _tTotal.mul(1).div(1000)
token._previousMaxTxAmount (#434) 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
solc-0.8.11 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) (#74-78):
- (success) = recipient.call{value: amount}() (#76)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#92-97):
- (success,returndata) = target.call{value: value}(data) (#95)
Low level call in Address.functionStaticCall(address,bytes,string) (#103-107):
- (success,returndata) = target.staticcall(data) (#105)
Low level call in Address.functionDelegateCall(address,bytes,string) (#114-118):
- (success,returndata) = target.delegatecall(data) (#116)
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() (#196) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#197) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#210) is not in mixedCase
Function IUniswapV2Router01.WETH() (#227) is not in mixedCase
Contract token (#360-991) is not in CapWords
Function token._set_Fees(uint256,uint256) (#582-588) is not in mixedCase
Parameter token._set_Fees(uint256,uint256).Buy_Fee (#582) is not in mixedCase
Parameter token._set_Fees(uint256,uint256).Sell_Fee (#582) is not in mixedCase
Function token.Wallet_Update_Dev(address) (#593-596) is not in mixedCase
Function token.set_Swap_And_Liquify_Enabled(bool) (#606-609) is not in mixedCase
Parameter token.set_Swap_And_Liquify_Enabled(bool).true_or_false (#606) is not in mixedCase
Function token.set_Number_Of_Transactions_Before_Liquify_Trigger(uint8) (#612-614) is not in mixedCase
Parameter token.set_Number_Of_Transactions_Before_Liquify_Trigger(uint8).number_of_transactions (#612) is not in mixedCase
Function token.blacklist_Add_Wallets(address[]) (#634-647) is not in mixedCase
Function token.blacklist_Remove_Wallets(address[]) (#652-665) is not in mixedCase
Function token.blacklist_Switch(bool) (#679-681) is not in mixedCase
Parameter token.blacklist_Switch(bool).true_or_false (#679) is not in mixedCase
Function token.set_Transfers_Without_Fees(bool) (#696-698) is not in mixedCase
Parameter token.set_Transfers_Without_Fees(bool).true_or_false (#696) is not in mixedCase
Function token.set_Max_Transaction_Percent(uint256) (#718-720) is not in mixedCase
Parameter token.set_Max_Transaction_Percent(uint256).maxTxPercent_x100 (#718) is not in mixedCase
Function token.set_Max_Wallet_Percent(uint256) (#723-725) is not in mixedCase
Parameter token.set_Max_Wallet_Percent(uint256).maxWallPercent_x100 (#723) is not in mixedCase
Function token.process_Tokens_Now(uint256) (#881-888) is not in mixedCase
Parameter token.process_Tokens_Now(uint256).percent_Of_Tokens_To_Process (#881) is not in mixedCase
Function token.remove_Random_Tokens(address,address,uint256) (#914-919) is not in mixedCase
Parameter token.remove_Random_Tokens(address,address,uint256).random_Token_Address (#914) is not in mixedCase
Parameter token.remove_Random_Tokens(address,address,uint256).send_to_wallet (#914) is not in mixedCase
Parameter token.remove_Random_Tokens(address,address,uint256).number_of_tokens (#914) is not in mixedCase
Function token.set_New_Router_and_Make_Pair(address) (#930-934) is not in mixedCase
Function token.set_New_Router_Address(address) (#937-940) is not in mixedCase
Function token.set_New_Pair_Address(address) (#943-945) is not in mixedCase
Variable token._isExcludedFromFee (#368) is not in mixedCase
Variable token._isBlacklisted (#371) is not in mixedCase
Variable token.Wallet_Dev (#383) is not in mixedCase
Variable token.Wallet_Burn (#384) is not in mixedCase
Variable token.Wallet_zero (#385) is not in mixedCase
Variable token._TotalFee (#411) is not in mixedCase
Variable token._buyFee (#412) is not in mixedCase
Variable token._sellFee (#413) is not in mixedCase
Variable token._maxWalletToken (#428) is not in mixedCase
Variable token._maxTxAmount (#433) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#60)" inContext (#54-63)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in token._transfer(address,address,uint256) (#762-851):
External calls:
- swapAndLiquify(contractTokenBalance) (#828)
- wallet.transfer(amount) (#867)
State variables written after the call(s):
- _TotalFee = _buyFee (#848)
- _TotalFee = _sellFee (#848)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _TotalFee = _previousTotalFee (#746)
- _TotalFee = 0 (#739)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _buyFee = _previousBuyFee (#747)
- _buyFee = 0 (#737)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _previousBuyFee = _buyFee (#734)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _previousSellFee = _sellFee (#735)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _previousTotalFee = _TotalFee (#736)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _sellFee = _previousSellFee (#748)
- _sellFee = 0 (#738)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#971)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#972)
- _tOwned[address(this)] = _tOwned[address(this)].add(tDev) (#973)
- _tokenTransfer(from,to,amount,takeFee) (#850)
- txCount ++ (#960)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#974)
- _tokenTransfer(from,to,amount,takeFee) (#850)
Reentrancy in token.transferFrom(address,address,uint256) (#529-533):
External calls:
- _transfer(sender,recipient,amount) (#530)
- wallet.transfer(amount) (#867)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#531)
- _allowances[owner][spender] = amount (#757)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#758)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#531)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#231) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#232)
Prevent variables from having similar names.
Additional information: link
token.slitherConstructorVariables() (#360-991) uses literals with too many digits:
- Wallet_Burn = address(0x000000000000000000000000000000000000dEaD) (#384)
token.slitherConstructorVariables() (#360-991) uses literals with too many digits:
- Wallet_zero = address(0x0000000000000000000000000000000000000000) (#385)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
token.Wallet_zero (#385) is never used in token (#360-991)
token._tFeeTotal (#399) is never used in token (#360-991)
token._previousMaxWalletToken (#429) is never used in token (#360-991)
token._previousMaxTxAmount (#434) is never used in token (#360-991)
Remove unused state variables.
Additional information: link
token.Wallet_Burn (#384) should be constant
token.Wallet_zero (#385) should be constant
token._decimals (#397) should be constant
token._name (#395) should be constant
token._symbol (#396) should be constant
token._tFeeTotal (#399) should be constant
token._tTotal (#398) should be constant
token.maxPossibleFee (#407) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#159-162)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#165-169)
name() should be declared external:
- token.name() (#495-497)
symbol() should be declared external:
- token.symbol() (#499-501)
decimals() should be declared external:
- token.decimals() (#503-505)
totalSupply() should be declared external:
- token.totalSupply() (#507-509)
transfer(address,uint256) should be declared external:
- token.transfer(address,uint256) (#515-518)
allowance(address,address) should be declared external:
- token.allowance(address,address) (#520-522)
approve(address,uint256) should be declared external:
- token.approve(address,uint256) (#524-527)
transferFrom(address,address,uint256) should be declared external:
- token.transferFrom(address,address,uint256) (#529-533)
increaseAllowance(address,uint256) should be declared external:
- token.increaseAllowance(address,uint256) (#535-538)
decreaseAllowance(address,uint256) should be declared external:
- token.decreaseAllowance(address,uint256) (#540-543)
excludeFromFee(address) should be declared external:
- token.excludeFromFee(address) (#562-564)
includeInFee(address) should be declared external:
- token.includeInFee(address) (#567-569)
Wallet_Update_Dev(address) should be declared external:
- token.Wallet_Update_Dev(address) (#593-596)
set_Swap_And_Liquify_Enabled(bool) should be declared external:
- token.set_Swap_And_Liquify_Enabled(bool) (#606-609)
set_Number_Of_Transactions_Before_Liquify_Trigger(uint8) should be declared external:
- token.set_Number_Of_Transactions_Before_Liquify_Trigger(uint8) (#612-614)
blacklist_Switch(bool) should be declared external:
- token.blacklist_Switch(bool) (#679-681)
process_Tokens_Now(uint256) should be declared external:
- token.process_Tokens_Now(uint256) (#881-888)
set_New_Router_and_Make_Pair(address) should be declared external:
- token.set_New_Router_and_Make_Pair(address) (#930-934)
set_New_Router_Address(address) should be declared external:
- token.set_New_Router_Address(address) (#937-940)
set_New_Pair_Address(address) should be declared external:
- token.set_New_Pair_Address(address) (#943-945)
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