Decentralized Zero Loss Jackpot, Farm, Pool Stake $LOVE Token and earn.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
LovePot.addLiquidity(uint256,uint256) (#1306-1319) sends eth to arbitrary user
Dangerous calls:
- LOVPTSwapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1311-1318)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in LovePot._transfer(address,address,uint256) (#1213-1251):
External calls:
- swapAndLiquify() (#1230)
- LOVPTSwapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1311-1318)
- LOVPTSwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1296-1302)
External calls sending eth:
- swapAndLiquify() (#1230)
- LOVPTSwapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1311-1318)
State variables written after the call(s):
- super._transfer(sender,recipient,amount) (#1234)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#1016)
- _balances[recipient] = _balances[recipient].add(amount) (#1017)
- super._transfer(sender,BURN_ADDRESS,burnAmount) (#1246)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#1016)
- _balances[recipient] = _balances[recipient].add(amount) (#1017)
- super._transfer(sender,address(this),liquidityAmount) (#1247)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#1016)
- _balances[recipient] = _balances[recipient].add(amount) (#1017)
- super._transfer(sender,recipient,sendAmount) (#1248)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#1016)
- _balances[recipient] = _balances[recipient].add(amount) (#1017)
Apply the check-effects-interactions pattern.
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.
LovePot._writeCheckpoint(address,uint32,uint256,uint256) (#1621-1639) uses a dangerous strict equality:
- nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber (#1631)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
Contract ownership is semi-renounced (passed to a contract)
LovePot.delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32) (#1487-1528) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp <= expiry,LOVPT::delegateBySig: signature expired) (#1526)
Avoid relying on block.timestamp.
Additional information: link
BEP20.allowance(address,address).owner (#899) shadows:
- Ownable.owner() (#775-777) (function)
BEP20._approve(address,address,uint256).owner (#1071) shadows:
- Ownable.owner() (#775-777) (function)
Rename the local variables that shadow another component.
Additional information: link
Redundant expression "this (#738)" inContext (#732-741)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#271-277):
- (success) = recipient.call{value: amount}() (#275)
Low level call in Address.functionStaticCall(address,bytes,string) (#357-363):
- (success,returndata) = target.staticcall(data) (#361)
Low level call in Address.functionDelegateCall(address,bytes,string) (#381-387):
- (success,returndata) = target.delegatecall(data) (#385)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#332-339):
- (success,returndata) = target.call{value: value}(data) (#337)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
LovePot.addLiquidity(uint256,uint256) (#1306-1319) ignores return value by LOVPTSwapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1311-1318)
Ensure that all the return values of the function calls are used.
Additional information: link
LovePot._transfer(address,address,uint256) (#1213-1251) performs a multiplication on the result of a division:
-taxAmount = amount.mul(transferTaxRate).div(10000) (#1237)
-burnAmount = taxAmount.mul(burnRate).div(100) (#1238)
Consider ordering multiplication before division.
Additional information: link
LovePot.getChainId() (#1646-1650) uses assembly
- INLINE ASM (#1648)
Address._verifyCallResult(bool,bytes,string) (#389-406) uses assembly
- INLINE ASM (#398-401)
Address.isContract(address) (#244-253) uses assembly
- INLINE ASM (#251)
Do not use evm assembly.
Additional information: link
SafeMath.tryDiv(uint256,uint256) (#467-470) is never used and should be removed
Address.sendValue(address,uint256) (#271-277) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#322-324) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#477-480) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#381-387) is never used and should be removed
BEP20._burnFrom(address,uint256) (#1088-1095) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#371-373) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#431-435) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#617-620) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#332-339) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#597-600) is never used and should be removed
Context._msgData() (#737-740) is never used and should be removed
Address.functionStaticCall(address,bytes) (#347-349) is never used and should be removed
SafeMath.mod(uint256,uint256) (#559-562) is never used and should be removed
Address._verifyCallResult(bool,bytes,string) (#389-406) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#452-460) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#442-445) is never used and should be removed
Address.isContract(address) (#244-253) is never used and should be removed
Address.functionCall(address,bytes,string) (#307-309) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#357-363) is never used and should be removed
Address.functionCall(address,bytes) (#297-299) is never used and should be removed
Remove unused functions.
Additional information: link
Variable LovePot.LOVPTSwapPair (#1126) is not in mixedCase
Parameter LovePot.isExcludedFromAntiWhale(address)._account (#1331) is not in mixedCase
Variable LovePot._delegates (#1429) is not in mixedCase
Parameter LovePot.setExcludedFromAntiWhale(address,bool)._excluded (#1381) is not in mixedCase
Parameter LovePot.setBuying(bool)._state (#1208) is not in mixedCase
Parameter LovePot.setSelling(bool)._state (#1203) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#43) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#60) is not in mixedCase
Variable BEP20._decimals (#824) is not in mixedCase
Parameter LovePot.updateMinAmountToLiquify(uint256)._minAmount (#1372) is not in mixedCase
Parameter LovePot.setExcludedFromAntiWhale(address,bool)._account (#1381) is not in mixedCase
Parameter LovePot.mint(address,uint256)._amount (#1191) is not in mixedCase
Parameter LovePot.burn(address,uint256)._to (#1197) is not in mixedCase
Variable LovePot.LOVPTSwapRouter (#1124) is not in mixedCase
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#42) is not in mixedCase
Variable BEP20._totalSupply (#820) is not in mixedCase
Parameter LovePot.updateSwapAndLiquifyEnabled(bool)._enabled (#1389) is not in mixedCase
Parameter LovePot.burn(address,uint256)._amount (#1197) is not in mixedCase
Parameter LovePot.updateTransferTaxRate(uint16)._transferTaxRate (#1342) is not in mixedCase
Variable BEP20._symbol (#823) is not in mixedCase
Parameter LovePot.updateMaxTransferAmountRate(uint16)._maxTransferAmountRate (#1362) is not in mixedCase
Variable BEP20._name (#822) is not in mixedCase
Parameter LovePot.updateLOVPTSwapRouter(address)._router (#1398) is not in mixedCase
Function IUniswapV2Router01.WETH() (#84) is not in mixedCase
Parameter LovePot.updateBurnRate(uint16)._burnRate (#1352) is not in mixedCase
Parameter LovePot.mint(address,uint256)._to (#1191) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#89) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#90)
Prevent variables from having similar names.
Additional information: link
LovePot.slitherConstructorConstantVariables() (#1104-1652) uses literals with too many digits:
- BURN_ADDRESS = 0x000000000000000000000000000000000000dEaD (#1113)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
transfer(address,uint256) should be declared external:
- BEP20.transfer(address,uint256) (#891-894)
symbol() should be declared external:
- BEP20.symbol() (#865-867)
updateMaxTransferAmountRate(uint16) should be declared external:
- LovePot.updateMaxTransferAmountRate(uint16) (#1362-1366)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#794-797)
burn(address,uint256) should be declared external:
- LovePot.burn(address,uint256) (#1197-1200)
approve(address,uint256) should be declared external:
- BEP20.approve(address,uint256) (#910-913)
updateBurnRate(uint16) should be declared external:
- LovePot.updateBurnRate(uint16) (#1352-1356)
updateLOVPTSwapRouter(address) should be declared external:
- LovePot.updateLOVPTSwapRouter(address) (#1398-1403)
setExcludedFromAntiWhale(address,bool) should be declared external:
- LovePot.setExcludedFromAntiWhale(address,bool) (#1381-1383)
transferFrom(address,address,uint256) should be declared external:
- BEP20.transferFrom(address,address,uint256) (#927-939)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#803-807)
setBuying(bool) should be declared external:
- LovePot.setBuying(bool) (#1208-1210)
setSelling(bool) should be declared external:
- LovePot.setSelling(bool) (#1203-1205)
mint(uint256) should be declared external:
- BEP20.mint(uint256) (#989-992)
transferOperator(address) should be declared external:
- LovePot.transferOperator(address) (#1416-1420)
updateSwapAndLiquifyEnabled(bool) should be declared external:
- LovePot.updateSwapAndLiquifyEnabled(bool) (#1389-1392)
allowance(address,address) should be declared external:
- BEP20.allowance(address,address) (#899-901)
mint(address,uint256) should be declared external:
- LovePot.mint(address,uint256) (#1191-1194)
updateMinAmountToLiquify(uint256) should be declared external:
- LovePot.updateMinAmountToLiquify(uint256) (#1372-1375)
updateTransferTaxRate(uint16) should be declared external:
- LovePot.updateTransferTaxRate(uint16) (#1342-1346)
decimals() should be declared external:
- BEP20.decimals() (#858-860)
increaseAllowance(address,uint256) should be declared external:
- BEP20.increaseAllowance(address,uint256) (#953-956)
decreaseAllowance(address,uint256) should be declared external:
- BEP20.decreaseAllowance(address,uint256) (#972-979)
isExcludedFromAntiWhale(address) should be declared external:
- LovePot.isExcludedFromAntiWhale(address) (#1331-1333)
Use the external attribute for functions never called from the contract.
Additional information: link
Reentrancy in LovePot.swapAndLiquify() (#1254-1284):
External calls:
- swapTokensForEth(half) (#1274)
- LOVPTSwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1296-1302)
- addLiquidity(otherHalf,newBalance) (#1280)
- LOVPTSwapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1311-1318)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1280)
- LOVPTSwapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1311-1318)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (#1280)
- _allowances[owner][spender] = amount (#1078)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in LovePot._transfer(address,address,uint256) (#1213-1251):
External calls:
- swapAndLiquify() (#1230)
- LOVPTSwapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1311-1318)
- LOVPTSwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1296-1302)
External calls sending eth:
- swapAndLiquify() (#1230)
- LOVPTSwapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1311-1318)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#1018)
- super._transfer(sender,address(this),liquidityAmount) (#1247)
- Transfer(sender,recipient,amount) (#1018)
- super._transfer(sender,BURN_ADDRESS,burnAmount) (#1246)
- Transfer(sender,recipient,amount) (#1018)
- super._transfer(sender,recipient,amount) (#1234)
- Transfer(sender,recipient,amount) (#1018)
- super._transfer(sender,recipient,sendAmount) (#1248)
Reentrancy in LovePot.swapAndLiquify() (#1254-1284):
External calls:
- swapTokensForEth(half) (#1274)
- LOVPTSwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1296-1302)
- addLiquidity(otherHalf,newBalance) (#1280)
- LOVPTSwapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1311-1318)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1280)
- LOVPTSwapRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1311-1318)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#1079)
- addLiquidity(otherHalf,newBalance) (#1280)
- SwapAndLiquify(half,newBalance,otherHalf) (#1282)
Apply the check-effects-interactions pattern.
Additional information: link
LovePot.antiWhale(address,address,uint256) (#1152-1162) compares to a boolean constant:
-_excludedFromAntiWhale[sender] == false && _excludedFromAntiWhale[recipient] == false (#1155-1156)
LovePot._transfer(address,address,uint256) (#1213-1251) compares to a boolean constant:
-swapAndLiquifyEnabled == true && _inSwapAndLiquify == false && address(LOVPTSwapRouter) != address(0) && LOVPTSwapPair != address(0) && sender != LOVPTSwapPair && sender != owner() (#1223-1228)
Remove the equality to the boolean constant.
Additional information: link
Token has relatively low CoinGecko rank
Last post in Twitter was more than 30 days ago
Unable to find Youtube account
Unable to find Discord account