Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
MET.swapBack() (#847-910) sends eth to arbitrary user
Dangerous calls:
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in MET._transferFrom(address,address,uint256) (#711-771):
External calls:
- swapBack() (#744)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- swapBack() (#744)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
State variables written after the call(s):
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#749)
- _balances[recipient] = _balances[recipient].add(amountReceived) (#752)
- amountReceived = takeFee(sender,recipient,amount) (#751)
- _balances[account] = _balances[account].sub(amount,BEP20: burn amount exceeds balance) (#1001)
- _balances[DEAD] = _balances[DEAD].add(burnedAmount) (#796)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#803)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#808)
- amountReceived = takeFee(sender,recipient,amount) (#751)
- _totalSupply = _totalSupply.sub(amount) (#1002)
Reentrancy in MET._transferFrom(address,address,uint256) (#711-771):
External calls:
- swapBack() (#744)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- distributor.setShare(sender,_balances[sender]) (#757)
External calls sending eth:
- swapBack() (#744)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
State variables written after the call(s):
- setShare(recipient,_balances[recipient]) (#761)
- buybackShareHolders[shareholderIndexes[shareholder]] = buybackShareHolders[buybackShareHolders.length - 1] (#546)
- buybackShareHolders.push(shareholder) (#542)
- buybackShareHolders.pop() (#548)
- setShare(recipient,_balances[recipient]) (#761)
- buybackShares[shareholder].amount = amount (#572)
- setShare(recipient,_balances[recipient]) (#761)
- currentIndex = 0 (#557)
- currentIndex ++ (#561)
- setShare(recipient,_balances[recipient]) (#761)
- shareholderIndexes[shareholder] = buybackShareHolders.length (#541)
- shareholderIndexes[buybackShareHolders[buybackShareHolders.length - 1]] = shareholderIndexes[shareholder] (#547)
- setShare(recipient,_balances[recipient]) (#761)
- totalShares = 0 (#552)
- iterations < shareholderCount (#555)
- totalShares = totalShares.add(_balances[thisGuy]) (#560)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
- distributor.setRewardToken(REWARD) (#495)
- distributor.setWBNB(WBNB) (#496)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
State variables written after the call(s):
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#774)
- _balances[recipient] = _balances[recipient].add(amount) (#775)
- _balances[account] = _balances[account].sub(amount,BEP20: burn amount exceeds balance) (#1001)
- _balances[DEAD] = _balances[DEAD].add(burnedAmount) (#796)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#803)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#808)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#749)
- _balances[recipient] = _balances[recipient].add(amountReceived) (#752)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- _totalSupply = _totalSupply.sub(amount) (#1002)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- buybackShareHolders[shareholderIndexes[shareholder]] = buybackShareHolders[buybackShareHolders.length - 1] (#546)
- buybackShareHolders.push(shareholder) (#542)
- buybackShareHolders.pop() (#548)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- buybackShares[shareholder].amount = amount (#572)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- cooldownTimer[recipient] = block.number + cooldownTimerInterval (#736)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- currentIndex = 0 (#557)
- currentIndex ++ (#561)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- inSwap = true (#460)
- inSwap = false (#460)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- shareholderIndexes[shareholder] = buybackShareHolders.length (#541)
- shareholderIndexes[buybackShareHolders[buybackShareHolders.length - 1]] = shareholderIndexes[shareholder] (#547)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- totalBurned = totalBurned.add(amount) (#777)
- totalBurned = totalBurned.add(amountReceived) (#768)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- totalShares = 0 (#552)
- iterations < shareholderCount (#555)
- totalShares = totalShares.add(_balances[thisGuy]) (#560)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
- distributor.setRewardToken(REWARD) (#495)
- distributor.setWBNB(WBNB) (#496)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
State variables written after the call(s):
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#774)
- _balances[recipient] = _balances[recipient].add(amount) (#775)
- _balances[account] = _balances[account].sub(amount,BEP20: burn amount exceeds balance) (#1001)
- _balances[DEAD] = _balances[DEAD].add(burnedAmount) (#796)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#803)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#808)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#749)
- _balances[recipient] = _balances[recipient].add(amountReceived) (#752)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- _totalSupply = _totalSupply.sub(amount) (#1002)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- buybackShareHolders[shareholderIndexes[shareholder]] = buybackShareHolders[buybackShareHolders.length - 1] (#546)
- buybackShareHolders.push(shareholder) (#542)
- buybackShareHolders.pop() (#548)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- buybackShares[shareholder].amount = amount (#572)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- cooldownTimer[recipient] = block.number + cooldownTimerInterval (#736)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- currentIndex = 0 (#557)
- currentIndex ++ (#561)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- inSwap = true (#460)
- inSwap = false (#460)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- shareholderIndexes[shareholder] = buybackShareHolders.length (#541)
- shareholderIndexes[buybackShareHolders[buybackShareHolders.length - 1]] = shareholderIndexes[shareholder] (#547)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- totalBurned = totalBurned.add(amount) (#777)
- totalBurned = totalBurned.add(amountReceived) (#768)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- totalShares = 0 (#552)
- iterations < shareholderCount (#555)
- totalShares = totalShares.add(_balances[thisGuy]) (#560)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
- distributor.setRewardToken(REWARD) (#495)
- distributor.setWBNB(WBNB) (#496)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
State variables written after the call(s):
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#774)
- _balances[recipient] = _balances[recipient].add(amount) (#775)
- _balances[account] = _balances[account].sub(amount,BEP20: burn amount exceeds balance) (#1001)
- _balances[DEAD] = _balances[DEAD].add(burnedAmount) (#796)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#803)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#808)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#749)
- _balances[recipient] = _balances[recipient].add(amountReceived) (#752)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- _totalSupply = _totalSupply.sub(amount) (#1002)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- buybackShareHolders[shareholderIndexes[shareholder]] = buybackShareHolders[buybackShareHolders.length - 1] (#546)
- buybackShareHolders.push(shareholder) (#542)
- buybackShareHolders.pop() (#548)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- buybackShares[shareholder].amount = amount (#572)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- cooldownTimer[recipient] = block.number + cooldownTimerInterval (#736)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- currentIndex = 0 (#557)
- currentIndex ++ (#561)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- inSwap = true (#460)
- inSwap = false (#460)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- shareholderIndexes[shareholder] = buybackShareHolders.length (#541)
- shareholderIndexes[buybackShareHolders[buybackShareHolders.length - 1]] = shareholderIndexes[shareholder] (#547)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- totalBurned = totalBurned.add(amount) (#777)
- totalBurned = totalBurned.add(amountReceived) (#768)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- totalShares = 0 (#552)
- iterations < shareholderCount (#555)
- totalShares = totalShares.add(_balances[thisGuy]) (#560)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
- distributor.setRewardToken(REWARD) (#495)
- distributor.setWBNB(WBNB) (#496)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
State variables written after the call(s):
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#774)
- _balances[recipient] = _balances[recipient].add(amount) (#775)
- _balances[account] = _balances[account].sub(amount,BEP20: burn amount exceeds balance) (#1001)
- _balances[DEAD] = _balances[DEAD].add(burnedAmount) (#796)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#803)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#808)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#749)
- _balances[recipient] = _balances[recipient].add(amountReceived) (#752)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- _totalSupply = _totalSupply.sub(amount) (#1002)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- buybackShareHolders[shareholderIndexes[shareholder]] = buybackShareHolders[buybackShareHolders.length - 1] (#546)
- buybackShareHolders.push(shareholder) (#542)
- buybackShareHolders.pop() (#548)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- buybackShares[shareholder].amount = amount (#572)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- cooldownTimer[recipient] = block.number + cooldownTimerInterval (#736)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- currentIndex = 0 (#557)
- currentIndex ++ (#561)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- inSwap = true (#460)
- inSwap = false (#460)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- shareholderIndexes[shareholder] = buybackShareHolders.length (#541)
- shareholderIndexes[buybackShareHolders[buybackShareHolders.length - 1]] = shareholderIndexes[shareholder] (#547)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- totalBurned = totalBurned.add(amount) (#777)
- totalBurned = totalBurned.add(amountReceived) (#768)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- totalShares = 0 (#552)
- iterations < shareholderCount (#555)
- totalShares = totalShares.add(_balances[thisGuy]) (#560)
Reentrancy in MET.externalBuyBack(uint256) (#593-662):
External calls:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
- buyBackNow(amountBNBToLiquify) (#624)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
State variables written after the call(s):
- _balances[marketingFeeReceiver] = tokenBalanceNow.sub(tokensToDistribute) (#629)
- _balances[address(this)] = tokenBalanceBefore.add(tokensToDistribute) (#631)
Reentrancy in MET.externalBuyBack(uint256) (#593-662):
External calls:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
- buyBackNow(amountBNBToLiquify) (#624)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
- buyBackNow(amountBNBToLiquify) (#624)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
State variables written after the call(s):
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#774)
- _balances[recipient] = _balances[recipient].add(amount) (#775)
- _balances[account] = _balances[account].sub(amount,BEP20: burn amount exceeds balance) (#1001)
- _balances[DEAD] = _balances[DEAD].add(burnedAmount) (#796)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#803)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#808)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#749)
- _balances[recipient] = _balances[recipient].add(amountReceived) (#752)
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
- buybackShareHolders[shareholderIndexes[shareholder]] = buybackShareHolders[buybackShareHolders.length - 1] (#546)
- buybackShareHolders.push(shareholder) (#542)
- buybackShareHolders.pop() (#548)
- buybackShares[thisGuy].totalRealised = buybackShares[thisGuy].totalRealised.add(tokensForThisGuy) (#649)
- currentIndex ++ (#650)
Reentrancy in MET.externalBuyBack(uint256) (#593-662):
External calls:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
- buyBackNow(amountBNBToLiquify) (#624)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
- buyBackNow(amountBNBToLiquify) (#624)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
State variables written after the call(s):
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#774)
- _balances[recipient] = _balances[recipient].add(amount) (#775)
- _balances[account] = _balances[account].sub(amount,BEP20: burn amount exceeds balance) (#1001)
- _balances[DEAD] = _balances[DEAD].add(burnedAmount) (#796)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#803)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#808)
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#749)
- _balances[recipient] = _balances[recipient].add(amountReceived) (#752)
- _burn(DEAD,tokensToDistribute) (#655)
- _balances[account] = _balances[account].sub(amount,BEP20: burn amount exceeds balance) (#1001)
- _burn(DEAD,tokensToDistribute) (#655)
- _totalSupply = _totalSupply.sub(amount) (#1002)
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
- buybackShareHolders[shareholderIndexes[shareholder]] = buybackShareHolders[buybackShareHolders.length - 1] (#546)
- buybackShareHolders.push(shareholder) (#542)
- buybackShareHolders.pop() (#548)
- setShare(marketingFeeReceiver,_balances[MKT]) (#659)
- buybackShareHolders[shareholderIndexes[shareholder]] = buybackShareHolders[buybackShareHolders.length - 1] (#546)
- buybackShareHolders.push(shareholder) (#542)
- buybackShareHolders.pop() (#548)
- setShare(marketingFeeReceiver,_balances[MKT]) (#659)
- buybackShares[shareholder].amount = amount (#572)
- setShare(marketingFeeReceiver,_balances[MKT]) (#659)
- currentIndex = 0 (#557)
- currentIndex ++ (#561)
- setShare(marketingFeeReceiver,_balances[MKT]) (#659)
- shareholderIndexes[shareholder] = buybackShareHolders.length (#541)
- shareholderIndexes[buybackShareHolders[buybackShareHolders.length - 1]] = shareholderIndexes[shareholder] (#547)
- setShare(marketingFeeReceiver,_balances[MKT]) (#659)
- totalShares = 0 (#552)
- iterations < shareholderCount (#555)
- totalShares = totalShares.add(_balances[thisGuy]) (#560)
Apply the check-effects-interactions pattern.
Additional information: link
DividendDistributor.clearStuckDividends(address) (#261-264) ignores return value by REWARD.transfer(_address,balance) (#263)
DividendDistributor.distributeDividend(address) (#325-336) ignores return value by REWARD.transfer(shareholder,amount) (#331)
MET.recoverWrongTokens(address,uint256) (#828-832) ignores return value by IBEP20(_tokenAddress).transfer(address(msg.sender),_tokenAmount) (#830)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Too many vulnerabilities (Unchecked transfer, Reentrancy vulnerability, etc.). High risk of a scam. DYOR & manual audit are advised.
Contract ownership is not renounced (belongs to a wallet)
MET.swapBack().tmpSuccess (#876) is written in both
(tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
tmpSuccess = false (#877)
Fix or remove the writes.
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.
MET.externalBuyBack(uint256) (#593-662) performs a multiplication on the result of a division:
-amountBNBToLiquify = amountBNB.mul(amountPercentage).div(100) (#602)
-amountBNBLiquidity = amountBNBToLiquify.mul(1).div(100).div(2) (#608)
MET.externalBuyBack(uint256) (#593-662) performs a multiplication on the result of a division:
-amountBNBLiquidity = amountBNBToLiquify.mul(1).div(100).div(2) (#608)
-amountBNBToLiquify = amountBNBToLiquify.sub(amountBNBLiquidity.mul(2)) (#609)
Consider ordering multiplication before division.
Additional information: link
Reentrancy in DividendDistributor.distributeDividend(address) (#325-336):
External calls:
- REWARD.transfer(shareholder,amount) (#331)
State variables written after the call(s):
- shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount) (#333)
- shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount) (#334)
Reentrancy in DividendDistributor.process(uint256) (#294-318):
External calls:
- distributeDividend(shareholders[currentIndex]) (#310)
- REWARD.transfer(shareholder,amount) (#331)
State variables written after the call(s):
- currentIndex ++ (#315)
Reentrancy in DividendDistributor.setShare(address,uint256) (#245-259):
External calls:
- distributeDividend(shareholder) (#247)
- REWARD.transfer(shareholder,amount) (#331)
State variables written after the call(s):
- shares[shareholder].amount = amount (#257)
- shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount) (#258)
Apply the check-effects-interactions pattern.
Additional information: link
MET.externalBuyBack(uint256) (#593-662) ignores return value by router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
MET.swapBack() (#847-910) ignores return value by router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
Ensure that all the return values of the function calls are used.
Additional information: link
DividendDistributor.setDistributionCriteria(uint256,uint256) (#240-243) should emit an event for:
- minPeriod = _minPeriod (#241)
- minDistribution = _minDistribution (#242)
MET.setTxLimit(uint256) (#912-914) should emit an event for:
- _maxTxAmount = amount (#913)
MET.setTransferTaxRate(uint256) (#940-943) should emit an event for:
- transferTaxRate = _transferTaxRate (#941)
MET.setFeeDistribution(uint256,uint256,uint256,uint256,uint256,uint256) (#944-953) should emit an event for:
- liquidityFee = _liquidityFee (#945)
- reflectionFee = _reflectionFee (#946)
- marketingFee = _marketingFee (#947)
- burnFee = _burnFee (#948)
- projectFee = _projectFee (#949)
- devFee = _devFee (#950)
- totalFee = _liquidityFee.add(_reflectionFee).add(_marketingFee).add(_burnFee).add(_projectFee).add(_devFee) (#951)
MET.setTargetLiquidity(uint256,uint256) (#967-970) should emit an event for:
- targetLiquidity = _target (#968)
- targetLiquidityDenominator = _denominator (#969)
Emit an event for critical parameter changes.
Additional information: link
DividendDistributor.setWBNB(address)._address (#270) lacks a zero-check on :
- WBNB = _address (#271)
Auth.transferOwnership(address).adr (#120) lacks a zero-check on :
- owner = adr (#121)
MET.setFeeReceivers(address,address,address,address)._autoLiquidityReceiver (#955) lacks a zero-check on :
- autoLiquidityReceiver = _autoLiquidityReceiver (#956)
MET.setFeeReceivers(address,address,address,address)._marketingFeeReceiver (#955) lacks a zero-check on :
- marketingFeeReceiver = _marketingFeeReceiver (#957)
MET.setFeeReceivers(address,address,address,address)._projectFeeReceiver (#955) lacks a zero-check on :
- projectFeeReceiver = _projectFeeReceiver (#958)
MET.setFeeReceivers(address,address,address,address)._devFeeReceiver (#955) lacks a zero-check on :
- devFeeReceiver = _devFeeReceiver (#959)
Check that the address is not zero.
Additional information: link
DividendDistributor.distributeDividend(address) (#325-336) has external calls inside a loop: REWARD.transfer(shareholder,amount) (#331)
MET.swapBack() (#847-910) has external calls inside a loop: router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
MET.swapBack() (#847-910) has external calls inside a loop: (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
MET.swapBack() (#847-910) has external calls inside a loop: router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
MET.swapBack() (#847-910) has external calls inside a loop: distributor.deposit{value: amountBNBReflection}() (#873)
MET.swapBack() (#847-910) has external calls inside a loop: (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
MET.swapBack() (#847-910) has external calls inside a loop: (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
MET.swapBack() (#847-910) has external calls inside a loop: (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
MET.swapBack() (#847-910) has external calls inside a loop: router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
MET._transferFrom(address,address,uint256) (#711-771) has external calls inside a loop: distributor.setShare(sender,_balances[sender]) (#757)
MET._transferFrom(address,address,uint256) (#711-771) has external calls inside a loop: distributor.setShare(recipient,_balances[recipient]) (#762)
MET._transferFrom(address,address,uint256) (#711-771) has external calls inside a loop: distributor.process(distributorGas) (#765)
MET.airdrop(address,address[],uint256[]) (#1008-1031) has external calls inside a loop: distributor.setShare(addresses[i_scope_0],_balances[addresses[i_scope_0]]) (#1022)
Favor pull over push strategy for external calls.
Additional information: link
Variable 'MET.swapBack().tmpSuccess (#876)' in MET.swapBack() (#847-910) potentially used before declaration: (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Variable 'MET.swapBack().tmpSuccess (#876)' in MET.swapBack() (#847-910) potentially used before declaration: (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
Variable 'MET.swapBack().tmpSuccess (#876)' in MET.swapBack() (#847-910) potentially used before declaration: (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
Move all variable declarations prior to any usage of the variable, and ensure that reaching a variable declaration does not depend on some conditional if it is used unconditionally.
Additional information: link
Reentrancy in MET._transferFrom(address,address,uint256) (#711-771):
External calls:
- swapBack() (#744)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- swapBack() (#744)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
State variables written after the call(s):
- setShare(sender,_balances[sender]) (#756)
- buybackShareHolders[shareholderIndexes[shareholder]] = buybackShareHolders[buybackShareHolders.length - 1] (#546)
- buybackShareHolders.push(shareholder) (#542)
- buybackShareHolders.pop() (#548)
- setShare(sender,_balances[sender]) (#756)
- buybackShares[shareholder].amount = amount (#572)
- setShare(sender,_balances[sender]) (#756)
- currentIndex = 0 (#557)
- currentIndex ++ (#561)
- setShare(sender,_balances[sender]) (#756)
- shareholderIndexes[shareholder] = buybackShareHolders.length (#541)
- shareholderIndexes[buybackShareHolders[buybackShareHolders.length - 1]] = shareholderIndexes[shareholder] (#547)
- setShare(sender,_balances[sender]) (#756)
- totalShares = 0 (#552)
- iterations < shareholderCount (#555)
- totalShares = totalShares.add(_balances[thisGuy]) (#560)
Reentrancy in MET._transferFrom(address,address,uint256) (#711-771):
External calls:
- swapBack() (#744)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- distributor.setShare(sender,_balances[sender]) (#757)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- distributor.process(distributorGas) (#765)
External calls sending eth:
- swapBack() (#744)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
State variables written after the call(s):
- totalBurned = totalBurned.add(amountReceived) (#768)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
State variables written after the call(s):
- _allowances[address(this)][address(router)] = uint256(- 1) (#466)
- distributor = new DividendDistributor(address(router)) (#468)
- isFeeExempt[msg.sender] = true (#470)
- isFeeExempt[owner] = true (#471)
- isFeeExempt[DEAD] = true (#472)
- isFeeExempt[MKT] = true (#473)
- isFeeExempt[PROJECT] = true (#474)
- isFeeExempt[DEV] = true (#475)
- isFeeExempt[AIRDROPS] = true (#476)
- isTimelockExempt[msg.sender] = true (#486)
- isTimelockExempt[DEAD] = true (#487)
- isTimelockExempt[address(this)] = true (#488)
- isTxLimitExempt[owner] = true (#478)
- isTxLimitExempt[DEAD] = true (#479)
- isTxLimitExempt[PROJECT] = true (#480)
- isTxLimitExempt[MKT] = true (#481)
- isTxLimitExempt[DEV] = true (#482)
- isTxLimitExempt[AIRDROPS] = true (#483)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
- distributor.setRewardToken(REWARD) (#495)
- distributor.setWBNB(WBNB) (#496)
State variables written after the call(s):
- _balances[msg.sender] = _totalSupply (#504)
- isDividendExempt[pair] = true (#508)
- isDividendExempt[CA] = true (#509)
- isDividendExempt[DEAD] = true (#510)
- totalShares = getCirculatingSupply() (#512)
Reentrancy in DividendDistributor.deposit() (#274-292):
External calls:
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(0,path,address(this),block.timestamp) (#281-286)
State variables written after the call(s):
- dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)) (#291)
- totalDividends = totalDividends.add(amount) (#290)
Reentrancy in DividendDistributor.distributeDividend(address) (#325-336):
External calls:
- REWARD.transfer(shareholder,amount) (#331)
State variables written after the call(s):
- shareholderClaims[shareholder] = block.timestamp (#332)
Reentrancy in MET.externalBuyBack(uint256) (#593-662):
External calls:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
- buyBackNow(amountBNBToLiquify) (#624)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
State variables written after the call(s):
- currentIndex = 0 (#643)
- buyBackNow(amountBNBToLiquify) (#624)
- inSwap = true (#460)
- inSwap = false (#460)
Reentrancy in MET.setIsDividendExempt(address,bool) (#916-926):
External calls:
- distributor.setShare(holder,0) (#920)
State variables written after the call(s):
- setShare(holder,0) (#921)
- buybackShareHolders[shareholderIndexes[shareholder]] = buybackShareHolders[buybackShareHolders.length - 1] (#546)
- buybackShareHolders.push(shareholder) (#542)
- buybackShareHolders.pop() (#548)
- setShare(holder,0) (#921)
- buybackShares[shareholder].amount = amount (#572)
- setShare(holder,0) (#921)
- currentIndex = 0 (#557)
- currentIndex ++ (#561)
- setShare(holder,0) (#921)
- shareholderIndexes[shareholder] = buybackShareHolders.length (#541)
- shareholderIndexes[buybackShareHolders[buybackShareHolders.length - 1]] = shareholderIndexes[shareholder] (#547)
- setShare(holder,0) (#921)
- totalShares = 0 (#552)
- iterations < shareholderCount (#555)
- totalShares = totalShares.add(_balances[thisGuy]) (#560)
Reentrancy in MET.setIsDividendExempt(address,bool) (#916-926):
External calls:
- distributor.setShare(holder,_balances[holder]) (#923)
State variables written after the call(s):
- setShare(holder,_balances[holder]) (#924)
- buybackShareHolders[shareholderIndexes[shareholder]] = buybackShareHolders[buybackShareHolders.length - 1] (#546)
- buybackShareHolders.push(shareholder) (#542)
- buybackShareHolders.pop() (#548)
- setShare(holder,_balances[holder]) (#924)
- buybackShares[shareholder].amount = amount (#572)
- setShare(holder,_balances[holder]) (#924)
- currentIndex = 0 (#557)
- currentIndex ++ (#561)
- setShare(holder,_balances[holder]) (#924)
- shareholderIndexes[shareholder] = buybackShareHolders.length (#541)
- shareholderIndexes[buybackShareHolders[buybackShareHolders.length - 1]] = shareholderIndexes[shareholder] (#547)
- setShare(holder,_balances[holder]) (#924)
- totalShares = 0 (#552)
- iterations < shareholderCount (#555)
- totalShares = totalShares.add(_balances[thisGuy]) (#560)
Reentrancy in DividendDistributor.setShare(address,uint256) (#245-259):
External calls:
- distributeDividend(shareholder) (#247)
- REWARD.transfer(shareholder,amount) (#331)
State variables written after the call(s):
- addShareholder(shareholder) (#251)
- shareholderIndexes[shareholder] = shareholders.length (#358)
- removeShareholder(shareholder) (#253)
- shareholderIndexes[shareholders[shareholders.length - 1]] = shareholderIndexes[shareholder] (#364)
- addShareholder(shareholder) (#251)
- shareholders.push(shareholder) (#359)
- removeShareholder(shareholder) (#253)
- shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length - 1] (#363)
- shareholders.pop() (#365)
- totalShares = totalShares.sub(shares[shareholder].amount).add(amount) (#256)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in MET._transferFrom(address,address,uint256) (#711-771):
External calls:
- swapBack() (#744)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- distributor.setShare(sender,_balances[sender]) (#757)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- distributor.process(distributorGas) (#765)
External calls sending eth:
- swapBack() (#744)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Event emitted after the call(s):
- Transfer(sender,recipient,amountReceived) (#767)
Reentrancy in MET._transferFrom(address,address,uint256) (#711-771):
External calls:
- swapBack() (#744)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- swapBack() (#744)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Event emitted after the call(s):
- Transfer(account,address(0),amount) (#1003)
- amountReceived = takeFee(sender,recipient,amount) (#751)
- Transfer(sender,address(this),feeAmount) (#804)
- amountReceived = takeFee(sender,recipient,amount) (#751)
- Transfer(sender,address(this),feeAmount) (#809)
- amountReceived = takeFee(sender,recipient,amount) (#751)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
- distributor.setRewardToken(REWARD) (#495)
- distributor.setWBNB(WBNB) (#496)
Event emitted after the call(s):
- Transfer(ZERO,msg.sender,_totalSupply) (#506)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
- distributor.setRewardToken(REWARD) (#495)
- distributor.setWBNB(WBNB) (#496)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Event emitted after the call(s):
- AutoLiquify(amountBNBLiquidity,amountToLiquify) (#896)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- Transfer(sender,recipient,amount) (#776)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- Transfer(account,address(0),amount) (#1003)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- Transfer(sender,address(this),feeAmount) (#804)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- Transfer(sender,address(this),feeAmount) (#809)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- Transfer(sender,recipient,amountReceived) (#767)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
- distributor.setRewardToken(REWARD) (#495)
- distributor.setWBNB(WBNB) (#496)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Event emitted after the call(s):
- AutoLiquify(amountBNBLiquidity,amountToLiquify) (#896)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- Transfer(sender,recipient,amount) (#776)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- Transfer(account,address(0),amount) (#1003)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- Transfer(sender,address(this),feeAmount) (#804)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- Transfer(sender,address(this),feeAmount) (#809)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- Transfer(sender,recipient,amountReceived) (#767)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
- distributor.setRewardToken(REWARD) (#495)
- distributor.setWBNB(WBNB) (#496)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Event emitted after the call(s):
- AutoLiquify(amountBNBLiquidity,amountToLiquify) (#896)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- Transfer(sender,recipient,amount) (#776)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- Transfer(account,address(0),amount) (#1003)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- Transfer(sender,address(this),feeAmount) (#804)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- Transfer(sender,address(this),feeAmount) (#809)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- Transfer(sender,recipient,amountReceived) (#767)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
- distributor.setRewardToken(REWARD) (#495)
- distributor.setWBNB(WBNB) (#496)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Event emitted after the call(s):
- AutoLiquify(amountBNBLiquidity,amountToLiquify) (#896)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- Transfer(sender,recipient,amount) (#776)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- Transfer(account,address(0),amount) (#1003)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- Transfer(sender,address(this),feeAmount) (#804)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- Transfer(sender,address(this),feeAmount) (#809)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- Transfer(sender,recipient,amountReceived) (#767)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
Reentrancy in MET.constructor() (#462-518):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#465)
- distributor.setRewardToken(REWARD) (#495)
- distributor.setWBNB(WBNB) (#496)
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- _transferFrom(msg.sender,PROJECT,projectSupply) (#513)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,MKT,marketingSupply) (#514)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEV,devSupply) (#515)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,AIRDROPS,airdropSupply) (#516)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Event emitted after the call(s):
- AutoLiquify(amountBNBLiquidity,amountToLiquify) (#896)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- Transfer(sender,recipient,amount) (#776)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- Transfer(account,address(0),amount) (#1003)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- Transfer(sender,address(this),feeAmount) (#804)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- Transfer(sender,address(this),feeAmount) (#809)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
- Transfer(sender,recipient,amountReceived) (#767)
- _transferFrom(msg.sender,DEAD,deadSupply) (#517)
Reentrancy in MET.externalBuyBack(uint256) (#593-662):
External calls:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
Event emitted after the call(s):
- AutoLiquify(amountBNBLiquidity,tokensforLiquidity) (#621)
Reentrancy in MET.externalBuyBack(uint256) (#593-662):
External calls:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
- buyBackNow(amountBNBToLiquify) (#624)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
Event emitted after the call(s):
- Transfer(marketingFeeReceiver,address(this),tokensToDistribute) (#632)
Reentrancy in MET.externalBuyBack(uint256) (#593-662):
External calls:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
- buyBackNow(amountBNBToLiquify) (#624)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
- buyBackNow(amountBNBToLiquify) (#624)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Event emitted after the call(s):
- AutoLiquify(amountBNBLiquidity,amountToLiquify) (#896)
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
- Transfer(sender,recipient,amount) (#776)
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
- Transfer(account,address(0),amount) (#1003)
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
- Transfer(sender,address(this),feeAmount) (#804)
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
- Transfer(sender,address(this),feeAmount) (#809)
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
- Transfer(sender,recipient,amountReceived) (#767)
- _transferFrom(address(this),thisGuy,tokensForThisGuy) (#648)
Reentrancy in MET.externalBuyBack(uint256) (#593-662):
External calls:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
- buyBackNow(amountBNBToLiquify) (#624)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- distributor.setShare(sender,_balances[sender]) (#757)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- distributor.setShare(recipient,_balances[recipient]) (#762)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- distributor.process(distributorGas) (#765)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(balanceOf(address(this)),0,path,address(this),block.timestamp) (#899-905)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
External calls sending eth:
- buyBackNow(amountBNBLiquidity) (#610)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),tokensforLiquidity,0,0,autoLiquidityReceiver,block.timestamp) (#613-620)
- buyBackNow(amountBNBToLiquify) (#624)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _amountBNBToLiquify}(0,path,marketingFeeReceiver,block.timestamp) (#580-585)
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Event emitted after the call(s):
- AutoLiquify(amountBNBLiquidity,amountToLiquify) (#896)
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
- Transfer(sender,recipient,amount) (#776)
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
- Transfer(account,address(0),amount) (#1003)
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
- Transfer(account,address(0),amount) (#1003)
- _burn(DEAD,tokensToDistribute) (#655)
- Transfer(sender,address(this),feeAmount) (#804)
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
- Transfer(sender,address(this),feeAmount) (#809)
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
- Transfer(sender,recipient,amountReceived) (#767)
- _transferFrom(address(this),DEAD,tokensToDistribute) (#654)
Reentrancy in MET.recoverWrongTokens(address,uint256) (#828-832):
External calls:
- IBEP20(_tokenAddress).transfer(address(msg.sender),_tokenAmount) (#830)
Event emitted after the call(s):
- AdminTokenRecovery(_tokenAddress,_tokenAmount) (#831)
Reentrancy in MET.swapBack() (#847-910):
External calls:
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#858-864)
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
External calls sending eth:
- distributor.deposit{value: amountBNBReflection}() (#873)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#888-895)
Event emitted after the call(s):
- AutoLiquify(amountBNBLiquidity,amountToLiquify) (#896)
Apply the check-effects-interactions pattern.
Additional information: link
DividendDistributor.shouldDistribute(address) (#320-323) uses timestamp for comparisons
Dangerous comparisons:
- shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution (#321-322)
Avoid relying on block.timestamp.
Additional information: link
DividendDistributor.process(uint256) (#294-318) has costly operations inside a loop:
- currentIndex = 0 (#306)
DividendDistributor.distributeDividend(address) (#325-336) has costly operations inside a loop:
- totalDistributed = totalDistributed.add(amount) (#330)
DividendDistributor.process(uint256) (#294-318) has costly operations inside a loop:
- currentIndex ++ (#315)
MET.externalBuyBack(uint256) (#593-662) has costly operations inside a loop:
- currentIndex = 0 (#643)
MET._basicTransfer(address,address,uint256) (#773-779) has costly operations inside a loop:
- totalBurned = totalBurned.add(amount) (#777)
MET.swapping() (#460) has costly operations inside a loop:
- inSwap = true (#460)
MET.swapping() (#460) has costly operations inside a loop:
- inSwap = false (#460)
MET._burn(address,uint256) (#999-1004) has costly operations inside a loop:
- _totalSupply = _totalSupply.sub(amount) (#1002)
MET.resetTotalShares() (#551-564) has costly operations inside a loop:
- totalShares = 0 (#552)
MET.resetTotalShares() (#551-564) has costly operations inside a loop:
- currentIndex = 0 (#557)
MET.resetTotalShares() (#551-564) has costly operations inside a loop:
- totalShares = totalShares.add(_balances[thisGuy]) (#560)
MET.resetTotalShares() (#551-564) has costly operations inside a loop:
- currentIndex ++ (#561)
MET.removeShareholder(address) (#545-549) has costly operations inside a loop:
- buybackShareHolders.pop() (#548)
MET._transferFrom(address,address,uint256) (#711-771) has costly operations inside a loop:
- totalBurned = totalBurned.add(amountReceived) (#768)
MET.externalBuyBack(uint256) (#593-662) has costly operations inside a loop:
- currentIndex ++ (#650)
Use a local variable to hold the loop computation result.
Additional information: link
MET._maxTxAmount (#393) is set pre-construction with a non-constant function or state variable:
- (_totalSupply * 100) / 100
MET._maxWalletToken (#396) is set pre-construction with a non-constant function or state variable:
- (_totalSupply * 100) / 100
MET.totalFee (#425) is set pre-construction with a non-constant function or state variable:
- liquidityFee.add(reflectionFee).add(marketingFee).add(burnFee).add(projectFee).add(devFee)
MET.autoLiquidityReceiver (#428) is set pre-construction with a non-constant function or state variable:
- MKT
MET.marketingFeeReceiver (#429) is set pre-construction with a non-constant function or state variable:
- MKT
MET.projectFeeReceiver (#430) is set pre-construction with a non-constant function or state variable:
- PROJECT
MET.devFeeReceiver (#431) is set pre-construction with a non-constant function or state variable:
- DEV
MET.totalShares (#437) is set pre-construction with a non-constant function or state variable:
- _totalSupply
MET.swapThreshold (#458) is set pre-construction with a non-constant function or state variable:
- _totalSupply * 10 / 10000
Remove any initialization of state variables via non-constant state variables or function calls. If variables must be set upon contract deployment, locate initialization in the constructor instead.
Additional information: link
Pragma version^0.7.4 (#3) 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
Low level call in MET.swapBack() (#847-910):
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#876)
- (tmpSuccess) = address(projectFeeReceiver).call{gas: 30000,value: amountBNBProject}() (#880)
- (tmpSuccess) = address(devFeeReceiver).call{gas: 30000,value: amountBNBDev}() (#884)
- (tmpSuccess) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNB}() (#907)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IDEXRouter.WETH() (#135) is not in mixedCase
Parameter DividendDistributor.setDistributionCriteria(uint256,uint256)._minPeriod (#240) is not in mixedCase
Parameter DividendDistributor.setDistributionCriteria(uint256,uint256)._minDistribution (#240) is not in mixedCase
Parameter DividendDistributor.clearStuckDividends(address)._address (#261) is not in mixedCase
Parameter DividendDistributor.setRewardToken(address)._address (#266) is not in mixedCase
Parameter DividendDistributor.setWBNB(address)._address (#270) is not in mixedCase
Variable DividendDistributor._token (#191) is not in mixedCase
Variable DividendDistributor.REWARD (#199) is not in mixedCase
Variable DividendDistributor.WBNB (#200) is not in mixedCase
Struct MET.buybackShare (#409-412) is not in CapWords
Parameter MET.buyBackNow(uint256)._amountBNBToLiquify (#576) is not in mixedCase
Parameter MET.setShouldDistributeBuyback(bool)._shouldDistribute (#588) is not in mixedCase
Parameter MET.setRewardToken(address)._rewardTokenAddress (#700) is not in mixedCase
Parameter MET.clearStuckBalance(uint256,address)._walletAddress (#822) is not in mixedCase
Parameter MET.recoverWrongTokens(address,uint256)._tokenAddress (#828) is not in mixedCase
Parameter MET.recoverWrongTokens(address,uint256)._tokenAmount (#828) is not in mixedCase
Parameter MET.tradingStatus(bool)._status (#837) is not in mixedCase
Parameter MET.cooldownEnabled(bool,uint8)._status (#842) is not in mixedCase
Parameter MET.cooldownEnabled(bool,uint8)._interval (#842) is not in mixedCase
Parameter MET.setTransferTaxRate(uint256)._transferTaxRate (#940) is not in mixedCase
Parameter MET.setFeeDistribution(uint256,uint256,uint256,uint256,uint256,uint256)._liquidityFee (#944) is not in mixedCase
Parameter MET.setFeeDistribution(uint256,uint256,uint256,uint256,uint256,uint256)._reflectionFee (#944) is not in mixedCase
Parameter MET.setFeeDistribution(uint256,uint256,uint256,uint256,uint256,uint256)._marketingFee (#944) is not in mixedCase
Parameter MET.setFeeDistribution(uint256,uint256,uint256,uint256,uint256,uint256)._burnFee (#944) is not in mixedCase
Parameter MET.setFeeDistribution(uint256,uint256,uint256,uint256,uint256,uint256)._projectFee (#944) is not in mixedCase
Parameter MET.setFeeDistribution(uint256,uint256,uint256,uint256,uint256,uint256)._devFee (#944) is not in mixedCase
Parameter MET.setFeeReceivers(address,address,address,address)._autoLiquidityReceiver (#955) is not in mixedCase
Parameter MET.setFeeReceivers(address,address,address,address)._marketingFeeReceiver (#955) is not in mixedCase
Parameter MET.setFeeReceivers(address,address,address,address)._projectFeeReceiver (#955) is not in mixedCase
Parameter MET.setFeeReceivers(address,address,address,address)._devFeeReceiver (#955) is not in mixedCase
Parameter MET.setSwapBackSettings(bool,uint256)._enabled (#962) is not in mixedCase
Parameter MET.setSwapBackSettings(bool,uint256)._amount (#962) is not in mixedCase
Parameter MET.setTargetLiquidity(uint256,uint256)._target (#967) is not in mixedCase
Parameter MET.setTargetLiquidity(uint256,uint256)._denominator (#967) is not in mixedCase
Parameter MET.setDistributionCriteria(uint256,uint256)._minPeriod (#972) is not in mixedCase
Parameter MET.setDistributionCriteria(uint256,uint256)._minDistribution (#972) is not in mixedCase
Variable MET.REWARD (#376) is not in mixedCase
Variable MET.WBNB (#377) is not in mixedCase
Variable MET.DEAD (#378) is not in mixedCase
Variable MET.ZERO (#379) is not in mixedCase
Variable MET.PROJECT (#381) is not in mixedCase
Variable MET.MKT (#382) is not in mixedCase
Variable MET.DEV (#383) is not in mixedCase
Variable MET.AIRDROPS (#384) is not in mixedCase
Variable MET.CA (#385) is not in mixedCase
Constant MET._name (#386) is not in UPPER_CASE_WITH_UNDERSCORES
Constant MET._symbol (#387) is not in UPPER_CASE_WITH_UNDERSCORES
Constant MET._decimals (#388) is not in UPPER_CASE_WITH_UNDERSCORES
Variable MET._totalSupply (#390) is not in mixedCase
Variable MET._maxTxAmount (#393) is not in mixedCase
Variable MET._maxWalletToken (#396) is not in mixedCase
Variable MET._balances (#398) is not in mixedCase
Variable MET._allowances (#399) is not in mixedCase
Variable MET._isBlacklisted (#400) is not in mixedCase
Variable MET.MAXIMUM_TAX_RATE (#416) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable IDEXRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#140) is too similar to IDEXRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#141)
Variable MET.swapBack().tmpSuccess_scope_0 (#880) is too similar to MET.swapBack().tmpSuccess_scope_1 (#884)
Variable MET.swapBack().tmpSuccess_scope_1 (#884) is too similar to MET.swapBack().tmpSuccess_scope_2 (#907)
Variable MET.swapBack().tmpSuccess_scope_0 (#880) is too similar to MET.swapBack().tmpSuccess_scope_2 (#907)
Prevent variables from having similar names.
Additional information: link
DividendDistributor.slitherConstructorVariables() (#188-367) uses literals with too many digits:
- minDistribution = 300000000000000000000000 (#217)
MET.slitherConstructorVariables() (#369-1036) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (#378)
MET.slitherConstructorVariables() (#369-1036) uses literals with too many digits:
- ZERO = 0x0000000000000000000000000000000000000000 (#379)
MET.slitherConstructorVariables() (#369-1036) uses literals with too many digits:
- _totalSupply = 250000000000000000000000000 (#390)
MET.slitherConstructorVariables() (#369-1036) uses literals with too many digits:
- distributorGas = 500000 (#450)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
MET.shareholderClaims (#406) is never used in MET (#369-1036)
Remove unused state variables.
Additional information: link
DividendDistributor.dividendsPerShareAccuracyFactor (#213) should be constant
MET.AIRDROPS (#384) should be constant
MET.DEAD (#378) should be constant
MET.DEV (#383) should be constant
MET.MAXIMUM_TAX_RATE (#416) should be constant
MET.MKT (#382) should be constant
MET.PROJECT (#381) should be constant
MET.WBNB (#377) should be constant
MET.ZERO (#379) should be constant
MET.feeDenominator (#426) should be constant
MET.launchedAt (#444) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
authorize(address) should be declared external:
- Auth.authorize(address) (#92-94)
unauthorize(address) should be declared external:
- Auth.unauthorize(address) (#99-101)
transferOwnership(address) should be declared external:
- Auth.transferOwnership(address) (#120-124)
setShouldDistributeBuyback(bool) should be declared external:
- MET.setShouldDistributeBuyback(bool) (#588-590)
tradingStatus(bool) should be declared external:
- MET.tradingStatus(bool) (#837-839)
cooldownEnabled(bool,uint8) should be declared external:
- MET.cooldownEnabled(bool,uint8) (#842-845)
burn(uint256) should be declared external:
- MET.burn(uint256) (#993-997)
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