Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
MetaDracarys.addLiquidity(uint256,uint256) (contracts/MetaDracarys.sol#976-986) sends eth to arbitrary user
Dangerous calls:
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in MetaDracarys._transfer(address,address,uint256) (contracts/MetaDracarys.sol#879-925):
External calls:
- swapAndLiquify(contractTokenBalance) (contracts/MetaDracarys.sol#916)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/MetaDracarys.sol#967-973)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (contracts/MetaDracarys.sol#916)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- _rOwned[_rAndD] = _rOwned[_rAndD].add(rDev) (contracts/MetaDracarys.sol#819)
- _rOwned[_projectA] = _rOwned[_projectA].add(rProject) (contracts/MetaDracarys.sol#827)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (contracts/MetaDracarys.sol#811)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (contracts/MetaDracarys.sol#1022)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (contracts/MetaDracarys.sol#1010)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (contracts/MetaDracarys.sol#709)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (contracts/MetaDracarys.sol#1011)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (contracts/MetaDracarys.sol#1036)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (contracts/MetaDracarys.sol#1037)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (contracts/MetaDracarys.sol#1024)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (contracts/MetaDracarys.sol#711)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- _rTotal = _rTotal.sub(rFee) (contracts/MetaDracarys.sol#764)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- _tOwned[_projectA] = _tOwned[_projectA].add(tProject) (contracts/MetaDracarys.sol#829)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (contracts/MetaDracarys.sol#813)
- _tOwned[_rAndD] = _tOwned[_rAndD].add(tDev) (contracts/MetaDracarys.sol#821)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (contracts/MetaDracarys.sol#1035)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (contracts/MetaDracarys.sol#708)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (contracts/MetaDracarys.sol#1023)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (contracts/MetaDracarys.sol#710)
Reentrancy in MetaDracarys.claimTokens() (contracts/MetaDracarys.sol#1092-1097):
External calls:
- _transfer(owner(),msg.sender,amountToClaim) (contracts/MetaDracarys.sol#1095)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/MetaDracarys.sol#967-973)
External calls sending eth:
- _transfer(owner(),msg.sender,amountToClaim) (contracts/MetaDracarys.sol#1095)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
State variables written after the call(s):
- _setClaimableAllowances(msg.sender,0) (contracts/MetaDracarys.sol#1096)
- _claimableTokens[addressThatCanClaim] = amount (contracts/MetaDracarys.sol#618)
Apply the check-effects-interactions pattern.
Additional information: link
MetaDracarys._projectA (contracts/MetaDracarys.sol#489) is never initialized. It is used in:
- MetaDracarys._updateProject(uint256) (contracts/MetaDracarys.sol#824-830)
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
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.
MetaDracarys.constructor() (contracts/MetaDracarys.sol#549-590) performs a multiplication on the result of a division:
-_maxTxAmount = (_tTotal / 100) * 10 ** _decimals (contracts/MetaDracarys.sol#567)
MetaDracarys.constructor() (contracts/MetaDracarys.sol#549-590) performs a multiplication on the result of a division:
-numTokensSellToAddToLiquidity = (_tTotal * 5 / 10000) * 10 ** _decimals (contracts/MetaDracarys.sol#568)
Consider ordering multiplication before division.
Additional information: link
MetaDracarys.addLiquidity(uint256,uint256) (contracts/MetaDracarys.sol#976-986) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
Ensure that all the return values of the function calls are used.
Additional information: link
MetaDracarys.allowance(address,address).owner (contracts/MetaDracarys.sol#621) shadows:
- Ownable.owner() (contracts/MetaDracarys.sol#212-214) (function)
MetaDracarys._approve(address,address,uint256).owner (contracts/MetaDracarys.sol#870) shadows:
- Ownable.owner() (contracts/MetaDracarys.sol#212-214) (function)
Rename the local variables that shadow another component.
Additional information: link
MetaDracarys.setMaxTxPercent(uint256) (contracts/MetaDracarys.sol#743-745) should emit an event for:
- _maxTxAmount = maxTxPercent * 10 ** _decimals (contracts/MetaDracarys.sol#744)
Emit an event for critical parameter changes.
Additional information: link
MetaDracarys.constructor().tokenOwner (contracts/MetaDracarys.sol#569) lacks a zero-check on :
- _rAndD = tokenOwner (contracts/MetaDracarys.sol#570)
- _owner = tokenOwner (contracts/MetaDracarys.sol#588)
MetaDracarys.setRandDA(address)._address (contracts/MetaDracarys.sol#747) lacks a zero-check on :
- _rAndD = _address (contracts/MetaDracarys.sol#748)
Check that the address is not zero.
Additional information: link
Reentrancy in MetaDracarys._transfer(address,address,uint256) (contracts/MetaDracarys.sol#879-925):
External calls:
- swapAndLiquify(contractTokenBalance) (contracts/MetaDracarys.sol#916)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/MetaDracarys.sol#967-973)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (contracts/MetaDracarys.sol#916)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- _liquidityFee = _previousLiquidityFee (contracts/MetaDracarys.sol#863)
- _liquidityFee = 0 (contracts/MetaDracarys.sol#857)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- _previousLiquidityFee = _liquidityFee (contracts/MetaDracarys.sol#853)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- _previousRAndDFee = _rAndDPool (contracts/MetaDracarys.sol#852)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- _previousTaxFee = _transactionFee (contracts/MetaDracarys.sol#851)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- _rAndDPool = _previousRAndDFee (contracts/MetaDracarys.sol#862)
- _rAndDPool = 0 (contracts/MetaDracarys.sol#856)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- _tFeeTotal = _tFeeTotal.add(tFee) (contracts/MetaDracarys.sol#765)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- _transactionFee = _previousTaxFee (contracts/MetaDracarys.sol#861)
- _transactionFee = 0 (contracts/MetaDracarys.sol#855)
Reentrancy in MetaDracarys.constructor() (contracts/MetaDracarys.sol#549-590):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (contracts/MetaDracarys.sol#576-577)
State variables written after the call(s):
- _isExcludedFromFee[tokenOwner] = true (contracts/MetaDracarys.sol#581)
- _owner = tokenOwner (contracts/MetaDracarys.sol#588)
- isTimelockExempt[msg.sender] = true (contracts/MetaDracarys.sol#584)
- isTimelockExempt[DEAD] = true (contracts/MetaDracarys.sol#585)
- isTimelockExempt[address(this)] = true (contracts/MetaDracarys.sol#586)
- uniswapV2Router = _uniswapV2Router (contracts/MetaDracarys.sol#578)
Reentrancy in MetaDracarys.setRouterAddress(address) (contracts/MetaDracarys.sol#1046-1050):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (contracts/MetaDracarys.sol#1048)
State variables written after the call(s):
- uniswapV2Router = _uniswapV2Router (contracts/MetaDracarys.sol#1049)
Reentrancy in MetaDracarys.swapAndLiquify(uint256) (contracts/MetaDracarys.sol#948-956):
External calls:
- swapTokensForEth(half) (contracts/MetaDracarys.sol#952)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/MetaDracarys.sol#967-973)
- addLiquidity(otherHalf,newBalance) (contracts/MetaDracarys.sol#954)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (contracts/MetaDracarys.sol#954)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (contracts/MetaDracarys.sol#954)
- _allowances[owner][spender] = amount (contracts/MetaDracarys.sol#874)
Reentrancy in MetaDracarys.transferFrom(address,address,uint256) (contracts/MetaDracarys.sol#635-639):
External calls:
- _transfer(sender,recipient,amount) (contracts/MetaDracarys.sol#636)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/MetaDracarys.sol#967-973)
External calls sending eth:
- _transfer(sender,recipient,amount) (contracts/MetaDracarys.sol#636)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,MetaDracarys: transfer amount exceeds allowance)) (contracts/MetaDracarys.sol#637)
- _allowances[owner][spender] = amount (contracts/MetaDracarys.sol#874)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in MetaDracarys._transfer(address,address,uint256) (contracts/MetaDracarys.sol#879-925):
External calls:
- swapAndLiquify(contractTokenBalance) (contracts/MetaDracarys.sol#916)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/MetaDracarys.sol#967-973)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (contracts/MetaDracarys.sol#916)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
Event emitted after the call(s):
- Transfer(account,address(0),amount) (contracts/MetaDracarys.sol#1068)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- Transfer(sender,recipient,tTransferAmount) (contracts/MetaDracarys.sol#1017)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- Transfer(sender,recipient,tTransferAmount) (contracts/MetaDracarys.sol#1030)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- Transfer(sender,recipient,tTransferAmount) (contracts/MetaDracarys.sol#716)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
- Transfer(sender,recipient,tTransferAmount) (contracts/MetaDracarys.sol#1043)
- _tokenTransfer(from,to,amount,takeFee) (contracts/MetaDracarys.sol#924)
Reentrancy in MetaDracarys.constructor() (contracts/MetaDracarys.sol#549-590):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (contracts/MetaDracarys.sol#576-577)
Event emitted after the call(s):
- Transfer(address(0),tokenOwner,_tTotal) (contracts/MetaDracarys.sol#589)
Reentrancy in MetaDracarys.swapAndLiquify(uint256) (contracts/MetaDracarys.sol#948-956):
External calls:
- swapTokensForEth(half) (contracts/MetaDracarys.sol#952)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/MetaDracarys.sol#967-973)
- addLiquidity(otherHalf,newBalance) (contracts/MetaDracarys.sol#954)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (contracts/MetaDracarys.sol#954)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
Event emitted after the call(s):
- Approval(owner,spender,amount) (contracts/MetaDracarys.sol#875)
- addLiquidity(otherHalf,newBalance) (contracts/MetaDracarys.sol#954)
- SwapAndLiquify(half,newBalance,otherHalf) (contracts/MetaDracarys.sol#955)
Reentrancy in MetaDracarys.transferFrom(address,address,uint256) (contracts/MetaDracarys.sol#635-639):
External calls:
- _transfer(sender,recipient,amount) (contracts/MetaDracarys.sol#636)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/MetaDracarys.sol#967-973)
External calls sending eth:
- _transfer(sender,recipient,amount) (contracts/MetaDracarys.sol#636)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (contracts/MetaDracarys.sol#978-985)
Event emitted after the call(s):
- Approval(owner,spender,amount) (contracts/MetaDracarys.sol#875)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,MetaDracarys: transfer amount exceeds allowance)) (contracts/MetaDracarys.sol#637)
Apply the check-effects-interactions pattern.
Additional information: link
Ownable.unlock() (contracts/MetaDracarys.sol#243-248) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp > _lockTime,Contract is locked.) (contracts/MetaDracarys.sol#245)
MetaDracarys._transfer(address,address,uint256) (contracts/MetaDracarys.sol#879-925) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(cooldownTimer[to] < block.timestamp,Please wait for 45 min between two transfers) (contracts/MetaDracarys.sol#894)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (contracts/MetaDracarys.sol#133-137) uses assembly
- INLINE ASM (contracts/MetaDracarys.sol#135)
Address._verifyCallResult(bool,bytes,string) (contracts/MetaDracarys.sol#185-198) uses assembly
- INLINE ASM (contracts/MetaDracarys.sol#190-193)
Do not use evm assembly.
Additional information: link
MetaDracarys.includeInReward(address) (contracts/MetaDracarys.sol#694-705) has costly operations inside a loop:
- _excluded.pop() (contracts/MetaDracarys.sol#701)
Use a local variable to hold the loop computation result.
Additional information: link
Address._verifyCallResult(bool,bytes,string) (contracts/MetaDracarys.sol#185-198) is never used and should be removed
Address.functionCall(address,bytes) (contracts/MetaDracarys.sol#145-147) is never used and should be removed
Address.functionCall(address,bytes,string) (contracts/MetaDracarys.sol#149-151) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (contracts/MetaDracarys.sol#153-155) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (contracts/MetaDracarys.sol#157-162) is never used and should be removed
Address.functionDelegateCall(address,bytes) (contracts/MetaDracarys.sol#175-177) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (contracts/MetaDracarys.sol#179-183) is never used and should be removed
Address.functionStaticCall(address,bytes) (contracts/MetaDracarys.sol#164-166) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (contracts/MetaDracarys.sol#168-172) is never used and should be removed
Address.isContract(address) (contracts/MetaDracarys.sol#133-137) is never used and should be removed
Address.sendValue(address,uint256) (contracts/MetaDracarys.sol#139-143) is never used and should be removed
Context._msgData() (contracts/MetaDracarys.sol#125-128) is never used and should be removed
MetaDracarys._afterTokenTransfer(address,address,uint256) (contracts/MetaDracarys.sol#1071-1075) is never used and should be removed
SafeMath.div(uint256,uint256,string) (contracts/MetaDracarys.sol#105-110) is never used and should be removed
SafeMath.mod(uint256,uint256) (contracts/MetaDracarys.sol#94-96) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (contracts/MetaDracarys.sol#112-117) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (contracts/MetaDracarys.sol#34-40) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (contracts/MetaDracarys.sol#61-66) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (contracts/MetaDracarys.sol#68-73) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (contracts/MetaDracarys.sol#49-59) is never used and should be removed
SafeMath.trySub(uint256,uint256) (contracts/MetaDracarys.sol#42-47) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (contracts/MetaDracarys.sol#139-143):
- (success) = recipient.call{value: amount}() (contracts/MetaDracarys.sol#141)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (contracts/MetaDracarys.sol#157-162):
- (success,returndata) = target.call{value: value}(data) (contracts/MetaDracarys.sol#160)
Low level call in Address.functionStaticCall(address,bytes,string) (contracts/MetaDracarys.sol#168-172):
- (success,returndata) = target.staticcall(data) (contracts/MetaDracarys.sol#170)
Low level call in Address.functionDelegateCall(address,bytes,string) (contracts/MetaDracarys.sol#179-183):
- (success,returndata) = target.delegatecall(data) (contracts/MetaDracarys.sol#181)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Variable Ownable._owner (contracts/MetaDracarys.sol#202) is not in mixedCase
Variable Ownable._lockTime (contracts/MetaDracarys.sol#204) is not in mixedCase
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (contracts/MetaDracarys.sol#316) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (contracts/MetaDracarys.sol#317) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (contracts/MetaDracarys.sol#331) is not in mixedCase
Function IUniswapV2Router01.WETH() (contracts/MetaDracarys.sol#349) is not in mixedCase
Parameter MetaDracarys.setRandDA(address)._address (contracts/MetaDracarys.sol#747) is not in mixedCase
Parameter MetaDracarys.addDevAddress(address)._dev (contracts/MetaDracarys.sol#751) is not in mixedCase
Parameter MetaDracarys.setSwapAndLiquifyEnabled(bool)._enabled (contracts/MetaDracarys.sol#755) is not in mixedCase
Parameter MetaDracarys.calculateTaxFee(uint256)._amount (contracts/MetaDracarys.sol#832) is not in mixedCase
Parameter MetaDracarys.calculateDevFee(uint256)._amount (contracts/MetaDracarys.sol#838) is not in mixedCase
Parameter MetaDracarys.calculateLiquidityFee(uint256)._amount (contracts/MetaDracarys.sol#844) is not in mixedCase
Variable MetaDracarys.DEAD (contracts/MetaDracarys.sol#487) is not in mixedCase
Variable MetaDracarys._transactionFee (contracts/MetaDracarys.sol#495) is not in mixedCase
Variable MetaDracarys._liquidityFee (contracts/MetaDracarys.sol#502) is not in mixedCase
Variable MetaDracarys._maxTxAmount (contracts/MetaDracarys.sol#504) is not in mixedCase
Variable MetaDracarys._minimumSupply (contracts/MetaDracarys.sol#506) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (contracts/MetaDracarys.sol#126)" inContext (contracts/MetaDracarys.sol#120-129)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (contracts/MetaDracarys.sol#353) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (contracts/MetaDracarys.sol#354)
Variable MetaDracarys.reflectionFromToken(uint256,bool).rTransferAmount (contracts/MetaDracarys.sol#674) is too similar to MetaDracarys._transferStandard(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1009)
Variable MetaDracarys._transferBothExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#707) is too similar to MetaDracarys._getValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#769)
Variable MetaDracarys._transferToExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1021) is too similar to MetaDracarys._transferToExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1021)
Variable MetaDracarys._transferBothExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#707) is too similar to MetaDracarys._transferBothExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#707)
Variable MetaDracarys.reflectionFromToken(uint256,bool).rTransferAmount (contracts/MetaDracarys.sol#674) is too similar to MetaDracarys._getTValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#778)
Variable MetaDracarys._transferToExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1021) is too similar to MetaDracarys._transferFromExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1034)
Variable MetaDracarys._transferFromExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1034) is too similar to MetaDracarys._transferFromExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1034)
Variable MetaDracarys._transferBothExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#707) is too similar to MetaDracarys._transferFromExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1034)
Variable MetaDracarys._transferToExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1021) is too similar to MetaDracarys._transferStandard(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1009)
Variable MetaDracarys.reflectionFromToken(uint256,bool).rTransferAmount (contracts/MetaDracarys.sol#674) is too similar to MetaDracarys._getValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#769)
Variable MetaDracarys.reflectionFromToken(uint256,bool).rTransferAmount (contracts/MetaDracarys.sol#674) is too similar to MetaDracarys._transferBothExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#707)
Variable MetaDracarys._transferStandard(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1009) is too similar to MetaDracarys._transferFromExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1034)
Variable MetaDracarys._transferToExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1021) is too similar to MetaDracarys._getTValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#778)
Variable MetaDracarys._transferBothExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#707) is too similar to MetaDracarys._transferStandard(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1009)
Variable MetaDracarys.reflectionFromToken(uint256,bool).rTransferAmount (contracts/MetaDracarys.sol#674) is too similar to MetaDracarys._transferToExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1021)
Variable MetaDracarys._transferStandard(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1009) is too similar to MetaDracarys._transferStandard(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1009)
Variable MetaDracarys._transferBothExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#707) is too similar to MetaDracarys._getTValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#778)
Variable MetaDracarys.reflectionFromToken(uint256,bool).rTransferAmount (contracts/MetaDracarys.sol#674) is too similar to MetaDracarys._transferFromExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1034)
Variable MetaDracarys._getValues(uint256).rTransferAmount (contracts/MetaDracarys.sol#770) is too similar to MetaDracarys._transferFromExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1034)
Variable MetaDracarys._transferToExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1021) is too similar to MetaDracarys._getValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#769)
Variable MetaDracarys._transferToExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1021) is too similar to MetaDracarys._transferBothExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#707)
Variable MetaDracarys._getValues(uint256).rTransferAmount (contracts/MetaDracarys.sol#770) is too similar to MetaDracarys._transferToExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1021)
Variable MetaDracarys._transferFromExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1034) is too similar to MetaDracarys._getTValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#778)
Variable MetaDracarys._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (contracts/MetaDracarys.sol#787) is too similar to MetaDracarys._transferToExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1021)
Variable MetaDracarys._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (contracts/MetaDracarys.sol#787) is too similar to MetaDracarys._transferFromExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1034)
Variable MetaDracarys._transferBothExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#707) is too similar to MetaDracarys._transferToExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1021)
Variable MetaDracarys._transferFromExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1034) is too similar to MetaDracarys._getValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#769)
Variable MetaDracarys._getValues(uint256).rTransferAmount (contracts/MetaDracarys.sol#770) is too similar to MetaDracarys._transferStandard(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1009)
Variable MetaDracarys._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (contracts/MetaDracarys.sol#787) is too similar to MetaDracarys._transferStandard(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1009)
Variable MetaDracarys._getValues(uint256).rTransferAmount (contracts/MetaDracarys.sol#770) is too similar to MetaDracarys._transferBothExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#707)
Variable MetaDracarys._transferStandard(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1009) is too similar to MetaDracarys._getTValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#778)
Variable MetaDracarys._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (contracts/MetaDracarys.sol#787) is too similar to MetaDracarys._transferBothExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#707)
Variable MetaDracarys._transferStandard(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1009) is too similar to MetaDracarys._getValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#769)
Variable MetaDracarys._transferFromExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1034) is too similar to MetaDracarys._transferToExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1021)
Variable MetaDracarys._getValues(uint256).rTransferAmount (contracts/MetaDracarys.sol#770) is too similar to MetaDracarys._getTValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#778)
Variable MetaDracarys._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (contracts/MetaDracarys.sol#787) is too similar to MetaDracarys._getTValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#778)
Variable MetaDracarys._transferFromExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1034) is too similar to MetaDracarys._transferStandard(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1009)
Variable MetaDracarys._transferFromExcluded(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1034) is too similar to MetaDracarys._transferBothExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#707)
Variable MetaDracarys._transferStandard(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1009) is too similar to MetaDracarys._transferToExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#1021)
Variable MetaDracarys._getValues(uint256).rTransferAmount (contracts/MetaDracarys.sol#770) is too similar to MetaDracarys._getValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#769)
Variable MetaDracarys._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (contracts/MetaDracarys.sol#787) is too similar to MetaDracarys._getValues(uint256).tTransferAmount (contracts/MetaDracarys.sol#769)
Variable MetaDracarys._transferStandard(address,address,uint256).rTransferAmount (contracts/MetaDracarys.sol#1009) is too similar to MetaDracarys._transferBothExcluded(address,address,uint256).tTransferAmount (contracts/MetaDracarys.sol#707)
Prevent variables from having similar names.
Additional information: link
MetaDracarys.constructor() (contracts/MetaDracarys.sol#549-590) uses literals with too many digits:
- _supply = 21000000000000 (contracts/MetaDracarys.sol#555)
MetaDracarys.slitherConstructorVariables() (contracts/MetaDracarys.sol#481-1098) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (contracts/MetaDracarys.sol#487)
MetaDracarys.slitherConstructorVariables() (contracts/MetaDracarys.sol#481-1098) uses literals with too many digits:
- _minimumSupply = 210000000000 (contracts/MetaDracarys.sol#506)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
MetaDracarys._previousProjectFee (contracts/MetaDracarys.sol#501) is never used in MetaDracarys (contracts/MetaDracarys.sol#481-1098)
MetaDracarys.isDividendExempt (contracts/MetaDracarys.sol#530) is never used in MetaDracarys (contracts/MetaDracarys.sol#481-1098)
Remove unused state variables.
Additional information: link
MetaDracarys.DEAD (contracts/MetaDracarys.sol#487) should be constant
MetaDracarys._minimumSupply (contracts/MetaDracarys.sol#506) should be constant
MetaDracarys._previousProjectFee (contracts/MetaDracarys.sol#501) should be constant
MetaDracarys._projectA (contracts/MetaDracarys.sol#489) should be constant
MetaDracarys.buyCooldownEnabled (contracts/MetaDracarys.sol#515) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (contracts/MetaDracarys.sol#221-224)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (contracts/MetaDracarys.sol#227-231)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (contracts/MetaDracarys.sol#235-240)
unlock() should be declared external:
- Ownable.unlock() (contracts/MetaDracarys.sol#243-248)
pause() should be declared external:
- Pausable.pause() (contracts/MetaDracarys.sol#277-280)
unpause() should be declared external:
- Pausable.unpause() (contracts/MetaDracarys.sol#285-288)
name() should be declared external:
- MetaDracarys.name() (contracts/MetaDracarys.sol#592-594)
symbol() should be declared external:
- MetaDracarys.symbol() (contracts/MetaDracarys.sol#596-598)
decimals() should be declared external:
- MetaDracarys.decimals() (contracts/MetaDracarys.sol#600-602)
setClaimableAllowances(address,uint256) should be declared external:
- MetaDracarys.setClaimableAllowances(address,uint256) (contracts/MetaDracarys.sol#613-615)
allowance(address,address) should be declared external:
- MetaDracarys.allowance(address,address) (contracts/MetaDracarys.sol#621-623)
transfer(address,uint256) should be declared external:
- MetaDracarys.transfer(address,uint256) (contracts/MetaDracarys.sol#625-628)
approve(address,uint256) should be declared external:
- MetaDracarys.approve(address,uint256) (contracts/MetaDracarys.sol#630-633)
transferFrom(address,address,uint256) should be declared external:
- MetaDracarys.transferFrom(address,address,uint256) (contracts/MetaDracarys.sol#635-639)
increaseAllowance(address,uint256) should be declared external:
- MetaDracarys.increaseAllowance(address,uint256) (contracts/MetaDracarys.sol#641-644)
decreaseAllowance(address,uint256) should be declared external:
- MetaDracarys.decreaseAllowance(address,uint256) (contracts/MetaDracarys.sol#646-649)
isExcludedFromReward(address) should be declared external:
- MetaDracarys.isExcludedFromReward(address) (contracts/MetaDracarys.sol#651-653)
totalFees() should be declared external:
- MetaDracarys.totalFees() (contracts/MetaDracarys.sol#655-657)
deliver(uint256) should be declared external:
- MetaDracarys.deliver(uint256) (contracts/MetaDracarys.sol#659-666)
reflectionFromToken(uint256,bool) should be declared external:
- MetaDracarys.reflectionFromToken(uint256,bool) (contracts/MetaDracarys.sol#668-677)
excludeFromReward(address) should be declared external:
- MetaDracarys.excludeFromReward(address) (contracts/MetaDracarys.sol#685-692)
excludeFromFee(address) should be declared external:
- MetaDracarys.excludeFromFee(address) (contracts/MetaDracarys.sol#719-721)
includeInFee(address) should be declared external:
- MetaDracarys.includeInFee(address) (contracts/MetaDracarys.sol#723-725)
setMaxTxPercent(uint256) should be declared external:
- MetaDracarys.setMaxTxPercent(uint256) (contracts/MetaDracarys.sol#743-745)
setRandDA(address) should be declared external:
- MetaDracarys.setRandDA(address) (contracts/MetaDracarys.sol#747-749)
addDevAddress(address) should be declared external:
- MetaDracarys.addDevAddress(address) (contracts/MetaDracarys.sol#751-753)
setSwapAndLiquifyEnabled(bool) should be declared external:
- MetaDracarys.setSwapAndLiquifyEnabled(bool) (contracts/MetaDracarys.sol#755-758)
isExcludedFromFee(address) should be declared external:
- MetaDracarys.isExcludedFromFee(address) (contracts/MetaDracarys.sol#866-868)
setCooldownTimerInterval(uint8) should be declared external:
- MetaDracarys.setCooldownTimerInterval(uint8) (contracts/MetaDracarys.sol#936-938)
mxTx() should be declared external:
- MetaDracarys.mxTx() (contracts/MetaDracarys.sol#958-960)
claimTokens() should be declared external:
- MetaDracarys.claimTokens() (contracts/MetaDracarys.sol#1092-1097)
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