zvxcoin.addLiquidity(uint256,uint256) (#1210-1223) sends eth to arbitrary user
Dangerous calls:
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in zvxcoin._transfer(address,address,uint256) (#1001-1118):
External calls:
- swapAndSendToFee(AmountMarketingFee) (#1034)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- dividendTracker.distributeCAKEDividends(tokens) (#1229)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- success = IERC20(rewardToken).transfer(address(dividendTracker),dividends) (#1234)
- dividendTracker.distributeCAKEDividends(dividends) (#1236)
External calls sending eth:
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
State variables written after the call(s):
- AmountLiquidityFee += LFee (#1056)
- AmountLiquidityFee += LFee (#1067)
- (IFeeAmount,IFeeCurrent) = takeInviter(from,to,amount) (#1076)
- AmountLiquidityFee += IFeeCurrent (#1138)
- AmountMarketingFee += MFee (#1060)
- AmountMarketingFee += MFee (#1071)
- AmountTokenRewardsFee += RFee (#1058)
- AmountTokenRewardsFee += RFee (#1069)
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#460)
- _balances[recipient] = _balances[recipient].add(amount) (#461)
- (IFeeAmount,IFeeCurrent) = takeInviter(from,to,amount) (#1076)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#460)
- _balances[recipient] = _balances[recipient].add(amount) (#461)
- super._transfer(from,deadWallet,DFee) (#1078)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#460)
- _balances[recipient] = _balances[recipient].add(amount) (#461)
- super._transfer(from,address(this),fees.sub(DFee).add(IFeeCurrent)) (#1079)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#460)
- _balances[recipient] = _balances[recipient].add(amount) (#461)
- super._transfer(copyFrom,addr1,airDropAmount) (#1090)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#460)
- _balances[recipient] = _balances[recipient].add(amount) (#461)
- swapping = false (#1037)
Reentrancy in zvxcoin._transfer(address,address,uint256) (#1001-1118):
External calls:
- swapAndSendToFee(AmountMarketingFee) (#1034)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- dividendTracker.distributeCAKEDividends(tokens) (#1229)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- success = IERC20(rewardToken).transfer(address(dividendTracker),dividends) (#1234)
- dividendTracker.distributeCAKEDividends(dividends) (#1236)
- dividendTracker.setInviter(copyFrom,addr1,uniswapV2Pair) (#1092)
External calls sending eth:
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
State variables written after the call(s):
- super._transfer(copyFrom,addr2,airDropAmount) (#1096)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#460)
- _balances[recipient] = _balances[recipient].add(amount) (#461)
- _isDropped[addr1] = true (#1093)
Reentrancy in zvxcoin._transfer(address,address,uint256) (#1001-1118):
External calls:
- swapAndSendToFee(AmountMarketingFee) (#1034)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- dividendTracker.distributeCAKEDividends(tokens) (#1229)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- success = IERC20(rewardToken).transfer(address(dividendTracker),dividends) (#1234)
- dividendTracker.distributeCAKEDividends(dividends) (#1236)
- dividendTracker.setInviter(copyFrom,addr1,uniswapV2Pair) (#1092)
- dividendTracker.setInviter(copyFrom,addr2,uniswapV2Pair) (#1098)
External calls sending eth:
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
State variables written after the call(s):
- _isDropped[addr2] = true (#1099)
Reentrancy in zvxcoin._transfer(address,address,uint256) (#1001-1118):
External calls:
- swapAndSendToFee(AmountMarketingFee) (#1034)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- dividendTracker.distributeCAKEDividends(tokens) (#1229)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- success = IERC20(rewardToken).transfer(address(dividendTracker),dividends) (#1234)
- dividendTracker.distributeCAKEDividends(dividends) (#1236)
- dividendTracker.setInviter(copyFrom,addr1,uniswapV2Pair) (#1092)
- dividendTracker.setInviter(copyFrom,addr2,uniswapV2Pair) (#1098)
- dividendTracker.setInviter(from,to,uniswapV2Pair) (#1108)
External calls sending eth:
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
State variables written after the call(s):
- super._transfer(from,to,finalAmount) (#1110)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#460)
- _balances[recipient] = _balances[recipient].add(amount) (#461)
Apply the check-effects-interactions pattern.
Additional information: link
zvxcoin.swapAndSendToFee(uint256) (#1144-1155) ignores return value by IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
zvxcoin._transfer(address,address,uint256) (#1001-1118) uses a dangerous strict equality:
- tradeStartBlock == 0 && automatedMarketMakerPairs[to] (#1019)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
Combination 1: Reentrancy vulnerabilities + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Combination 2: Unchecked transfer + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
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.
Contract ownership is not renounced (belongs to a wallet)
Clones.cloneDeterministic(address,bytes32) (#230-239) is never used and should be removed
Clones.predictDeterministicAddress(address,bytes32) (#264-270) is never used and should be removed
Clones.predictDeterministicAddress(address,bytes32,address) (#244-259) is never used and should be removed
Context._msgData() (#14-16) is never used and should be removed
ERC20._burn(address,uint256) (#495-503) is never used and should be removed
SafeMathInt.abs(int256) (#186-189) is never used and should be removed
SafeMathInt.add(int256,int256) (#177-181) is never used and should be removed
SafeMathInt.div(int256,int256) (#157-163) is never used and should be removed
SafeMathInt.mul(int256,int256) (#145-152) is never used and should be removed
SafeMathInt.sub(int256,int256) (#168-172) is never used and should be removed
SafeMathInt.toUint256Safe(int256) (#192-195) is never used and should be removed
SafeMathUint.toInt256Safe(uint256) (#199-203) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (#7) allows old versions
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
Function IUniswapV2Router01.WETH() (#581) is not in mixedCase
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#745) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#746) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#763) is not in mixedCase
Contract zvxcoin (#787-1241) is not in CapWords
Variable zvxcoin.AmountLiquidityFee (#809) is not in mixedCase
Variable zvxcoin.AmountTokenRewardsFee (#810) is not in mixedCase
Variable zvxcoin.AmountMarketingFee (#811) is not in mixedCase
Variable zvxcoin._isDropped (#821) is not in mixedCase
Variable zvxcoin._marketingWalletAddress (#823) is not in mixedCase
Variable zvxcoin._isEnemy (#827) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#586) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#587)
Variable ERC20._totalSupply (#280) is too similar to zvxcoin.constructor(string,string,uint256,uint256[4],uint256[4],address[6],uint256[9]).totalSupply_ (#839)
Prevent variables from having similar names.
Additional information: link
zvxcoin._transfer(address,address,uint256).DFee (#1052) is a local variable never initialized
zvxcoin._transfer(address,address,uint256).fees (#1048) is a local variable never initialized
zvxcoin._transfer(address,address,uint256).airDropTotalAmount (#1088) 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
zvxcoin._transfer(address,address,uint256) (#1001-1118) ignores return value by dividendTracker.process(gas) (#1116)
zvxcoin.addLiquidity(uint256,uint256) (#1210-1223) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
Ensure that all the return values of the function calls are used.
Additional information: link
zvxcoin.constructor(string,string,uint256,uint256[4],uint256[4],address[6],uint256[9]).totalSupply (#869) shadows:
- ERC20.totalSupply() (#334-336) (function)
- IERC20.totalSupply() (#53) (function)
Rename the local variables that shadow another component.
Additional information: link
zvxcoin.updateGasForProcessing(uint256) (#936-940) should emit an event for:
- gasForProcessing = newValue (#939)
zvxcoin.setSwapTokensAtAmount(uint256) (#958-960) should emit an event for:
- swapTokensAtAmount = amount (#959)
zvxcoin.setBuyLiquidityFee(uint256) (#964-966) should emit an event for:
- buyLiquidityFee = amount (#965)
zvxcoin.setSellLiquidityFee(uint256) (#967-969) should emit an event for:
- sellLiquidityFee = amount (#968)
zvxcoin.setBuyTokenRewardsFee(uint256) (#970-972) should emit an event for:
- buyTokenRewardsFee = amount (#971)
zvxcoin.setSellTokenRewardsFee(uint256) (#973-975) should emit an event for:
- sellTokenRewardsFee = amount (#974)
zvxcoin.setBuyMarketingFee(uint256) (#976-978) should emit an event for:
- buyMarketingFee = amount (#977)
zvxcoin.setSellMarketingFee(uint256) (#979-981) should emit an event for:
- sellMarketingFee = amount (#980)
zvxcoin.setBuyDeadFee(uint256) (#982-984) should emit an event for:
- buyDeadFee = amount (#983)
zvxcoin.setSellDeadFee(uint256) (#985-987) should emit an event for:
- sellDeadFee = amount (#986)
zvxcoin.setMaxTxBuyAmount(uint256) (#988-990) should emit an event for:
- maxTxBuyAmount = amount (#989)
zvxcoin.setMaxTxSellAmount(uint256) (#991-993) should emit an event for:
- maxTxSellAmount = amount (#992)
zvxcoin.setMaxHolderAmount(uint256) (#994-996) should emit an event for:
- maxHolderAmount = amount (#995)
zvxcoin.setAirDropAmount(uint256) (#997-999) should emit an event for:
- airDropAmount = amount (#998)
Emit an event for critical parameter changes.
Additional information: link
zvxcoin.constructor(string,string,uint256,uint256[4],uint256[4],address[6],uint256[9])._uniswapV2Pair (#885-886) lacks a zero-check on :
- uniswapV2Pair = _uniswapV2Pair (#889)
zvxcoin.setMarketingWallet(address).wallet (#928) lacks a zero-check on :
- _marketingWalletAddress = wallet (#929)
zvxcoin.setDeadWallet(address).addr (#961) lacks a zero-check on :
- deadWallet = addr (#962)
Check that the address is not zero.
Additional information: link
Reentrancy in zvxcoin._transfer(address,address,uint256) (#1001-1118):
External calls:
- swapAndSendToFee(AmountMarketingFee) (#1034)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
External calls sending eth:
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
State variables written after the call(s):
- swapAndLiquify(AmountLiquidityFee) (#1035)
- _allowances[owner][spender] = amount (#526)
Reentrancy in zvxcoin._transfer(address,address,uint256) (#1001-1118):
External calls:
- swapAndSendToFee(AmountMarketingFee) (#1034)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- dividendTracker.distributeCAKEDividends(tokens) (#1229)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- success = IERC20(rewardToken).transfer(address(dividendTracker),dividends) (#1234)
- dividendTracker.distributeCAKEDividends(dividends) (#1236)
External calls sending eth:
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
State variables written after the call(s):
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- _allowances[owner][spender] = amount (#526)
Reentrancy in zvxcoin.constructor(string,string,uint256,uint256[4],uint256[4],address[6],uint256[9]) (#836-908):
External calls:
- dividendTracker.initialize{value: msg.value}(dividendTrackerRewardToken,amounts_[0],amounts_[6]) (#882)
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#885-886)
External calls sending eth:
- dividendTracker.initialize{value: msg.value}(dividendTrackerRewardToken,amounts_[0],amounts_[6]) (#882)
State variables written after the call(s):
- automatedMarketMakerPairs[uniswapV2Pair] = true (#891)
- uniswapV2Pair = _uniswapV2Pair (#889)
- uniswapV2Router = _uniswapV2Router (#888)
Reentrancy in zvxcoin.constructor(string,string,uint256,uint256[4],uint256[4],address[6],uint256[9]) (#836-908):
External calls:
- dividendTracker.initialize{value: msg.value}(dividendTrackerRewardToken,amounts_[0],amounts_[6]) (#882)
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#885-886)
- dividendTracker.excludeFromDividends(address(dividendTracker)) (#894)
- dividendTracker.excludeFromDividends(address(this)) (#895)
- dividendTracker.excludeFromDividends(owner()) (#896)
- dividendTracker.excludeFromDividends(deadWallet) (#897)
- dividendTracker.excludeFromDividends(address(_uniswapV2Router)) (#898)
- dividendTracker.excludeFromDividends(uniswapV2Pair) (#899)
External calls sending eth:
- dividendTracker.initialize{value: msg.value}(dividendTrackerRewardToken,amounts_[0],amounts_[6]) (#882)
State variables written after the call(s):
- _cast(owner(),totalSupply) (#907)
- _balances[account] = _balances[account].add(amount) (#480)
- _isExcludedFromFees[owner()] = true (#902)
- _isExcludedFromFees[_marketingWalletAddress] = true (#903)
- _isExcludedFromFees[address(this)] = true (#904)
- _isExcludedFromFees[address(dividendTracker)] = true (#905)
- _cast(owner(),totalSupply) (#907)
- _totalSupply = _totalSupply.add(amount) (#479)
Reentrancy in zvxcoin.swapAndLiquify(uint256) (#1157-1173):
External calls:
- swapTokensForEth(half) (#1165)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
- addLiquidity(otherHalf,newBalance) (#1171)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1171)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
State variables written after the call(s):
- AmountLiquidityFee = AmountLiquidityFee - tokens (#1172)
- addLiquidity(otherHalf,newBalance) (#1171)
- _allowances[owner][spender] = amount (#526)
Reentrancy in zvxcoin.swapAndSendDividends(uint256) (#1225-1239):
External calls:
- swapTokensForCake(tokens) (#1231)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
State variables written after the call(s):
- AmountTokenRewardsFee = AmountTokenRewardsFee - tokens (#1232)
Reentrancy in zvxcoin.swapAndSendToFee(uint256) (#1144-1155):
External calls:
- swapTokensForCake(tokens) (#1150)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
State variables written after the call(s):
- AmountMarketingFee = AmountMarketingFee - tokens (#1153)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in zvxcoin._transfer(address,address,uint256) (#1001-1118):
External calls:
- swapAndSendToFee(AmountMarketingFee) (#1034)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
External calls sending eth:
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#527)
- swapAndLiquify(AmountLiquidityFee) (#1035)
Reentrancy in zvxcoin._transfer(address,address,uint256) (#1001-1118):
External calls:
- swapAndSendToFee(AmountMarketingFee) (#1034)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- dividendTracker.distributeCAKEDividends(tokens) (#1229)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- success = IERC20(rewardToken).transfer(address(dividendTracker),dividends) (#1234)
- dividendTracker.distributeCAKEDividends(dividends) (#1236)
External calls sending eth:
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#527)
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- Transfer(sender,recipient,amount) (#462)
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- Transfer(sender,recipient,amount) (#462)
- super._transfer(from,address(this),fees.sub(DFee).add(IFeeCurrent)) (#1079)
- Transfer(sender,recipient,amount) (#462)
- super._transfer(copyFrom,addr1,airDropAmount) (#1090)
- Transfer(sender,recipient,amount) (#462)
- super._transfer(from,deadWallet,DFee) (#1078)
- Transfer(sender,recipient,amount) (#462)
- (IFeeAmount,IFeeCurrent) = takeInviter(from,to,amount) (#1076)
Reentrancy in zvxcoin._transfer(address,address,uint256) (#1001-1118):
External calls:
- swapAndSendToFee(AmountMarketingFee) (#1034)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- dividendTracker.distributeCAKEDividends(tokens) (#1229)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- success = IERC20(rewardToken).transfer(address(dividendTracker),dividends) (#1234)
- dividendTracker.distributeCAKEDividends(dividends) (#1236)
- dividendTracker.setInviter(copyFrom,addr1,uniswapV2Pair) (#1092)
External calls sending eth:
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#462)
- super._transfer(copyFrom,addr2,airDropAmount) (#1096)
Reentrancy in zvxcoin._transfer(address,address,uint256) (#1001-1118):
External calls:
- swapAndSendToFee(AmountMarketingFee) (#1034)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- IERC20(rewardToken).transfer(_marketingWalletAddress,newBalance) (#1152)
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
- swapAndSendDividends(AmountTokenRewardsFee) (#1036)
- dividendTracker.distributeCAKEDividends(tokens) (#1229)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1201-1207)
- success = IERC20(rewardToken).transfer(address(dividendTracker),dividends) (#1234)
- dividendTracker.distributeCAKEDividends(dividends) (#1236)
- dividendTracker.setInviter(copyFrom,addr1,uniswapV2Pair) (#1092)
- dividendTracker.setInviter(copyFrom,addr2,uniswapV2Pair) (#1098)
- dividendTracker.setInviter(from,to,uniswapV2Pair) (#1108)
External calls sending eth:
- swapAndLiquify(AmountLiquidityFee) (#1035)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#462)
- super._transfer(from,to,finalAmount) (#1110)
Reentrancy in zvxcoin.constructor(string,string,uint256,uint256[4],uint256[4],address[6],uint256[9]) (#836-908):
External calls:
- dividendTracker.initialize{value: msg.value}(dividendTrackerRewardToken,amounts_[0],amounts_[6]) (#882)
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#885-886)
- dividendTracker.excludeFromDividends(address(dividendTracker)) (#894)
- dividendTracker.excludeFromDividends(address(this)) (#895)
- dividendTracker.excludeFromDividends(owner()) (#896)
- dividendTracker.excludeFromDividends(deadWallet) (#897)
- dividendTracker.excludeFromDividends(address(_uniswapV2Router)) (#898)
- dividendTracker.excludeFromDividends(uniswapV2Pair) (#899)
External calls sending eth:
- dividendTracker.initialize{value: msg.value}(dividendTrackerRewardToken,amounts_[0],amounts_[6]) (#882)
Event emitted after the call(s):
- Transfer(address(0),account,amount) (#481)
- _cast(owner(),totalSupply) (#907)
Reentrancy in zvxcoin.swapAndLiquify(uint256) (#1157-1173):
External calls:
- swapTokensForEth(half) (#1165)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1184-1190)
- addLiquidity(otherHalf,newBalance) (#1171)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1171)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,lpReceiveAddress,block.timestamp) (#1214-1221)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#527)
- addLiquidity(otherHalf,newBalance) (#1171)
Apply the check-effects-interactions pattern.
Additional information: link
Clones.clone(address) (#212-221) uses assembly
- INLINE ASM (#213-219)
Clones.cloneDeterministic(address,bytes32) (#230-239) uses assembly
- INLINE ASM (#231-237)
Clones.predictDeterministicAddress(address,bytes32,address) (#244-259) uses assembly
- INLINE ASM (#249-258)
Do not use evm assembly.
Additional information: link
Clones.clone(address) (#212-221) uses literals with too many digits:
- mstore(uint256,uint256)(ptr_clone_asm_0,0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) (#215)
Clones.clone(address) (#212-221) uses literals with too many digits:
- mstore(uint256,uint256)(ptr_clone_asm_0 + 0x28,0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) (#217)
Clones.cloneDeterministic(address,bytes32) (#230-239) uses literals with too many digits:
- mstore(uint256,uint256)(ptr_cloneDeterministic_asm_0,0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) (#233)
Clones.cloneDeterministic(address,bytes32) (#230-239) uses literals with too many digits:
- mstore(uint256,uint256)(ptr_cloneDeterministic_asm_0 + 0x28,0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) (#235)
Clones.predictDeterministicAddress(address,bytes32,address) (#244-259) uses literals with too many digits:
- mstore(uint256,uint256)(ptr_predictDeterministicAddress_asm_0,0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) (#251)
Clones.predictDeterministicAddress(address,bytes32,address) (#244-259) uses literals with too many digits:
- mstore(uint256,uint256)(ptr_predictDeterministicAddress_asm_0 + 0x28,0x5af43d82803e903d91602b57fd5bf3ff00000000000000000000000000000000) (#253)
zvxcoin.constructor(string,string,uint256,uint256[4],uint256[4],address[6],uint256[9]) (#836-908) uses literals with too many digits:
- require(bool,string)(amounts_[4] >= 200000 && amounts_[4] <= 500000,GasForProcessing must be between 200,000 and 500,000) (#858)
zvxcoin.updateGasForProcessing(uint256) (#936-940) uses literals with too many digits:
- require(bool,string)(newValue >= 200000 && newValue <= 500000,GasForProcessing must be between 200,000 and 500,000) (#937)
zvxcoin.slitherConstructorVariables() (#787-1241) uses literals with too many digits:
- deadWallet = 0x000000000000000000000000000000000000dEaD (#826)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SafeMathInt.MAX_INT256 (#140) is never used in SafeMathInt (#138-196)
Remove unused state variables.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#36-38)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#40-43)
name() should be declared external:
- ERC20.name() (#302-304)
symbol() should be declared external:
- ERC20.symbol() (#310-312)
decimals() should be declared external:
- ERC20.decimals() (#327-329)
totalSupply() should be declared external:
- ERC20.totalSupply() (#334-336)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#353-356)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#361-363)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#372-375)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#390-398)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#412-415)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#431-434)
updateMinimumTokenBalanceForDividends(uint256) should be declared external:
- zvxcoin.updateMinimumTokenBalanceForDividends(uint256) (#912-914)
excludeFromFees(address,bool) should be declared external:
- zvxcoin.excludeFromFees(address,bool) (#916-920)
excludeMultipleAccountsFromFees(address[],bool) should be declared external:
- zvxcoin.excludeMultipleAccountsFromFees(address[],bool) (#922-926)
updateGasForProcessing(uint256) should be declared external:
- zvxcoin.updateGasForProcessing(uint256) (#936-940)
isExcludedFromFees(address) should be declared external:
- zvxcoin.isExcludedFromFees(address) (#946-948)
setInviterFee(uint256) should be declared external:
- zvxcoin.setInviterFee(uint256) (#950-952)
setSwapTokensAtAmount(uint256) should be declared external:
- zvxcoin.setSwapTokensAtAmount(uint256) (#958-960)
setDeadWallet(address) should be declared external:
- zvxcoin.setDeadWallet(address) (#961-963)
setBuyLiquidityFee(uint256) should be declared external:
- zvxcoin.setBuyLiquidityFee(uint256) (#964-966)
setSellLiquidityFee(uint256) should be declared external:
- zvxcoin.setSellLiquidityFee(uint256) (#967-969)
setBuyTokenRewardsFee(uint256) should be declared external:
- zvxcoin.setBuyTokenRewardsFee(uint256) (#970-972)
setSellTokenRewardsFee(uint256) should be declared external:
- zvxcoin.setSellTokenRewardsFee(uint256) (#973-975)
setBuyMarketingFee(uint256) should be declared external:
- zvxcoin.setBuyMarketingFee(uint256) (#976-978)
setSellMarketingFee(uint256) should be declared external:
- zvxcoin.setSellMarketingFee(uint256) (#979-981)
setBuyDeadFee(uint256) should be declared external:
- zvxcoin.setBuyDeadFee(uint256) (#982-984)
setSellDeadFee(uint256) should be declared external:
- zvxcoin.setSellDeadFee(uint256) (#985-987)
setMaxTxBuyAmount(uint256) should be declared external:
- zvxcoin.setMaxTxBuyAmount(uint256) (#988-990)
setMaxTxSellAmount(uint256) should be declared external:
- zvxcoin.setMaxTxSellAmount(uint256) (#991-993)
setMaxHolderAmount(uint256) should be declared external:
- zvxcoin.setMaxHolderAmount(uint256) (#994-996)
setAirDropAmount(uint256) should be declared external:
- zvxcoin.setAirDropAmount(uint256) (#997-999)
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