🔥World's Best Sustainable & Fastest Move2EarnAPY Protocol🔥 - Auto Staking & Auto Compounding Every Block (3 Seconds) with Fixed ✅ 404,202 % APY! MOVEAPY to Get reward in every ✅3 Seconds - ✅28,800 times in a day. Audit &KYC'ed by ✅Solidproof , Liquidity locked for 5 years. MOVEAPY offers PlaytoEarn Games and MovetoEarn games and Dex Wallet . ✅Up to 10% BNB Cashback For Fairlaunch Participants Who Filled The First ✅1BNB to 100BNB & 5% BNB Cashback For 101 to 500 BNB.
Move2EarnAPY.swapBack() (#718-773) sends eth to arbitrary user
Dangerous calls:
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#746-751)
- (success,None) = address(blackHoleReceiver).call{gas: 30000,value: currentBalance.mul(blackHole).div(_currentFee)}() (#753-758)
- (success,None) = address(trustFundReceiver).call{gas: 30000,value: currentBalance.mul(trustFund).div(_currentFee)}() (#760-765)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in Move2EarnAPY._transferFrom(address,address,uint256) (#604-643):
External calls:
- rebase() (#616)
- pairContract.sync() (#563)
- addLiquidity() (#620)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#695-701)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,owner(),block.timestamp) (#706-713)
- swapBack() (#624)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#732-738)
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#746-751)
- (success,None) = address(blackHoleReceiver).call{gas: 30000,value: currentBalance.mul(blackHole).div(_currentFee)}() (#753-758)
- (success,None) = address(trustFundReceiver).call{gas: 30000,value: currentBalance.mul(trustFund).div(_currentFee)}() (#760-765)
External calls sending eth:
- addLiquidity() (#620)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,owner(),block.timestamp) (#706-713)
- swapBack() (#624)
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#746-751)
- (success,None) = address(blackHoleReceiver).call{gas: 30000,value: currentBalance.mul(blackHole).div(_currentFee)}() (#753-758)
- (success,None) = address(trustFundReceiver).call{gas: 30000,value: currentBalance.mul(trustFund).div(_currentFee)}() (#760-765)
State variables written after the call(s):
- _gonBalances[sender] = _gonBalances[sender].sub(gonAmount) (#628)
- _gonBalances[recipient] = _gonBalances[recipient].add(gonAmountReceived) (#632-634)
- gonAmountReceived = takeFee(sender,recipient,gonAmount) (#629-631)
- _gonBalances[address(this)] = _gonBalances[address(this)].add(gonAmount.div(feeDenominator).mul(maintainFee)) (#663-665)
- _gonBalances[lpReceiver] = _gonBalances[lpReceiver].add(gonAmount.div(feeDenominator).mul(liquidityFee)) (#666-668)
- swapBack() (#624)
- inSwap = true (#447)
- inSwap = false (#449)
Apply the check-effects-interactions pattern.
Additional information: link
Move2EarnAPY._name (#404) shadows:
- ERC20Detailed._name (#370)
Move2EarnAPY._symbol (#405) shadows:
- ERC20Detailed._symbol (#371)
Move2EarnAPY._decimals (#406) shadows:
- ERC20Detailed._decimals (#372)
Remove the state variable shadowing.
Additional information: link
Too many vulnerabilities (Unchecked transfer, Reentrancy vulnerability, etc.). High risk of a scam. 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)
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.
Move2EarnAPY.swapBack().success (#746) is written in both
(success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#746-751)
(success,None) = address(blackHoleReceiver).call{gas: 30000,value: currentBalance.mul(blackHole).div(_currentFee)}() (#753-758)
Move2EarnAPY.swapBack().success (#746) is written in both
(success,None) = address(blackHoleReceiver).call{gas: 30000,value: currentBalance.mul(blackHole).div(_currentFee)}() (#753-758)
(success,None) = address(trustFundReceiver).call{gas: 30000,value: currentBalance.mul(trustFund).div(_currentFee)}() (#760-765)
Fix or remove the writes.
Additional information: link
Move2EarnAPY.isContract(address) (#965-969) uses assembly
- INLINE ASM (#967)
Do not use evm assembly.
Additional information: link
Variable IPancakeSwapRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#185) is too similar to IPancakeSwapRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#186)
Variable Move2EarnAPY.rebase().idx_scope_0 (#544) is too similar to Move2EarnAPY.rebase().idx_scope_1 (#549)
Variable Move2EarnAPY.rebase().idx_scope_0 (#544) is too similar to Move2EarnAPY.rebase().idx_scope_2 (#554)
Variable Move2EarnAPY.rebase().idx_scope_1 (#549) is too similar to Move2EarnAPY.rebase().idx_scope_2 (#554)
Prevent variables from having similar names.
Additional information: link
SafeMathInt.MAX_INT256 (#9) is never used in SafeMathInt (#7-41)
Remove unused state variables.
Additional information: link
Move2EarnAPY.DEAD (#431) should be constant
Move2EarnAPY.ZERO (#432) should be constant
Move2EarnAPY._decimals (#406) should be constant
Move2EarnAPY._name (#404) should be constant
Move2EarnAPY._symbol (#405) should be constant
Move2EarnAPY.feeDenominator (#429) should be constant
Move2EarnAPY.swapEnabled (#442) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#353-356)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#358-360)
name() should be declared external:
- ERC20Detailed.name() (#384-386)
symbol() should be declared external:
- ERC20Detailed.symbol() (#388-390)
decimals() should be declared external:
- ERC20Detailed.decimals() (#392-394)
getLiquidityBacking(uint256) should be declared external:
- Move2EarnAPY.getLiquidityBacking(uint256) (#930-938)
setPairAddress(address) should be declared external:
- Move2EarnAPY.setPairAddress(address) (#949-951)
Use the external attribute for functions never called from the contract.
Additional information: link
Move2EarnAPY.totalFee (#428) is set pre-construction with a non-constant function or state variable:
- liquidityFee.add(treasuryFee).add(blackHole).add(trustFund)
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 (#5) 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
Move2EarnAPY.slitherConstructorVariables() (#397-973) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (#431)
Move2EarnAPY.slitherConstructorVariables() (#397-973) uses literals with too many digits:
- ZERO = 0x0000000000000000000000000000000000000000 (#432)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Move2EarnAPY.rebase() (#527-566) performs a multiplication on the result of a division:
-tmp = tmp.mul(deno.mul(100).add(rebaseRate)).div(deno.mul(100)) (#541)
-tmp = tmp.mul(deno.mul(100).add(minuteRebaseRate)).div(deno.mul(100)) (#546)
Move2EarnAPY.rebase() (#527-566) performs a multiplication on the result of a division:
-tmp = tmp.mul(deno.mul(100).add(minuteRebaseRate)).div(deno.mul(100)) (#546)
-tmp = tmp.mul(deno.mul(100).add(hourRebaseRate)).div(deno.mul(100)) (#551)
Move2EarnAPY.rebase() (#527-566) performs a multiplication on the result of a division:
-tmp = tmp.mul(deno.mul(100).add(hourRebaseRate)).div(deno.mul(100)) (#551)
-tmp = tmp.mul(deno.mul(100).add(dayRebaseRate)).div(deno.mul(100)) (#556)
Move2EarnAPY.takeFee(address,address,uint256) (#645-672) performs a multiplication on the result of a division:
-feeAmount = gonAmount.div(feeDenominator).mul(_totalFee) (#656)
Move2EarnAPY.takeFee(address,address,uint256) (#645-672) performs a multiplication on the result of a division:
-_gonBalances[address(this)] = _gonBalances[address(this)].add(gonAmount.div(feeDenominator).mul(maintainFee)) (#663-665)
Move2EarnAPY.takeFee(address,address,uint256) (#645-672) performs a multiplication on the result of a division:
-_gonBalances[lpReceiver] = _gonBalances[lpReceiver].add(gonAmount.div(feeDenominator).mul(liquidityFee)) (#666-668)
Move2EarnAPY.getLiquidityBacking(uint256) (#930-938) performs a multiplication on the result of a division:
-liquidityBalance = _gonBalances[pair].div(_gonsPerFragment) (#935)
-accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply()) (#936-937)
Consider ordering multiplication before division.
Additional information: link
Move2EarnAPY.addLiquidity() (#674-716) ignores return value by router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,owner(),block.timestamp) (#706-713)
Ensure that all the return values of the function calls are used.
Additional information: link
Move2EarnAPY.setFeeReceivers(address,address,address,address)._treasuryReceiver (#918) lacks a zero-check on :
- treasuryReceiver = _treasuryReceiver (#923)
Move2EarnAPY.setFeeReceivers(address,address,address,address)._blackHoleReceiver (#919) lacks a zero-check on :
- blackHoleReceiver = _blackHoleReceiver (#924)
Move2EarnAPY.setFeeReceivers(address,address,address,address)._trustFundReceiver (#921) lacks a zero-check on :
- trustFundReceiver = _trustFundReceiver (#926)
Move2EarnAPY.setFeeReceivers(address,address,address,address)._lpReceiver (#917) lacks a zero-check on :
- lpReceiver = _lpReceiver (#927)
Move2EarnAPY.setPairAddress(address)._pairAddress (#949) lacks a zero-check on :
- pairAddress = _pairAddress (#950)
Check that the address is not zero.
Additional information: link
Reentrancy in Move2EarnAPY.addLiquidity() (#674-716):
External calls:
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#695-701)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,owner(),block.timestamp) (#706-713)
External calls sending eth:
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,owner(),block.timestamp) (#706-713)
State variables written after the call(s):
- _lastAddLiquidityTime = block.timestamp (#715)
Reentrancy in Move2EarnAPY.constructor() (#473-500):
External calls:
- pair = IPancakeSwapFactory(router.factory()).createPair(router.WETH(),address(this)) (#476-479)
State variables written after the call(s):
- _allowedFragments[address(this)][address(router)] = uint256(- 1) (#486)
- _gonBalances[owner()] = TOTAL_GONS (#491)
- _gonsPerFragment = TOTAL_GONS.div(_totalSupply) (#492)
- _initRebaseStartTime = block.timestamp (#493)
- _isFeeExempt[owner()] = true (#496)
- _isFeeExempt[address(this)] = true (#497)
- _lastRebasedTime = block.number (#494)
- _totalSupply = INITIAL_FRAGMENTS_SUPPLY (#490)
- blackHoleReceiver = 0xe2B243Ddd2025c9A188B06F20b47a4AA9E61f24C (#483)
- lpReceiver = 0xe48726bDe7719CeAcdCdE78688B28Ac37e1fD1a3 (#481)
- pairAddress = pair (#487)
- pairContract = IPancakeSwapPair(pair) (#488)
- treasuryReceiver = 0xdA637A259bb53B1F1CC4EEbDae4d9AC5d1b9957F (#482)
- trustFundReceiver = 0xcb6da17299a70Cb3E57ACE57F174963c51c61f14 (#484)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in Move2EarnAPY._transferFrom(address,address,uint256) (#604-643):
External calls:
- rebase() (#616)
- pairContract.sync() (#563)
- addLiquidity() (#620)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#695-701)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,owner(),block.timestamp) (#706-713)
- swapBack() (#624)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#732-738)
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#746-751)
- (success,None) = address(blackHoleReceiver).call{gas: 30000,value: currentBalance.mul(blackHole).div(_currentFee)}() (#753-758)
- (success,None) = address(trustFundReceiver).call{gas: 30000,value: currentBalance.mul(trustFund).div(_currentFee)}() (#760-765)
External calls sending eth:
- addLiquidity() (#620)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,owner(),block.timestamp) (#706-713)
- swapBack() (#624)
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#746-751)
- (success,None) = address(blackHoleReceiver).call{gas: 30000,value: currentBalance.mul(blackHole).div(_currentFee)}() (#753-758)
- (success,None) = address(trustFundReceiver).call{gas: 30000,value: currentBalance.mul(trustFund).div(_currentFee)}() (#760-765)
Event emitted after the call(s):
- Transfer(sender,address(this),feeAmount.div(_gonsPerFragment)) (#670)
- gonAmountReceived = takeFee(sender,recipient,gonAmount) (#629-631)
- Transfer(sender,recipient,gonAmountReceived.div(_gonsPerFragment)) (#637-641)
Reentrancy in Move2EarnAPY.constructor() (#473-500):
External calls:
- pair = IPancakeSwapFactory(router.factory()).createPair(router.WETH(),address(this)) (#476-479)
Event emitted after the call(s):
- Transfer(address(0x0),owner(),_totalSupply) (#499)
Reentrancy in Move2EarnAPY.rebase() (#527-566):
External calls:
- pairContract.sync() (#563)
Event emitted after the call(s):
- Rebased(block.timestamp,_totalSupply) (#565)
Apply the check-effects-interactions pattern.
Additional information: link
Move2EarnAPY.shouldAddLiquidity() (#810-816) uses timestamp for comparisons
Dangerous comparisons:
- _autoAddLiquidity && ! inSwap && msg.sender != pair && block.timestamp >= (_lastAddLiquidityTime + 172800) (#811-815)
Avoid relying on block.timestamp.
Additional information: link
SafeMathInt.abs(int256) (#37-40) is never used and should be removed
SafeMathInt.add(int256,int256) (#31-35) is never used and should be removed
SafeMathInt.div(int256,int256) (#19-23) is never used and should be removed
SafeMathInt.mul(int256,int256) (#11-17) is never used and should be removed
SafeMathInt.sub(int256,int256) (#25-29) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Move2EarnAPY.swapBack() (#718-773):
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#746-751)
- (success,None) = address(blackHoleReceiver).call{gas: 30000,value: currentBalance.mul(blackHole).div(_currentFee)}() (#753-758)
- (success,None) = address(trustFundReceiver).call{gas: 30000,value: currentBalance.mul(trustFund).div(_currentFee)}() (#760-765)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IPancakeSwapPair.DOMAIN_SEPARATOR() (#142) is not in mixedCase
Function IPancakeSwapPair.PERMIT_TYPEHASH() (#143) is not in mixedCase
Function IPancakeSwapPair.MINIMUM_LIQUIDITY() (#160) is not in mixedCase
Function IPancakeSwapRouter.WETH() (#180) is not in mixedCase
Parameter Move2EarnAPY.setAutoRebase(bool)._flag (#824) is not in mixedCase
Parameter Move2EarnAPY.setAutoAddLiquidity(bool)._flag (#833) is not in mixedCase
Parameter Move2EarnAPY.checkFeeExempt(address)._addr (#896) is not in mixedCase
Parameter Move2EarnAPY.setFeeReceivers(address,address,address,address)._lpReceiver (#917) is not in mixedCase
Parameter Move2EarnAPY.setFeeReceivers(address,address,address,address)._treasuryReceiver (#918) is not in mixedCase
Parameter Move2EarnAPY.setFeeReceivers(address,address,address,address)._blackHoleReceiver (#919) is not in mixedCase
Parameter Move2EarnAPY.setFeeReceivers(address,address,address,address)._trustFundReceiver (#921) is not in mixedCase
Parameter Move2EarnAPY.setWhitelist(address)._addr (#940) is not in mixedCase
Parameter Move2EarnAPY.setBotBlacklist(address,bool)._botAddress (#944) is not in mixedCase
Parameter Move2EarnAPY.setBotBlacklist(address,bool)._flag (#944) is not in mixedCase
Parameter Move2EarnAPY.setPairAddress(address)._pairAddress (#949) is not in mixedCase
Parameter Move2EarnAPY.setLP(address)._address (#953) is not in mixedCase
Variable Move2EarnAPY._name (#404) is not in mixedCase
Variable Move2EarnAPY._symbol (#405) is not in mixedCase
Variable Move2EarnAPY._decimals (#406) is not in mixedCase
Variable Move2EarnAPY._isFeeExempt (#409) is not in mixedCase
Variable Move2EarnAPY.DEAD (#431) is not in mixedCase
Variable Move2EarnAPY.ZERO (#432) is not in mixedCase
Variable Move2EarnAPY._autoRebase (#456) is not in mixedCase
Variable Move2EarnAPY._autoAddLiquidity (#457) is not in mixedCase
Variable Move2EarnAPY._initRebaseStartTime (#460) is not in mixedCase
Variable Move2EarnAPY._lastRebasedTime (#461) is not in mixedCase
Variable Move2EarnAPY._lastAddLiquidityTime (#462) is not in mixedCase
Variable Move2EarnAPY._totalSupply (#463) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Token was delisted (assigned to inactive / untracked listing) from CoinMarketCap
Additional information: link
Unable to find audit link on the website
Unable to find token on CoinGecko
Additional information: link
Token is not listed at Mobula.Finance
Additional information: link
Unable to find token on CoinHunt
Additional information: link
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Last post in Twitter was more than 30 days ago
Unable to find Discord account