FOMO BABY is a deflationary rebasing token with an automated liquidity feature, Staking options, NFT’s & Lottery Draws.
Our rebasing feature is mathematically structured to increase the price which will cause the charts to constantly stay green.
Reentrancy in FOMOBABY._transfer(address,address,uint256) (#560-577):
External calls:
- swapAndLiquify(numTokensSell) (#574)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
- swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#631-637)
External calls sending eth:
- swapAndLiquify(numTokensSell) (#574)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
- address(marketingWallet).transfer(marketingETH) (#618)
- address(lotteryWallet).transfer(address(this).balance) (#619)
State variables written after the call(s):
- _tokenTransfer(sender,recipient,amount) (#576)
- _fomoBalances[sender] -= transferAmount (#597)
- _fomoBalances[recipient] += receiveAmount (#598)
- _fomoBalances[address(this)] += (fee * _fomosPerFragment) (#601)
Apply the check-effects-interactions pattern.
Additional information: link
FOMOBABY.withdrawToken(address,address) (#721-730) ignores return value by IERC20(_token).transfer(_account,tokenBalance) (#729)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
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.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ownership is not renounced (belongs to a wallet)
FOMOBABY.constructor(uint256) (#440-458) uses a dangerous strict equality:
- require(bool)(block.number / 10 == marketingWalletPercentage) (#455)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
Reentrancy in FOMOBABY._transfer(address,address,uint256) (#560-577):
External calls:
- swapAndLiquify(numTokensSell) (#574)
- address(marketingWallet).transfer(marketingETH) (#618)
- address(lotteryWallet).transfer(address(this).balance) (#619)
External calls sending eth:
- swapAndLiquify(numTokensSell) (#574)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
- address(marketingWallet).transfer(marketingETH) (#618)
- address(lotteryWallet).transfer(address(this).balance) (#619)
State variables written after the call(s):
- _tokenTransfer(sender,recipient,amount) (#576)
- _fomoBalances[sender] -= transferAmount (#597)
- _fomoBalances[recipient] += receiveAmount (#598)
- _fomoBalances[address(this)] += (fee * _fomosPerFragment) (#601)
Event emitted after the call(s):
- Transfer(sender,address(this),fee) (#602)
- _tokenTransfer(sender,recipient,amount) (#576)
- Transfer(sender,recipient,amount - fee) (#605)
- _tokenTransfer(sender,recipient,amount) (#576)
Reentrancy in FOMOBABY.transferFrom(address,address,uint256) (#498-502):
External calls:
- _transfer(sender,recipient,amount) (#499)
- address(marketingWallet).transfer(marketingETH) (#618)
- address(lotteryWallet).transfer(address(this).balance) (#619)
External calls sending eth:
- _transfer(sender,recipient,amount) (#499)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
- address(marketingWallet).transfer(marketingETH) (#618)
- address(lotteryWallet).transfer(address(this).balance) (#619)
State variables written after the call(s):
- _approve(sender,msg.sender,_allowedFragments[sender][msg.sender] - amount) (#500)
- _allowedFragments[owner][spender] = amount (#555)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#556)
- _approve(sender,msg.sender,_allowedFragments[sender][msg.sender] - amount) (#500)
Apply the check-effects-interactions pattern.
Additional information: link
Variable ISwapRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#170) is too similar to ISwapRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#171)
Prevent variables from having similar names.
Additional information: link
FOMOBABY.slitherConstructorConstantVariables() (#379-732) uses literals with too many digits:
- BURN_ADDRESS = 0x000000000000000000000000000000000000dEaD (#384)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Ownable._previousOwner (#326) is never used in FOMOBABY (#379-732)
Ownable._lockTime (#327) is never used in FOMOBABY (#379-732)
Remove unused state variables.
Additional information: link
Ownable._lockTime (#327) should be constant
Ownable._previousOwner (#326) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#362-365)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#371-375)
name() should be declared external:
- FOMOBABY.name() (#504-506)
symbol() should be declared external:
- FOMOBABY.symbol() (#508-510)
decimals() should be declared external:
- FOMOBABY.decimals() (#512-514)
increaseAllowance(address,uint256) should be declared external:
- FOMOBABY.increaseAllowance(address,uint256) (#517-520)
approve(address,uint256) should be declared external:
- FOMOBABY.approve(address,uint256) (#530-533)
allowance(address,address) should be declared external:
- FOMOBABY.allowance(address,address) (#536-538)
setSwapAndLiquifyEnabled(bool) should be declared external:
- FOMOBABY.setSwapAndLiquifyEnabled(bool) (#541-543)
Use the external attribute for functions never called from the contract.
Additional information: link
FOMOBABY._tokenTransfer(address,address,uint256) (#579-606) performs a multiplication on the result of a division:
-maxWalletAmount = (_totalSupply * maxWallet / BP_DIVISOR) * _fomosPerFragment (#586)
FOMOBABY._tokenTransfer(address,address,uint256) (#579-606) performs a multiplication on the result of a division:
-fee = amount * transactionTax / denominator (#593)
-_fomoBalances[address(this)] += (fee * _fomosPerFragment) (#601)
FOMOBABY._tokenTransfer(address,address,uint256) (#579-606) performs a multiplication on the result of a division:
-fee = amount * transactionTax / denominator (#593)
-receiveAmount -= (fee * _fomosPerFragment) (#594)
Consider ordering multiplication before division.
Additional information: link
FOMOBABY._tokenTransfer(address,address,uint256).fee (#585) is a local variable never initialized
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
FOMOBABY._approve(address,address,uint256).owner (#551) shadows:
- Ownable.owner() (#343-345) (function)
Rename the local variables that shadow another component.
Additional information: link
FOMOBABY.setOperator(address) (#481-484) should emit an event for:
- operator = newOperator (#483)
Emit an event for critical parameter changes.
Additional information: link
FOMOBABY.setNumTokensSellDivisor(uint256) (#675-677) should emit an event for:
- numTokensSellDivisor = _numTokensSellDivisor (#676)
FOMOBABY.setFees(uint256,uint256,uint256) (#679-686) should emit an event for:
- liquidityTax = _liquidityFee (#682)
- marketingTax = _marketingFee (#683)
- lotteryTax = _lotteryFee (#684)
- transactionTax = totalFee (#685)
FOMOBABY.setMaxTx(uint256) (#698-701) should emit an event for:
- maxTx = _maxTx (#700)
FOMOBABY.setMaxWallet(uint256) (#703-706) should emit an event for:
- maxWallet = _maxWallet (#705)
Emit an event for critical parameter changes.
Additional information: link
FOMOBABY.setMarketingWallet(address).wallet (#688) lacks a zero-check on :
- marketingWallet = wallet (#690)
FOMOBABY.setLotteryWallet(address).wallet (#693) lacks a zero-check on :
- lotteryWallet = wallet (#695)
Check that the address is not zero.
Additional information: link
Reentrancy in FOMOBABY.constructor(uint256) (#440-458):
External calls:
- swapPair = ISwapFactory(_swapRouter.factory()).createPair(address(this),_swapRouter.WETH()) (#442)
State variables written after the call(s):
- _fomoBalances[owner()] = TOTAL_FOMOS (#448)
- _fomosPerFragment = TOTAL_FOMOS / _totalSupply (#449)
- _isExcluded[owner()] = true (#452)
- _isExcluded[address(this)] = true (#453)
- _totalSupply = INITIAL_FRAGMENTS_SUPPLY (#447)
- marketingWalletHoldings = _totalSupply * marketingWalletPercentage / 100 (#445)
- operator = msg.sender (#454)
- swapRouter = _swapRouter (#443)
Reentrancy in FOMOBABY.swapAndLiquify(uint256) (#608-621):
External calls:
- swapTokensForEth(tokensToETH) (#612)
- swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#631-637)
- ethForOtherFees = addLiquidity(tokensForLiquidity,address(this).balance) (#613)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
External calls sending eth:
- ethForOtherFees = addLiquidity(tokensForLiquidity,address(this).balance) (#613)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
State variables written after the call(s):
- ethForOtherFees = addLiquidity(tokensForLiquidity,address(this).balance) (#613)
- _allowedFragments[owner][spender] = amount (#555)
Reentrancy in FOMOBABY.transferFrom(address,address,uint256) (#498-502):
External calls:
- _transfer(sender,recipient,amount) (#499)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
- swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#631-637)
External calls sending eth:
- _transfer(sender,recipient,amount) (#499)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
- address(marketingWallet).transfer(marketingETH) (#618)
- address(lotteryWallet).transfer(address(this).balance) (#619)
State variables written after the call(s):
- _approve(sender,msg.sender,_allowedFragments[sender][msg.sender] - amount) (#500)
- _allowedFragments[owner][spender] = amount (#555)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in FOMOBABY._transfer(address,address,uint256) (#560-577):
External calls:
- swapAndLiquify(numTokensSell) (#574)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
- swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#631-637)
External calls sending eth:
- swapAndLiquify(numTokensSell) (#574)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
- address(marketingWallet).transfer(marketingETH) (#618)
- address(lotteryWallet).transfer(address(this).balance) (#619)
Event emitted after the call(s):
- Transfer(sender,address(this),fee) (#602)
- _tokenTransfer(sender,recipient,amount) (#576)
- Transfer(sender,recipient,amount - fee) (#605)
- _tokenTransfer(sender,recipient,amount) (#576)
Reentrancy in FOMOBABY.constructor(uint256) (#440-458):
External calls:
- swapPair = ISwapFactory(_swapRouter.factory()).createPair(address(this),_swapRouter.WETH()) (#442)
Event emitted after the call(s):
- Transfer(address(0),owner(),_totalSupply) (#457)
Reentrancy in FOMOBABY.rebase(uint256,int256) (#462-478):
External calls:
- ISwapPair(swapPair).sync() (#474)
Event emitted after the call(s):
- LogRebase(epoch,_totalSupply) (#476)
Reentrancy in FOMOBABY.swapAndLiquify(uint256) (#608-621):
External calls:
- swapTokensForEth(tokensToETH) (#612)
- swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#631-637)
- ethForOtherFees = addLiquidity(tokensForLiquidity,address(this).balance) (#613)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
External calls sending eth:
- ethForOtherFees = addLiquidity(tokensForLiquidity,address(this).balance) (#613)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#556)
- ethForOtherFees = addLiquidity(tokensForLiquidity,address(this).balance) (#613)
Reentrancy in FOMOBABY.transferFrom(address,address,uint256) (#498-502):
External calls:
- _transfer(sender,recipient,amount) (#499)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
- swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#631-637)
External calls sending eth:
- _transfer(sender,recipient,amount) (#499)
- (amountEthFromLiquidity) = swapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#644-651)
- address(marketingWallet).transfer(marketingETH) (#618)
- address(lotteryWallet).transfer(address(this).balance) (#619)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#556)
- _approve(sender,msg.sender,_allowedFragments[sender][msg.sender] - amount) (#500)
Apply the check-effects-interactions pattern.
Additional information: link
FOMOBABY._transfer(address,address,uint256) (#560-577) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(launchTime != 0 || _isExcluded[sender] || _isExcluded[recipient],FOMOBABY: Not launched) (#564)
FOMOBABY._tokenTransfer(address,address,uint256) (#579-606) uses timestamp for comparisons
Dangerous comparisons:
- (launchTime > 0 && block.timestamp < launchTime + 5) (#592)
FOMOBABY.swapAndLiquify(uint256) (#608-621) uses timestamp for comparisons
Dangerous comparisons:
- marketingETH > 0 (#617)
Avoid relying on block.timestamp.
Additional information: link
Context._msgData() (#306-309) is never used and should be removed
Remove unused functions.
Additional information: link
FOMOBABY.transactionTax (#393) is set pre-construction with a non-constant function or state variable:
- liquidityTax + marketingTax + lotteryTax
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
Function ISwapPair.DOMAIN_SEPARATOR() (#127) is not in mixedCase
Function ISwapPair.PERMIT_TYPEHASH() (#128) is not in mixedCase
Function ISwapPair.MINIMUM_LIQUIDITY() (#145) is not in mixedCase
Function ISwapRouter01.WETH() (#165) is not in mixedCase
Parameter FOMOBABY.setSwapAndLiquifyEnabled(bool)._enabled (#541) is not in mixedCase
Parameter FOMOBABY.setNumTokensSellDivisor(uint256)._numTokensSellDivisor (#675) is not in mixedCase
Parameter FOMOBABY.setFees(uint256,uint256,uint256)._marketingFee (#679) is not in mixedCase
Parameter FOMOBABY.setFees(uint256,uint256,uint256)._liquidityFee (#679) is not in mixedCase
Parameter FOMOBABY.setFees(uint256,uint256,uint256)._lotteryFee (#679) is not in mixedCase
Parameter FOMOBABY.setMaxTx(uint256)._maxTx (#698) is not in mixedCase
Parameter FOMOBABY.setMaxWallet(uint256)._maxWallet (#703) is not in mixedCase
Parameter FOMOBABY.withdrawWETH(address)._account (#712) is not in mixedCase
Parameter FOMOBABY.withdrawToken(address,address)._token (#721) is not in mixedCase
Parameter FOMOBABY.withdrawToken(address,address)._account (#721) is not in mixedCase
Variable FOMOBABY._fomosPerFragment (#421) is not in mixedCase
Variable FOMOBABY._fomoBalances (#422) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#307)" inContext (#301-310)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Token has no active CoinMarketCap listing / rank
Token has a considerable age, but social accounts / website are missing or have few users
Young tokens have high risks of price dump / death
Token has relatively low CoinGecko rank
Young tokens have high risks of price dump / death
Twitter account seems to be suspended
Additional information: link
Unable to find Youtube account
Unable to find Discord account