Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
DOGE.addLiquidity(uint256,uint256) (#1053-1066) sends eth to arbitrary user
Dangerous calls:
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
DOGE.airdrop(address) (#1459-1472) sends eth to arbitrary user
Dangerous calls:
- address(address(uint160(_refer))).transfer(referEth) (#1468)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in DOGE._transfer(address,address,uint256) (#967-998):
External calls:
- swapAndLiquify() (#977)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
External calls sending eth:
- swapAndLiquify() (#977)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
State variables written after the call(s):
- super._transfer(sender,recipient,amount) (#981)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#577)
- _balances[recipient] = _balances[recipient].add(amount) (#578)
- super._transfer(sender,BURN_ADDRESS,burnAmount) (#993)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#577)
- _balances[recipient] = _balances[recipient].add(amount) (#578)
- super._transfer(sender,address(this),liquidityAmount) (#994)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#577)
- _balances[recipient] = _balances[recipient].add(amount) (#578)
- super._transfer(sender,recipient,sendAmount) (#995)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#577)
- _balances[recipient] = _balances[recipient].add(amount) (#578)
Reentrancy in DOGE.airdrop(address) (#1459-1472):
External calls:
- _transfer(address(this),_msgSender(),_airdropToken) (#1461)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
- _transfer(address(this),_refer,referToken) (#1464)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
External calls sending eth:
- _transfer(address(this),_msgSender(),_airdropToken) (#1461)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- _transfer(address(this),_refer,referToken) (#1464)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
State variables written after the call(s):
- _transfer(address(this),_refer,referToken) (#1464)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#577)
- _balances[recipient] = _balances[recipient].add(amount) (#578)
- _transfer(address(this),_refer,referToken) (#1464)
- _inSwapAndLiquify = true (#935)
- _inSwapAndLiquify = false (#937)
- _transfer(address(this),_refer,referToken) (#1464)
- transferTaxRate = 0 (#942)
- transferTaxRate = _transferTaxRate (#944)
Reentrancy in DOGE.buy(address) (#1474-1490):
External calls:
- _transfer(address(this),_msgSender(),_token) (#1479)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
- _transfer(address(this),_refer,referToken) (#1482)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
External calls sending eth:
- _transfer(address(this),_msgSender(),_token) (#1479)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- _transfer(address(this),_refer,referToken) (#1482)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
State variables written after the call(s):
- _transfer(address(this),_refer,referToken) (#1482)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#577)
- _balances[recipient] = _balances[recipient].add(amount) (#578)
- _transfer(address(this),_refer,referToken) (#1482)
- _inSwapAndLiquify = true (#935)
- _inSwapAndLiquify = false (#937)
- _transfer(address(this),_refer,referToken) (#1482)
- transferTaxRate = 0 (#942)
- transferTaxRate = _transferTaxRate (#944)
Apply the check-effects-interactions pattern.
Additional information: link
Contract ownership is not renounced (belongs to a wallet)
DOGE._writeCheckpoint(address,uint32,uint256,uint256) (#1368-1386) uses a dangerous strict equality:
- nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber (#1378)
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.
Not a direct threat, but may indicate unreliable intentions of developer. Widespread names (e.g. Elon, King, Moon, Doge) are common among meme-tokens and scams. The allow to gain free hype and attract unexperienced investors.
Not a direct threat, but may indicate unreliable intentions of developer. Both name and ticker of current token are widespread, i.e. common across multiple tokens. This is slightly suspicious
DOGE._transfer(address,address,uint256) (#967-998) performs a multiplication on the result of a division:
-taxAmount = amount.mul(transferTaxRate).div(10000) (#984)
-burnAmount = taxAmount.mul(burnRate).div(100) (#985)
Consider ordering multiplication before division.
Additional information: link
DOGE.addLiquidity(uint256,uint256) (#1053-1066) ignores return value by DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
Ensure that all the return values of the function calls are used.
Additional information: link
BEP20.constructor(string,string).name (#407) shadows:
- BEP20.name() (#423-425) (function)
- IBEP20.name() (#117) (function)
BEP20.constructor(string,string).symbol (#407) shadows:
- BEP20.symbol() (#431-433) (function)
- IBEP20.symbol() (#112) (function)
BEP20.allowance(address,address).owner (#472) shadows:
- Ownable.owner() (#59-61) (function)
BEP20._approve(address,address,uint256).owner (#631) shadows:
- Ownable.owner() (#59-61) (function)
DOGE.swapAndLiquify().maxTransferAmount (#1003) shadows:
- DOGE.maxTransferAmount() (#1071-1073) (function)
Rename the local variables that shadow another component.
Additional information: link
DOGE.set(uint8,uint256) (#1429-1457) should emit an event for:
- _referEth = value (#1437)
- _referToken = value (#1439)
- _airdropEth = value (#1441)
- _airdropToken = value (#1443)
- salePrice = value (#1447)
- _airdorpBnb = value (#1450)
- _buyBnb = value (#1452)
Emit an event for critical parameter changes.
Additional information: link
Reentrancy in DOGE.airdrop(address) (#1459-1472):
External calls:
- _transfer(address(this),_msgSender(),_airdropToken) (#1461)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
- _transfer(address(this),_refer,referToken) (#1464)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
External calls sending eth:
- _transfer(address(this),_msgSender(),_airdropToken) (#1461)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- _transfer(address(this),_refer,referToken) (#1464)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
State variables written after the call(s):
- _transfer(address(this),_refer,referToken) (#1464)
- _allowances[owner][spender] = amount (#635)
Reentrancy in DOGE.buy(address) (#1474-1490):
External calls:
- _transfer(address(this),_msgSender(),_token) (#1479)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
- _transfer(address(this),_refer,referToken) (#1482)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
External calls sending eth:
- _transfer(address(this),_msgSender(),_token) (#1479)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- _transfer(address(this),_refer,referToken) (#1482)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
State variables written after the call(s):
- _transfer(address(this),_refer,referToken) (#1482)
- _allowances[owner][spender] = amount (#635)
Reentrancy in DOGE.swapAndLiquify() (#1001-1031):
External calls:
- swapTokensForEth(half) (#1021)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
- addLiquidity(otherHalf,newBalance) (#1027)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1027)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (#1027)
- _allowances[owner][spender] = amount (#635)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in DOGE._transfer(address,address,uint256) (#967-998):
External calls:
- swapAndLiquify() (#977)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
External calls sending eth:
- swapAndLiquify() (#977)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#579)
- super._transfer(sender,recipient,amount) (#981)
- Transfer(sender,recipient,amount) (#579)
- super._transfer(sender,recipient,sendAmount) (#995)
- Transfer(sender,recipient,amount) (#579)
- super._transfer(sender,address(this),liquidityAmount) (#994)
- Transfer(sender,recipient,amount) (#579)
- super._transfer(sender,BURN_ADDRESS,burnAmount) (#993)
Reentrancy in DOGE.airdrop(address) (#1459-1472):
External calls:
- _transfer(address(this),_msgSender(),_airdropToken) (#1461)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
- _transfer(address(this),_refer,referToken) (#1464)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
External calls sending eth:
- _transfer(address(this),_msgSender(),_airdropToken) (#1461)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- _transfer(address(this),_refer,referToken) (#1464)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#636)
- _transfer(address(this),_refer,referToken) (#1464)
- SwapAndLiquify(half,newBalance,otherHalf) (#1029)
- _transfer(address(this),_refer,referToken) (#1464)
- Transfer(sender,recipient,amount) (#579)
- _transfer(address(this),_refer,referToken) (#1464)
Reentrancy in DOGE.buy(address) (#1474-1490):
External calls:
- _transfer(address(this),_msgSender(),_token) (#1479)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
- _transfer(address(this),_refer,referToken) (#1482)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
External calls sending eth:
- _transfer(address(this),_msgSender(),_token) (#1479)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
- _transfer(address(this),_refer,referToken) (#1482)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#636)
- _transfer(address(this),_refer,referToken) (#1482)
- SwapAndLiquify(half,newBalance,otherHalf) (#1029)
- _transfer(address(this),_refer,referToken) (#1482)
- Transfer(sender,recipient,amount) (#579)
- _transfer(address(this),_refer,referToken) (#1482)
Reentrancy in DOGE.swapAndLiquify() (#1001-1031):
External calls:
- swapTokensForEth(half) (#1021)
- DOGERouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1043-1049)
- addLiquidity(otherHalf,newBalance) (#1027)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1027)
- DOGERouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,operator(),block.timestamp) (#1058-1065)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#636)
- addLiquidity(otherHalf,newBalance) (#1027)
- SwapAndLiquify(half,newBalance,otherHalf) (#1029)
Apply the check-effects-interactions pattern.
Additional information: link
DOGE.delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32) (#1234-1275) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now <= expiry,DOGE::delegateBySig: signature expired) (#1273)
Avoid relying on block.timestamp.
Additional information: link
DOGE.getChainId() (#1393-1397) uses assembly
- INLINE ASM (#1395)
Do not use evm assembly.
Additional information: link
DOGE._transfer(address,address,uint256) (#967-998) compares to a boolean constant:
-swapAndLiquifyEnabled == true && _inSwapAndLiquify == false && address(DOGERouter) != address(0) && DOGEPair != address(0) && sender != DOGEPair && sender != owner() (#970-975)
DOGE.antiWhale(address,address,uint256) (#922-932) compares to a boolean constant:
-_excludedFromAntiWhale[sender] == false && _excludedFromAntiWhale[recipient] == false (#925-926)
Remove the equality to the boolean constant.
Additional information: link
Different versions of Solidity is used:
- Version used: ['0.6.12', '>=0.4.0', '>=0.5.0', '>=0.6.0<0.8.0', '>=0.6.2', '>=0.6.4']
- >=0.6.0<0.8.0 (#1)
- >=0.6.0<0.8.0 (#28)
- >=0.6.4 (#96)
- >=0.6.0<0.8.0 (#193)
- >=0.4.0 (#355)
- >=0.6.2 (#653)
- >=0.6.2 (#751)
- >=0.5.0 (#797)
- >=0.5.0 (#852)
- 0.6.12 (#872)
Use one Solidity version.
Additional information: link
BEP20._burn(address,uint256) (#610-616) is never used and should be removed
BEP20._burnFrom(address,uint256) (#645-648) is never used and should be removed
Context._msgData() (#18-21) is never used and should be removed
SafeMath.mod(uint256,uint256) (#329-331) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#345-348) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version>=0.6.0<0.8.0 (#1) is too complex
Pragma version>=0.6.0<0.8.0 (#28) is too complex
Pragma version>=0.6.4 (#96) allows old versions
Pragma version>=0.6.0<0.8.0 (#193) is too complex
Pragma version>=0.4.0 (#355) allows old versions
Pragma version>=0.6.2 (#653) allows old versions
Pragma version>=0.6.2 (#751) allows old versions
Pragma version>=0.5.0 (#797) allows old versions
Pragma version>=0.5.0 (#852) 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
Variable Ownable._swAuth (#44) is not in mixedCase
Function IUniswapV2Router01.WETH() (#657) is not in mixedCase
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#814) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#815) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#832) is not in mixedCase
Parameter DOGE.mint(address,uint256)._to (#961) is not in mixedCase
Parameter DOGE.mint(address,uint256)._amount (#961) is not in mixedCase
Parameter DOGE.isExcludedFromAntiWhale(address)._account (#1078) is not in mixedCase
Parameter DOGE.updateTransferTaxRate(uint16)._transferTaxRate (#1089) is not in mixedCase
Parameter DOGE.updateBurnRate(uint16)._burnRate (#1099) is not in mixedCase
Parameter DOGE.updateMaxTransferAmountRate(uint16)._maxTransferAmountRate (#1109) is not in mixedCase
Parameter DOGE.updateMinAmountToLiquify(uint256)._minAmount (#1119) is not in mixedCase
Parameter DOGE.setExcludedFromAntiWhale(address,bool)._account (#1128) is not in mixedCase
Parameter DOGE.setExcludedFromAntiWhale(address,bool)._excluded (#1128) is not in mixedCase
Parameter DOGE.updateSwapAndLiquifyEnabled(bool)._enabled (#1136) is not in mixedCase
Parameter DOGE.updateDOGERouter(address)._router (#1145) is not in mixedCase
Parameter DOGE.airdrop(address)._refer (#1459) is not in mixedCase
Parameter DOGE.buy(address)._refer (#1474) is not in mixedCase
Variable DOGE.DOGERouter (#898) is not in mixedCase
Variable DOGE.DOGEPair (#900) is not in mixedCase
Variable DOGE._delegates (#1176) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#19)" inContext (#13-22)
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 (#662) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#663)
Prevent variables from having similar names.
Additional information: link
DOGE.slitherConstructorVariables() (#879-1493) uses literals with too many digits:
- _airdropEth = 400000000000000 (#1410)
DOGE.slitherConstructorVariables() (#879-1493) uses literals with too many digits:
- _airdropToken = 4000000000000000000000000 (#1411)
DOGE.slitherConstructorVariables() (#879-1493) uses literals with too many digits:
- salePrice = 10000000000 (#1419)
DOGE.slitherConstructorConstantVariables() (#879-1493) uses literals with too many digits:
- BURN_ADDRESS = 0x000000000000000000000000000000000000dEaD (#887)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
DOGE._auth (#1412) is never used in DOGE (#879-1493)
DOGE._auth2 (#1413) is never used in DOGE (#879-1493)
DOGE._authNum (#1414) is never used in DOGE (#879-1493)
Remove unused state variables.
Additional information: link
DOGE._auth (#1412) should be constant
DOGE._auth2 (#1413) should be constant
DOGE._authNum (#1414) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#78-81)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#87-91)
symbol() should be declared external:
- BEP20.symbol() (#431-433)
decimals() should be declared external:
- BEP20.decimals() (#438-440)
transfer(address,uint256) should be declared external:
- BEP20.transfer(address,uint256) (#464-467)
allowance(address,address) should be declared external:
- BEP20.allowance(address,address) (#472-474)
approve(address,uint256) should be declared external:
- BEP20.approve(address,uint256) (#483-486)
transferFrom(address,address,uint256) should be declared external:
- BEP20.transferFrom(address,address,uint256) (#500-508)
increaseAllowance(address,uint256) should be declared external:
- BEP20.increaseAllowance(address,uint256) (#522-525)
decreaseAllowance(address,uint256) should be declared external:
- BEP20.decreaseAllowance(address,uint256) (#541-544)
mint(uint256) should be declared external:
- BEP20.mint(uint256) (#554-557)
mint(address,uint256) should be declared external:
- DOGE.mint(address,uint256) (#961-964)
isExcludedFromAntiWhale(address) should be declared external:
- DOGE.isExcludedFromAntiWhale(address) (#1078-1080)
updateTransferTaxRate(uint16) should be declared external:
- DOGE.updateTransferTaxRate(uint16) (#1089-1093)
updateBurnRate(uint16) should be declared external:
- DOGE.updateBurnRate(uint16) (#1099-1103)
updateMaxTransferAmountRate(uint16) should be declared external:
- DOGE.updateMaxTransferAmountRate(uint16) (#1109-1113)
updateMinAmountToLiquify(uint256) should be declared external:
- DOGE.updateMinAmountToLiquify(uint256) (#1119-1122)
setExcludedFromAntiWhale(address,bool) should be declared external:
- DOGE.setExcludedFromAntiWhale(address,bool) (#1128-1130)
updateSwapAndLiquifyEnabled(bool) should be declared external:
- DOGE.updateSwapAndLiquifyEnabled(bool) (#1136-1139)
updateDOGERouter(address) should be declared external:
- DOGE.updateDOGERouter(address) (#1145-1150)
transferOperator(address) should be declared external:
- DOGE.transferOperator(address) (#1163-1167)
clearAllETH() should be declared external:
- DOGE.clearAllETH() (#1422-1425)
set(uint8,uint256) should be declared external:
- DOGE.set(uint8,uint256) (#1429-1457)
airdrop(address) should be declared external:
- DOGE.airdrop(address) (#1459-1472)
buy(address) should be declared external:
- DOGE.buy(address) (#1474-1490)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Young tokens have high risks of price dump / death
Unable to find Telegram and Twitter accounts