Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Reentrancy in ManiWallet._transfer(address,address,uint256) (ManiWallet.sol#380-424):
External calls:
- swapAndLiquify(contractTokenBalance) (ManiWallet.sol#407)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (ManiWallet.sol#458-464)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (ManiWallet.sol#407)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
State variables written after the call(s):
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (ManiWallet.sol#337)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (ManiWallet.sol#506)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (ManiWallet.sol#515)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (ManiWallet.sol#526)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (ManiWallet.sol#507)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (ManiWallet.sol#218)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (ManiWallet.sol#517)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (ManiWallet.sol#527)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (ManiWallet.sol#220)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (ManiWallet.sol#337)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (ManiWallet.sol#506)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (ManiWallet.sol#515)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (ManiWallet.sol#526)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (ManiWallet.sol#507)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (ManiWallet.sol#218)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (ManiWallet.sol#517)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (ManiWallet.sol#527)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (ManiWallet.sol#220)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- _rTotal = _rTotal.sub(rFee) (ManiWallet.sol#268)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- _rTotal = _rTotal.sub(rFee) (ManiWallet.sol#268)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (ManiWallet.sol#339)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (ManiWallet.sol#217)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (ManiWallet.sol#525)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (ManiWallet.sol#516)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (ManiWallet.sol#219)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (ManiWallet.sol#339)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (ManiWallet.sol#217)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (ManiWallet.sol#525)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (ManiWallet.sol#516)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (ManiWallet.sol#219)
Apply the check-effects-interactions pattern.
Additional information: link
ManiWallet.withdrawAnyToken(address,address,uint256) (ManiWallet.sol#545-550) ignores return value by IERC20(_ERC20address).transfer(_recipient,_amount) (ManiWallet.sol#548)
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.
ManiWallet.addLiquidity(uint256,uint256) (ManiWallet.sol#468-481) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
Ensure that all the return values of the function calls are used.
Additional information: link
ManiWallet.allowance(address,address).owner (ManiWallet.sol#138) shadows:
- Ownable.owner() (Ownable.sol#35-37) (function)
ManiWallet._approve(address,address,uint256).owner (ManiWallet.sol#372) shadows:
- Ownable.owner() (Ownable.sol#35-37) (function)
Rename the local variables that shadow another component.
Additional information: link
ManiWallet.setTaxFeePercent(uint256) (ManiWallet.sol#234-236) should emit an event for:
- _taxFee = taxFee (ManiWallet.sol#235)
ManiWallet.setLiquidityFeePercent(uint256) (ManiWallet.sol#238-240) should emit an event for:
- _liquidityFee = liquidityFee (ManiWallet.sol#239)
ManiWallet.setPreviousMarketingFee(uint256) (ManiWallet.sol#242-244) should emit an event for:
- _marketingFee = marketingFee (ManiWallet.sol#243)
ManiWallet.changeLiquifyAmount(uint256) (ManiWallet.sol#246-248) should emit an event for:
- numTokensSellToAddToLiquidity = amount (ManiWallet.sol#247)
ManiWallet.setOwnMaxRate(uint256) (ManiWallet.sol#250-252) should emit an event for:
- ownMaxRate = _newRate (ManiWallet.sol#251)
Emit an event for critical parameter changes.
Additional information: link
ManiWallet.changeRouterAddress(address)._newAd (ManiWallet.sol#534) lacks a zero-check on :
- routerAddress = _newAd (ManiWallet.sol#535)
ManiWallet.changeMarketingWallet(address)._newAd (ManiWallet.sol#537) lacks a zero-check on :
- marketingWallet = _newAd (ManiWallet.sol#538)
ManiWallet.changeAdvisorWallet(address)._newAd (ManiWallet.sol#541) lacks a zero-check on :
- advisorWallet = _newAd (ManiWallet.sol#542)
ManiWallet.withdrawContractBal(address).recipient (ManiWallet.sol#552) lacks a zero-check on :
- recipient.transfer(address(this).balance) (ManiWallet.sol#553)
Check that the address is not zero.
Additional information: link
Reentrancy in ManiWallet._transfer(address,address,uint256) (ManiWallet.sol#380-424):
External calls:
- swapAndLiquify(contractTokenBalance) (ManiWallet.sol#407)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (ManiWallet.sol#458-464)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (ManiWallet.sol#407)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
State variables written after the call(s):
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- _liquidityFee = _previousLiquidityFee (ManiWallet.sol#364)
- _liquidityFee = 0 (ManiWallet.sol#358)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- _liquidityFee = _previousLiquidityFee (ManiWallet.sol#364)
- _liquidityFee = 0 (ManiWallet.sol#358)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- _marketingFee = _previousMarketingFee (ManiWallet.sol#365)
- _marketingFee = 0 (ManiWallet.sol#359)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- _marketingFee = _previousMarketingFee (ManiWallet.sol#365)
- _marketingFee = 0 (ManiWallet.sol#359)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- _previousLiquidityFee = _liquidityFee (ManiWallet.sol#354)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- _previousLiquidityFee = _liquidityFee (ManiWallet.sol#354)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- _previousMarketingFee = _marketingFee (ManiWallet.sol#355)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- _previousMarketingFee = _marketingFee (ManiWallet.sol#355)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- _previousTaxFee = _taxFee (ManiWallet.sol#353)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- _previousTaxFee = _taxFee (ManiWallet.sol#353)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- _tFeeTotal = _tFeeTotal.add(tFee) (ManiWallet.sol#269)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- _tFeeTotal = _tFeeTotal.add(tFee) (ManiWallet.sol#269)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- _taxFee = _previousTaxFee (ManiWallet.sol#363)
- _taxFee = 0 (ManiWallet.sol#357)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- _taxFee = _previousTaxFee (ManiWallet.sol#363)
- _taxFee = 0 (ManiWallet.sol#357)
Reentrancy in ManiWallet.constructor() (ManiWallet.sol#84-109):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (ManiWallet.sol#98-99)
State variables written after the call(s):
- uniswapV2Router = _uniswapV2Router (ManiWallet.sol#102)
Reentrancy in ManiWallet.swapAndLiquify(uint256) (ManiWallet.sol#426-447):
External calls:
- swapTokensForEth(half) (ManiWallet.sol#438)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (ManiWallet.sol#458-464)
- addLiquidity(otherHalf,newBalance) (ManiWallet.sol#444)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (ManiWallet.sol#444)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (ManiWallet.sol#444)
- _allowances[owner][spender] = amount (ManiWallet.sol#376)
Reentrancy in ManiWallet.transferFrom(address,address,uint256) (ManiWallet.sol#147-151):
External calls:
- _transfer(sender,recipient,amount) (ManiWallet.sol#148)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (ManiWallet.sol#458-464)
External calls sending eth:
- _transfer(sender,recipient,amount) (ManiWallet.sol#148)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (ManiWallet.sol#149)
- _allowances[owner][spender] = amount (ManiWallet.sol#376)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in ManiWallet._transfer(address,address,uint256) (ManiWallet.sol#380-424):
External calls:
- swapAndLiquify(contractTokenBalance) (ManiWallet.sol#407)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (ManiWallet.sol#458-464)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (ManiWallet.sol#407)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (ManiWallet.sol#510)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- Transfer(sender,recipient,tTransferAmount) (ManiWallet.sol#510)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- Transfer(sender,recipient,tTransferAmount) (ManiWallet.sol#520)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- Transfer(sender,recipient,tTransferAmount) (ManiWallet.sol#520)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- Transfer(sender,recipient,tTransferAmount) (ManiWallet.sol#530)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- Transfer(sender,recipient,tTransferAmount) (ManiWallet.sol#530)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
- Transfer(sender,recipient,tTransferAmount) (ManiWallet.sol#223)
- _tokenTransfer(from,to,amount,takeFee) (ManiWallet.sol#423)
- Transfer(sender,recipient,tTransferAmount) (ManiWallet.sol#223)
- _tokenTransfer(from,marketingWallet,marketingAmount,false) (ManiWallet.sol#418)
Reentrancy in ManiWallet.constructor() (ManiWallet.sol#84-109):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (ManiWallet.sol#98-99)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal * 55 / 100) (ManiWallet.sol#104)
- Transfer(address(0),teamWallet,_tTotal * 20 / 100) (ManiWallet.sol#105)
- Transfer(address(0),marketingWallet,_tTotal * 10 / 200) (ManiWallet.sol#106)
- Transfer(address(0),advisorWallet,_tTotal * 5 / 100) (ManiWallet.sol#107)
- Transfer(address(0),burnWallet,_tTotal * 10 / 100) (ManiWallet.sol#108)
Reentrancy in ManiWallet.swapAndLiquify(uint256) (ManiWallet.sol#426-447):
External calls:
- swapTokensForEth(half) (ManiWallet.sol#438)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (ManiWallet.sol#458-464)
- addLiquidity(otherHalf,newBalance) (ManiWallet.sol#444)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (ManiWallet.sol#444)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
Event emitted after the call(s):
- Approval(owner,spender,amount) (ManiWallet.sol#377)
- addLiquidity(otherHalf,newBalance) (ManiWallet.sol#444)
- SwapAndLiquify(half,newBalance,otherHalf) (ManiWallet.sol#446)
Reentrancy in ManiWallet.transferFrom(address,address,uint256) (ManiWallet.sol#147-151):
External calls:
- _transfer(sender,recipient,amount) (ManiWallet.sol#148)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (ManiWallet.sol#458-464)
External calls sending eth:
- _transfer(sender,recipient,amount) (ManiWallet.sol#148)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(this),block.timestamp) (ManiWallet.sol#473-480)
Event emitted after the call(s):
- Approval(owner,spender,amount) (ManiWallet.sol#377)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (ManiWallet.sol#149)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (Address.sol#27-37) uses assembly
- INLINE ASM (Address.sol#33-35)
Address.verifyCallResult(bool,bytes,string) (Address.sol#196-216) uses assembly
- INLINE ASM (Address.sol#208-211)
Do not use evm assembly.
Additional information: link
ManiWallet._transfer(address,address,uint256) (ManiWallet.sol#380-424) compares to a boolean constant:
-require(bool,string)(isHack != true,Is hack now...) (ManiWallet.sol#385)
Remove the equality to the boolean constant.
Additional information: link
Different versions of Solidity is used:
- Version used: ['>=0.5.0', '>=0.6.2', '^0.8.0']
- ^0.8.0 (Address.sol#4)
- ^0.8.0 (Context.sol#4)
- ^0.8.0 (IERC20.sol#4)
- >=0.5.0 (IUniswapV2Factory.sol#3)
- >=0.5.0 (IUniswapV2Pair.sol#3)
- >=0.6.2 (IUniswapV2Router01.sol#3)
- >=0.6.2 (IUniswapV2Router02.sol#3)
- ^0.8.0 (ManiWallet.sol#1)
- ^0.8.0 (Ownable.sol#4)
- ^0.8.0 (SafeMath.sol#4)
Use one Solidity version.
Additional information: link
ManiWallet.includeInReward(address) (ManiWallet.sol#202-213) has costly operations inside a loop:
- _excluded.pop() (ManiWallet.sol#209)
Use a local variable to hold the loop computation result.
Additional information: link
Address.functionCall(address,bytes) (Address.sol#80-82) is never used and should be removed
Address.functionCall(address,bytes,string) (Address.sol#90-96) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (Address.sol#109-115) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (Address.sol#123-134) is never used and should be removed
Address.functionDelegateCall(address,bytes) (Address.sol#169-171) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (Address.sol#179-188) is never used and should be removed
Address.functionStaticCall(address,bytes) (Address.sol#142-144) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (Address.sol#152-161) is never used and should be removed
Address.isContract(address) (Address.sol#27-37) is never used and should be removed
Address.sendValue(address,uint256) (Address.sol#55-60) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (Address.sol#196-216) is never used and should be removed
Context._msgData() (Context.sol#21-23) is never used and should be removed
SafeMath.div(uint256,uint256,string) (SafeMath.sol#191-200) is never used and should be removed
SafeMath.mod(uint256,uint256) (SafeMath.sol#151-153) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (SafeMath.sol#217-226) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (SafeMath.sol#22-28) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (SafeMath.sol#64-69) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (SafeMath.sol#76-81) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (SafeMath.sol#47-57) is never used and should be removed
SafeMath.trySub(uint256,uint256) (SafeMath.sol#35-40) is never used and should be removed
Remove unused functions.
Additional information: link
ManiWallet._rTotal (ManiWallet.sol#29) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
ManiWallet._previousTaxFee (ManiWallet.sol#38) is set pre-construction with a non-constant function or state variable:
- _taxFee
ManiWallet._previousLiquidityFee (ManiWallet.sol#41) is set pre-construction with a non-constant function or state variable:
- _liquidityFee
ManiWallet._previousMarketingFee (ManiWallet.sol#44) is set pre-construction with a non-constant function or state variable:
- _marketingFee
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.8.0 (Address.sol#4) allows old versions
Pragma version^0.8.0 (Context.sol#4) allows old versions
Pragma version^0.8.0 (IERC20.sol#4) allows old versions
Pragma version>=0.5.0 (IUniswapV2Factory.sol#3) allows old versions
Pragma version>=0.5.0 (IUniswapV2Pair.sol#3) allows old versions
Pragma version>=0.6.2 (IUniswapV2Router01.sol#3) allows old versions
Pragma version>=0.6.2 (IUniswapV2Router02.sol#3) allows old versions
Pragma version^0.8.0 (ManiWallet.sol#1) allows old versions
Pragma version^0.8.0 (Ownable.sol#4) allows old versions
Pragma version^0.8.0 (SafeMath.sol#4) 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 Address.sendValue(address,uint256) (Address.sol#55-60):
- (success) = recipient.call{value: amount}() (Address.sol#58)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (Address.sol#123-134):
- (success,returndata) = target.call{value: value}(data) (Address.sol#132)
Low level call in Address.functionStaticCall(address,bytes,string) (Address.sol#152-161):
- (success,returndata) = target.staticcall(data) (Address.sol#159)
Low level call in Address.functionDelegateCall(address,bytes,string) (Address.sol#179-188):
- (success,returndata) = target.delegatecall(data) (Address.sol#186)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (IUniswapV2Pair.sol#20) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (IUniswapV2Pair.sol#21) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (IUniswapV2Pair.sol#38) is not in mixedCase
Function IUniswapV2Router01.WETH() (IUniswapV2Router01.sol#7) is not in mixedCase
Parameter ManiWallet.excludeFromFee(address)._newAd (ManiWallet.sol#226) is not in mixedCase
Parameter ManiWallet.includeInFee(address)._newAd (ManiWallet.sol#230) is not in mixedCase
Parameter ManiWallet.setOwnMaxRate(uint256)._newRate (ManiWallet.sol#250) is not in mixedCase
Parameter ManiWallet.setSwapAndLiquifyEnabled(bool)._enabled (ManiWallet.sol#254) is not in mixedCase
Parameter ManiWallet.calculateTaxFee(uint256)._amount (ManiWallet.sol#342) is not in mixedCase
Parameter ManiWallet.calculateLiquidityFee(uint256)._amount (ManiWallet.sol#346) is not in mixedCase
Parameter ManiWallet.changeRouterAddress(address)._newAd (ManiWallet.sol#534) is not in mixedCase
Parameter ManiWallet.changeMarketingWallet(address)._newAd (ManiWallet.sol#537) is not in mixedCase
Parameter ManiWallet.changeAdvisorWallet(address)._newAd (ManiWallet.sol#541) is not in mixedCase
Parameter ManiWallet.withdrawAnyToken(address,address,uint256)._recipient (ManiWallet.sol#545) is not in mixedCase
Parameter ManiWallet.withdrawAnyToken(address,address,uint256)._ERC20address (ManiWallet.sol#545) is not in mixedCase
Parameter ManiWallet.withdrawAnyToken(address,address,uint256)._amount (ManiWallet.sol#545) is not in mixedCase
Variable ManiWallet._taxFee (ManiWallet.sol#37) is not in mixedCase
Variable ManiWallet._liquidityFee (ManiWallet.sol#40) is not in mixedCase
Variable ManiWallet._marketingFee (ManiWallet.sol#43) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (IUniswapV2Router01.sol#12) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (IUniswapV2Router01.sol#13)
Variable ManiWallet.burn(uint256).rBurnAmount (ManiWallet.sol#290) is too similar to ManiWallet._burn(address,uint256,uint256).tBurnAmount (ManiWallet.sol#272)
Variable ManiWallet._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (ManiWallet.sol#313) is too similar to ManiWallet._transferToExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#514)
Variable ManiWallet._getValues(uint256).rTransferAmount (ManiWallet.sol#298) is too similar to ManiWallet._transferFromExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#524)
Variable ManiWallet.reflectionFromToken(uint256,bool).rTransferAmount (ManiWallet.sol#182) is too similar to ManiWallet._transferToExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#514)
Variable ManiWallet._transferFromExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#524) is too similar to ManiWallet._transferFromExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#524)
Variable ManiWallet._transferStandard(address,address,uint256).rTransferAmount (ManiWallet.sol#505) is too similar to ManiWallet._transferFromExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#524)
Variable ManiWallet._transferBothExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#216) is too similar to ManiWallet._transferBothExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#216)
Variable ManiWallet._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (ManiWallet.sol#313) is too similar to ManiWallet._transferStandard(address,address,uint256).tTransferAmount (ManiWallet.sol#505)
Variable ManiWallet._transferToExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#514) is too similar to ManiWallet._transferFromExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#524)
Variable ManiWallet._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (ManiWallet.sol#313) is too similar to ManiWallet._getValues(uint256).tTransferAmount (ManiWallet.sol#297)
Variable ManiWallet.reflectionFromToken(uint256,bool).rTransferAmount (ManiWallet.sol#182) is too similar to ManiWallet._transferStandard(address,address,uint256).tTransferAmount (ManiWallet.sol#505)
Variable ManiWallet._transferBothExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#216) is too similar to ManiWallet._transferFromExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#524)
Variable ManiWallet.reflectionFromToken(uint256,bool).rTransferAmount (ManiWallet.sol#182) is too similar to ManiWallet._getValues(uint256).tTransferAmount (ManiWallet.sol#297)
Variable ManiWallet._getValues(uint256).rTransferAmount (ManiWallet.sol#298) is too similar to ManiWallet._transferToExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#514)
Variable ManiWallet._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (ManiWallet.sol#313) is too similar to ManiWallet._getTValues(uint256).tTransferAmount (ManiWallet.sol#305)
Variable ManiWallet._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (ManiWallet.sol#313) is too similar to ManiWallet._transferBothExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#216)
Variable ManiWallet.reflectionFromToken(uint256,bool).rTransferAmount (ManiWallet.sol#182) is too similar to ManiWallet._transferBothExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#216)
Variable ManiWallet._transferStandard(address,address,uint256).rTransferAmount (ManiWallet.sol#505) is too similar to ManiWallet._transferToExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#514)
Variable ManiWallet._getValues(uint256).rTransferAmount (ManiWallet.sol#298) is too similar to ManiWallet._transferStandard(address,address,uint256).tTransferAmount (ManiWallet.sol#505)
Variable ManiWallet._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (ManiWallet.sol#313) is too similar to ManiWallet._transferFromExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#524)
Variable ManiWallet._getValues(uint256).rTransferAmount (ManiWallet.sol#298) is too similar to ManiWallet._getValues(uint256).tTransferAmount (ManiWallet.sol#297)
Variable ManiWallet._transferStandard(address,address,uint256).rTransferAmount (ManiWallet.sol#505) is too similar to ManiWallet._transferStandard(address,address,uint256).tTransferAmount (ManiWallet.sol#505)
Variable ManiWallet.reflectionFromToken(uint256,bool).rTransferAmount (ManiWallet.sol#182) is too similar to ManiWallet._transferFromExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#524)
Variable ManiWallet._getValues(uint256).rTransferAmount (ManiWallet.sol#298) is too similar to ManiWallet._getTValues(uint256).tTransferAmount (ManiWallet.sol#305)
Variable ManiWallet._transferStandard(address,address,uint256).rTransferAmount (ManiWallet.sol#505) is too similar to ManiWallet._getValues(uint256).tTransferAmount (ManiWallet.sol#297)
Variable ManiWallet._getValues(uint256).rTransferAmount (ManiWallet.sol#298) is too similar to ManiWallet._transferBothExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#216)
Variable ManiWallet._transferStandard(address,address,uint256).rTransferAmount (ManiWallet.sol#505) is too similar to ManiWallet._transferBothExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#216)
Variable ManiWallet._burn(address,uint256,uint256).rBurnAmount (ManiWallet.sol#272) is too similar to ManiWallet._burn(address,uint256,uint256).tBurnAmount (ManiWallet.sol#272)
Variable ManiWallet.burn(uint256).rBurnAmount (ManiWallet.sol#290) is too similar to ManiWallet.burn(uint256).tBurnAmount (ManiWallet.sol#289)
Variable ManiWallet._burn(address,uint256,uint256).rBurnAmount (ManiWallet.sol#272) is too similar to ManiWallet.burn(uint256).tBurnAmount (ManiWallet.sol#289)
Variable ManiWallet.reflectionFromToken(uint256,bool).rTransferAmount (ManiWallet.sol#182) is too similar to ManiWallet._getTValues(uint256).tTransferAmount (ManiWallet.sol#305)
Variable ManiWallet._transferBothExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#216) is too similar to ManiWallet._transferStandard(address,address,uint256).tTransferAmount (ManiWallet.sol#505)
Variable ManiWallet._transferToExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#514) is too similar to ManiWallet._transferToExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#514)
Variable ManiWallet._transferFromExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#524) is too similar to ManiWallet._getValues(uint256).tTransferAmount (ManiWallet.sol#297)
Variable ManiWallet._transferFromExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#524) is too similar to ManiWallet._getTValues(uint256).tTransferAmount (ManiWallet.sol#305)
Variable ManiWallet._transferToExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#514) is too similar to ManiWallet._transferBothExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#216)
Variable ManiWallet._transferFromExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#524) is too similar to ManiWallet._transferStandard(address,address,uint256).tTransferAmount (ManiWallet.sol#505)
Variable ManiWallet._transferToExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#514) is too similar to ManiWallet._getValues(uint256).tTransferAmount (ManiWallet.sol#297)
Variable ManiWallet._transferToExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#514) is too similar to ManiWallet._getTValues(uint256).tTransferAmount (ManiWallet.sol#305)
Variable ManiWallet._transferBothExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#216) is too similar to ManiWallet._transferToExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#514)
Variable ManiWallet._transferToExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#514) is too similar to ManiWallet._transferStandard(address,address,uint256).tTransferAmount (ManiWallet.sol#505)
Variable ManiWallet._transferFromExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#524) is too similar to ManiWallet._transferBothExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#216)
Variable ManiWallet._transferStandard(address,address,uint256).rTransferAmount (ManiWallet.sol#505) is too similar to ManiWallet._getTValues(uint256).tTransferAmount (ManiWallet.sol#305)
Variable ManiWallet._transferFromExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#524) is too similar to ManiWallet._transferToExcluded(address,address,uint256).tTransferAmount (ManiWallet.sol#514)
Variable ManiWallet._transferBothExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#216) is too similar to ManiWallet._getValues(uint256).tTransferAmount (ManiWallet.sol#297)
Variable ManiWallet._transferBothExcluded(address,address,uint256).rTransferAmount (ManiWallet.sol#216) is too similar to ManiWallet._getTValues(uint256).tTransferAmount (ManiWallet.sol#305)
Prevent variables from having similar names.
Additional information: link
ManiWallet.slitherConstructorVariables() (ManiWallet.sol#14-557) uses literals with too many digits:
- _tTotal = 222200000 * 10 ** 8 (ManiWallet.sol#28)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
ManiWallet._totalBal (ManiWallet.sol#31) is never used in ManiWallet (ManiWallet.sol#14-557)
Remove unused state variables.
Additional information: link
ManiWallet._decimals (ManiWallet.sol#35) should be constant
ManiWallet._name (ManiWallet.sol#33) should be constant
ManiWallet._symbol (ManiWallet.sol#34) should be constant
ManiWallet._totalBal (ManiWallet.sol#31) should be constant
ManiWallet.burnWallet (ManiWallet.sol#49) should be constant
ManiWallet.dxSaleWallet (ManiWallet.sol#52) should be constant
ManiWallet.ownMaxHold (ManiWallet.sol#61) should be constant
ManiWallet.pinksaleWallet (ManiWallet.sol#51) should be constant
ManiWallet.teamWallet (ManiWallet.sol#50) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
name() should be declared external:
- ManiWallet.name() (ManiWallet.sol#112-114)
symbol() should be declared external:
- ManiWallet.symbol() (ManiWallet.sol#116-118)
decimals() should be declared external:
- ManiWallet.decimals() (ManiWallet.sol#120-122)
totalSupply() should be declared external:
- ManiWallet.totalSupply() (ManiWallet.sol#124-126)
transfer(address,uint256) should be declared external:
- ManiWallet.transfer(address,uint256) (ManiWallet.sol#133-136)
allowance(address,address) should be declared external:
- ManiWallet.allowance(address,address) (ManiWallet.sol#138-140)
approve(address,uint256) should be declared external:
- ManiWallet.approve(address,uint256) (ManiWallet.sol#142-145)
transferFrom(address,address,uint256) should be declared external:
- ManiWallet.transferFrom(address,address,uint256) (ManiWallet.sol#147-151)
increaseAllowance(address,uint256) should be declared external:
- ManiWallet.increaseAllowance(address,uint256) (ManiWallet.sol#153-156)
decreaseAllowance(address,uint256) should be declared external:
- ManiWallet.decreaseAllowance(address,uint256) (ManiWallet.sol#158-161)
isExcludedFromReward(address) should be declared external:
- ManiWallet.isExcludedFromReward(address) (ManiWallet.sol#163-165)
deliver(uint256) should be declared external:
- ManiWallet.deliver(uint256) (ManiWallet.sol#167-174)
reflectionFromToken(uint256,bool) should be declared external:
- ManiWallet.reflectionFromToken(uint256,bool) (ManiWallet.sol#176-185)
excludeFromReward(address) should be declared external:
- ManiWallet.excludeFromReward(address) (ManiWallet.sol#193-200)
excludeFromFee(address) should be declared external:
- ManiWallet.excludeFromFee(address) (ManiWallet.sol#226-228)
includeInFee(address) should be declared external:
- ManiWallet.includeInFee(address) (ManiWallet.sol#230-232)
changeLiquifyAmount(uint256) should be declared external:
- ManiWallet.changeLiquifyAmount(uint256) (ManiWallet.sol#246-248)
setOwnMaxRate(uint256) should be declared external:
- ManiWallet.setOwnMaxRate(uint256) (ManiWallet.sol#250-252)
setSwapAndLiquifyEnabled(bool) should be declared external:
- ManiWallet.setSwapAndLiquifyEnabled(bool) (ManiWallet.sol#254-257)
stopAllTransfer() should be declared external:
- ManiWallet.stopAllTransfer() (ManiWallet.sol#260-262)
burn(uint256) should be declared external:
- ManiWallet.burn(uint256) (ManiWallet.sol#284-294)
isExcludedFromFee(address) should be declared external:
- ManiWallet.isExcludedFromFee(address) (ManiWallet.sol#368-370)
changeRouterAddress(address) should be declared external:
- ManiWallet.changeRouterAddress(address) (ManiWallet.sol#534-536)
changeMarketingWallet(address) should be declared external:
- ManiWallet.changeMarketingWallet(address) (ManiWallet.sol#537-539)
changeAdvisorWallet(address) should be declared external:
- ManiWallet.changeAdvisorWallet(address) (ManiWallet.sol#541-543)
withdrawAnyToken(address,address,uint256) should be declared external:
- ManiWallet.withdrawAnyToken(address,address,uint256) (ManiWallet.sol#545-550)
withdrawContractBal(address) should be declared external:
- ManiWallet.withdrawContractBal(address) (ManiWallet.sol#552-554)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (Ownable.sol#54-56)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (Ownable.sol#62-65)
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 price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Telegram and Twitter accounts