Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
DHGKing._distributeEth(uint256) (contracts/DHGKing.sol#394-406) sends eth to arbitrary user
Dangerous calls:
- address(marketAddress).transfer(address(this).balance / 2) (contracts/DHGKing.sol#404)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#405)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in DHGKing._transfer(address,address,uint256) (contracts/DHGKing.sol#268-299):
External calls:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountDesire,0,path,to,block.timestamp) (contracts/DHGKing.sol#411)
External calls sending eth:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
- address(marketAddress).transfer(address(this).balance / 2) (contracts/DHGKing.sol#404)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#405)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#387)
State variables written after the call(s):
- super._move(from,address(this),feeAmount) (contracts/DHGKing.sol#288)
- _balances[sender] = senderBalance - amount (contracts/DHGKing.sol#132)
- _balances[recipient] += amount (contracts/DHGKing.sol#133)
Reentrancy in DHGKing._transfer(address,address,uint256) (contracts/DHGKing.sol#268-299):
External calls:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountDesire,0,path,to,block.timestamp) (contracts/DHGKing.sol#411)
- distributeDogeToken() (contracts/DHGKing.sol#289)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/DHGKing.sol#338-344)
- token.transfer(dogePrizeList[i],dogePrizePerUser) (contracts/DHGKing.sol#322)
- token.transfer(devDogeAddress,token.balanceOf(address(this))) (contracts/DHGKing.sol#325)
External calls sending eth:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
- address(marketAddress).transfer(address(this).balance / 2) (contracts/DHGKing.sol#404)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#405)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#387)
State variables written after the call(s):
- super._transfer(from,to,amount - feeAmount) (contracts/DHGKing.sol#298)
- _balances[sender] = senderBalance - amount (contracts/DHGKing.sol#132)
- _balances[recipient] += amount (contracts/DHGKing.sol#133)
- distributeDogeToken() (contracts/DHGKing.sol#289)
- dogePoolTotal = 0 (contracts/DHGKing.sol#308)
- handDogeFees(amount) (contracts/DHGKing.sol#290)
- dogePoolTotal += feePoolAmount (contracts/DHGKing.sol#376)
- super._transfer(from,to,amount - feeAmount) (contracts/DHGKing.sol#298)
- dogePrizeList.push(user) (contracts/DHGKing.sol#359)
- dogePrizeList[i] = dogePrizeList[dogePrizeList.length - 1] (contracts/DHGKing.sol#366)
- dogePrizeList.pop() (contracts/DHGKing.sol#367)
Apply the check-effects-interactions pattern.
Additional information: link
system.rescueLossToken(IERC20,address) (contracts/DHGKing.sol#180) ignores return value by token_.transfer(_recipient,token_.balanceOf(address(this))) (contracts/DHGKing.sol#180)
system.rescueLossTokenWithAmount(IERC20,address,uint256) (contracts/DHGKing.sol#182) ignores return value by token_.transfer(_recipient,amount) (contracts/DHGKing.sol#182)
DHGKing.aliasDoge() (contracts/DHGKing.sol#313-326) ignores return value by token.transfer(dogePrizeList[i],dogePrizePerUser) (contracts/DHGKing.sol#322)
DHGKing.aliasDoge() (contracts/DHGKing.sol#313-326) ignores return value by token.transfer(devDogeAddress,token.balanceOf(address(this))) (contracts/DHGKing.sol#325)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
DHGKing.aliasDoge() (contracts/DHGKing.sol#313-326) uses a dangerous strict equality:
- dogeAmount == 0 (contracts/DHGKing.sol#316)
Don't use strict equality to determine if an account has enough Ether or tokens.
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.
Combination 2: Unchecked transfer + 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.
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.
DHGKing.DogeContract (contracts/DHGKing.sol#211) should be constant
DHGKing.burnRate (contracts/DHGKing.sol#223) should be constant
DHGKing.divBase (contracts/DHGKing.sol#218) should be constant
DHGKing.dogePrizeThreshold (contracts/DHGKing.sol#214) should be constant
DHGKing.dogeSwapThreshold (contracts/DHGKing.sol#213) should be constant
DHGKing.limitBuyAmount (contracts/DHGKing.sol#221) should be constant
DHGKing.limitSeconds (contracts/DHGKing.sol#222) should be constant
DHGKing.router_ (contracts/DHGKing.sol#212) should be constant
DHGKing.swapThreshold (contracts/DHGKing.sol#217) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
DHGKing.aliasDoge() (contracts/DHGKing.sol#313-326) performs a multiplication on the result of a division:
-prize = 750 * dogeAmount / divBase (contracts/DHGKing.sol#317)
-dogePrizePerUser = prize * balanceOf(dogePrizeList[i]) / amount (contracts/DHGKing.sol#321)
DHGKing.handSwap() (contracts/DHGKing.sol#378-393) performs a multiplication on the result of a division:
-amountDesire = amountDesireTotal * 750 / divBase (contracts/DHGKing.sol#384)
-WETHAmount * amountDesire / TOKENAmount >= swapThreshold (contracts/DHGKing.sol#386)
Consider ordering multiplication before division.
Additional information: link
DHGKing._transfer(address,address,uint256).feeAmount (contracts/DHGKing.sol#269) is a local variable never initialized
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
DHGKing._distributeEth(uint256) (contracts/DHGKing.sol#394-406) ignores return value by uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
Ensure that all the return values of the function calls are used.
Additional information: link
system.rescueLossChain(address)._recipient (contracts/DHGKing.sol#181) lacks a zero-check on :
- _recipient.transfer(address(this).balance) (contracts/DHGKing.sol#181)
system.rescueLossChainWithAmount(address,uint256)._recipient (contracts/DHGKing.sol#183) lacks a zero-check on :
- _recipient.transfer(amount) (contracts/DHGKing.sol#183)
Check that the address is not zero.
Additional information: link
Reentrancy in DHGKing._transfer(address,address,uint256) (contracts/DHGKing.sol#268-299):
External calls:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountDesire,0,path,to,block.timestamp) (contracts/DHGKing.sol#411)
- distributeDogeToken() (contracts/DHGKing.sol#289)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/DHGKing.sol#338-344)
- token.transfer(dogePrizeList[i],dogePrizePerUser) (contracts/DHGKing.sol#322)
- token.transfer(devDogeAddress,token.balanceOf(address(this))) (contracts/DHGKing.sol#325)
External calls sending eth:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
- address(marketAddress).transfer(address(this).balance / 2) (contracts/DHGKing.sol#404)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#405)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#387)
State variables written after the call(s):
- super._transfer(from,to,amount - feeAmount) (contracts/DHGKing.sol#298)
- isInDogePrizeList[user] = true (contracts/DHGKing.sol#358)
- isInDogePrizeList[user] = false (contracts/DHGKing.sol#363)
Reentrancy in DHGKing.constructor(address[]) (contracts/DHGKing.sol#225-235):
External calls:
- initIRouter() (contracts/DHGKing.sol#229)
- uniswapPair = IFactory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (contracts/DHGKing.sol#265)
State variables written after the call(s):
- _approve(address(this),address(uniswapV2Router),~ uint256(0)) (contracts/DHGKing.sol#233)
- _allowances[owner][spender] = amount (contracts/DHGKing.sol#155)
- _approve(owner(),address(uniswapV2Router),~ uint256(0)) (contracts/DHGKing.sol#234)
- _allowances[owner][spender] = amount (contracts/DHGKing.sol#155)
- super._mint(liquidityAddress,500000000000000000000000 + 5000000000000000000000) (contracts/DHGKing.sol#231)
- _balances[account] += amount (contracts/DHGKing.sol#140)
- super._mint(owner(),500000000000000000000000 - 5000000000000000000000) (contracts/DHGKing.sol#232)
- _balances[account] += amount (contracts/DHGKing.sol#140)
- super._mint(liquidityAddress,500000000000000000000000 + 5000000000000000000000) (contracts/DHGKing.sol#231)
- _totalSupply += amount (contracts/DHGKing.sol#139)
- super._mint(owner(),500000000000000000000000 - 5000000000000000000000) (contracts/DHGKing.sol#232)
- _totalSupply += amount (contracts/DHGKing.sol#139)
- initAddrs(addrs) (contracts/DHGKing.sol#230)
- devDogeAddress = addrs[0] (contracts/DHGKing.sol#257)
- initAddrs(addrs) (contracts/DHGKing.sol#230)
- devEthAddress = addrs[1] (contracts/DHGKing.sol#258)
- initAddrs(addrs) (contracts/DHGKing.sol#230)
- isExcludeFee[addr[i]] = b (contracts/DHGKing.sol#252)
- initAddrs(addrs) (contracts/DHGKing.sol#230)
- liquidityAddress = addrs[4] (contracts/DHGKing.sol#261)
- initAddrs(addrs) (contracts/DHGKing.sol#230)
- marketAddress = addrs[2] (contracts/DHGKing.sol#259)
- initAddrs(addrs) (contracts/DHGKing.sol#230)
- returnAddress = addrs[3] (contracts/DHGKing.sol#260)
Reentrancy in DHGKing.initIRouter() (contracts/DHGKing.sol#263-267):
External calls:
- uniswapPair = IFactory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (contracts/DHGKing.sol#265)
State variables written after the call(s):
- isExcludeFee[uniswapPair] = true (contracts/DHGKing.sol#266)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in DHGKing._transfer(address,address,uint256) (contracts/DHGKing.sol#268-299):
External calls:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountDesire,0,path,to,block.timestamp) (contracts/DHGKing.sol#411)
External calls sending eth:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
- address(marketAddress).transfer(address(this).balance / 2) (contracts/DHGKing.sol#404)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#405)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#387)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (contracts/DHGKing.sol#134)
- super._move(from,address(this),feeAmount) (contracts/DHGKing.sol#288)
Reentrancy in DHGKing._transfer(address,address,uint256) (contracts/DHGKing.sol#268-299):
External calls:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountDesire,0,path,to,block.timestamp) (contracts/DHGKing.sol#411)
- distributeDogeToken() (contracts/DHGKing.sol#289)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/DHGKing.sol#338-344)
- token.transfer(dogePrizeList[i],dogePrizePerUser) (contracts/DHGKing.sol#322)
- token.transfer(devDogeAddress,token.balanceOf(address(this))) (contracts/DHGKing.sol#325)
External calls sending eth:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
- address(marketAddress).transfer(address(this).balance / 2) (contracts/DHGKing.sol#404)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#405)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#387)
Event emitted after the call(s):
- DistributeDogeToken(dogePrizeList[i],dogePrizePerUser) (contracts/DHGKing.sol#323)
- distributeDogeToken() (contracts/DHGKing.sol#289)
- Transfer(sender,recipient,amount) (contracts/DHGKing.sol#134)
- super._transfer(from,to,amount - feeAmount) (contracts/DHGKing.sol#298)
Reentrancy in DHGKing.aliasDoge() (contracts/DHGKing.sol#313-326):
External calls:
- token.transfer(dogePrizeList[i],dogePrizePerUser) (contracts/DHGKing.sol#322)
Event emitted after the call(s):
- DistributeDogeToken(dogePrizeList[i],dogePrizePerUser) (contracts/DHGKing.sol#323)
Reentrancy in DHGKing.constructor(address[]) (contracts/DHGKing.sol#225-235):
External calls:
- initIRouter() (contracts/DHGKing.sol#229)
- uniswapPair = IFactory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (contracts/DHGKing.sol#265)
Event emitted after the call(s):
- Approval(owner,spender,amount) (contracts/DHGKing.sol#156)
- _approve(owner(),address(uniswapV2Router),~ uint256(0)) (contracts/DHGKing.sol#234)
- Approval(owner,spender,amount) (contracts/DHGKing.sol#156)
- _approve(address(this),address(uniswapV2Router),~ uint256(0)) (contracts/DHGKing.sol#233)
- Transfer(address(0),account,amount) (contracts/DHGKing.sol#141)
- super._mint(liquidityAddress,500000000000000000000000 + 5000000000000000000000) (contracts/DHGKing.sol#231)
- Transfer(address(0),account,amount) (contracts/DHGKing.sol#141)
- super._mint(owner(),500000000000000000000000 - 5000000000000000000000) (contracts/DHGKing.sol#232)
Reentrancy in DHGKing.distributeDogeToken() (contracts/DHGKing.sol#300-312):
External calls:
- swapTokensForDoge(amountDesire) (contracts/DHGKing.sol#309)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (contracts/DHGKing.sol#338-344)
- aliasDoge() (contracts/DHGKing.sol#310)
- token.transfer(dogePrizeList[i],dogePrizePerUser) (contracts/DHGKing.sol#322)
- token.transfer(devDogeAddress,token.balanceOf(address(this))) (contracts/DHGKing.sol#325)
Event emitted after the call(s):
- DistributeDogeToken(dogePrizeList[i],dogePrizePerUser) (contracts/DHGKing.sol#323)
- aliasDoge() (contracts/DHGKing.sol#310)
Apply the check-effects-interactions pattern.
Additional information: link
DHGKing._transfer(address,address,uint256) (contracts/DHGKing.sol#268-299) uses timestamp for comparisons
Dangerous comparisons:
- block.timestamp < limitTimeBefore (contracts/DHGKing.sol#273)
- block.timestamp < limitTimeBefore (contracts/DHGKing.sol#284)
Avoid relying on block.timestamp.
Additional information: link
Context._msgData() (contracts/DHGKing.sol#38-41) is never used and should be removed
ERC20._afterTokenTransfer(address,address,uint256) (contracts/DHGKing.sol#159) is never used and should be removed
ERC20._burn(address,uint256) (contracts/DHGKing.sol#143-151) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (contracts/DHGKing.sol#2) 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
Function IRouter.WETH() (contracts/DHGKing.sol#5) is not in mixedCase
Contract system (contracts/DHGKing.sol#177-184) is not in CapWords
Parameter system.rescueLossToken(IERC20,address)._recipient (contracts/DHGKing.sol#180) is not in mixedCase
Parameter system.rescueLossChain(address)._recipient (contracts/DHGKing.sol#181) is not in mixedCase
Parameter system.rescueLossTokenWithAmount(IERC20,address,uint256)._recipient (contracts/DHGKing.sol#182) is not in mixedCase
Parameter system.rescueLossChainWithAmount(address,uint256)._recipient (contracts/DHGKing.sol#183) is not in mixedCase
Variable DHGKing.DogeContract (contracts/DHGKing.sol#211) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (contracts/DHGKing.sol#39)" inContext (contracts/DHGKing.sol#34-42)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in DHGKing._transfer(address,address,uint256) (contracts/DHGKing.sol#268-299):
External calls:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- address(marketAddress).transfer(address(this).balance / 2) (contracts/DHGKing.sol#404)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#405)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#387)
External calls sending eth:
- swapped = handSwap() (contracts/DHGKing.sol#286)
- uniswapV2Router.addLiquidityETH{value: ethLiquidityAmount}(address(this),tokenLiquidityAmount,0,0,returnAddress,block.timestamp) (contracts/DHGKing.sol#396-403)
- address(marketAddress).transfer(address(this).balance / 2) (contracts/DHGKing.sol#404)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#405)
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#387)
State variables written after the call(s):
- super._move(from,address(this),feeAmount) (contracts/DHGKing.sol#288)
- _balances[sender] = senderBalance - amount (contracts/DHGKing.sol#132)
- _balances[recipient] += amount (contracts/DHGKing.sol#133)
- super._transfer(from,to,amount - feeAmount) (contracts/DHGKing.sol#298)
- _balances[sender] = senderBalance - amount (contracts/DHGKing.sol#132)
- _balances[recipient] += amount (contracts/DHGKing.sol#133)
- distributeDogeToken() (contracts/DHGKing.sol#289)
- dogePoolTotal = 0 (contracts/DHGKing.sol#308)
- handDogeFees(amount) (contracts/DHGKing.sol#290)
- dogePoolTotal += feePoolAmount (contracts/DHGKing.sol#376)
- super._transfer(from,to,amount - feeAmount) (contracts/DHGKing.sol#298)
- dogePrizeList.push(user) (contracts/DHGKing.sol#359)
- dogePrizeList[i] = dogePrizeList[dogePrizeList.length - 1] (contracts/DHGKing.sol#366)
- dogePrizeList.pop() (contracts/DHGKing.sol#367)
- super._transfer(from,to,amount - feeAmount) (contracts/DHGKing.sol#298)
- isInDogePrizeList[user] = true (contracts/DHGKing.sol#358)
- isInDogePrizeList[user] = false (contracts/DHGKing.sol#363)
Event emitted after the call(s):
- DistributeDogeToken(dogePrizeList[i],dogePrizePerUser) (contracts/DHGKing.sol#323)
- distributeDogeToken() (contracts/DHGKing.sol#289)
- Transfer(sender,recipient,amount) (contracts/DHGKing.sol#134)
- super._move(from,address(this),feeAmount) (contracts/DHGKing.sol#288)
- Transfer(sender,recipient,amount) (contracts/DHGKing.sol#134)
- super._transfer(from,to,amount - feeAmount) (contracts/DHGKing.sol#298)
Reentrancy in DHGKing.handSwap() (contracts/DHGKing.sol#378-393):
External calls:
- address(devEthAddress).transfer(address(this).balance) (contracts/DHGKing.sol#387)
State variables written after the call(s):
- _handSwap(amountDesire,address(this)) (contracts/DHGKing.sol#388)
- _status = _ENTERED (contracts/DHGKing.sol#171)
- _status = _NOT_ENTERED (contracts/DHGKing.sol#173)
Apply the check-effects-interactions pattern.
Additional information: link
DHGKing._transfer(address,address,uint256) (contracts/DHGKing.sol#268-299) uses literals with too many digits:
- super._move(from,0x000000000000000000000000000000000000dEaD,feeAmount) (contracts/DHGKing.sol#295)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (contracts/DHGKing.sol#56-58)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (contracts/DHGKing.sol#59-62)
name() should be declared external:
- ERC20.name() (contracts/DHGKing.sol#79-81)
symbol() should be declared external:
- ERC20.symbol() (contracts/DHGKing.sol#82-84)
decimals() should be declared external:
- ERC20.decimals() (contracts/DHGKing.sol#85-87)
totalSupply() should be declared external:
- ERC20.totalSupply() (contracts/DHGKing.sol#88-90)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (contracts/DHGKing.sol#94-97)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (contracts/DHGKing.sol#98-100)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (contracts/DHGKing.sol#101-104)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (contracts/DHGKing.sol#105-111)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (contracts/DHGKing.sol#112-115)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (contracts/DHGKing.sol#116-121)
markBot(address,bool) should be declared external:
- BotKiller.markBot(address,bool) (contracts/DHGKing.sol#192)
markBots(address[],bool) should be declared external:
- BotKiller.markBots(address[],bool) (contracts/DHGKing.sol#193-197)
isBot(address) should be declared external:
- BotKiller.isBot(address) (contracts/DHGKing.sol#198)
swapStart(bool) should be declared external:
- DHGKing.swapStart(bool) (contracts/DHGKing.sol#236-238)
closeBotCheck() should be declared external:
- DHGKing.closeBotCheck() (contracts/DHGKing.sol#239-241)
closeBotCheckAndPause() should be declared external:
- DHGKing.closeBotCheckAndPause() (contracts/DHGKing.sol#242-245)
swapStartAndBuyLimit() should be declared external:
- DHGKing.swapStartAndBuyLimit() (contracts/DHGKing.sol#246-249)
getDogePrizeListLength() should be declared external:
- DHGKing.getDogePrizeListLength() (contracts/DHGKing.sol#346-348)
airdrop(uint256,address[]) should be declared external:
- DHGKing.airdrop(uint256,address[]) (contracts/DHGKing.sol#422-426)
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