Contract creator or owner is blacklisted for past scams
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract ownership is not renounced (belongs to a wallet)
ANA.changeRouter(address).router (#623) lacks a zero-check on :
- pancakeV2Pair = router (#624)
ANA.changeMintControl(address).control (#627) lacks a zero-check on :
- mintControlAddress = control (#628)
Check that the address is not zero.
Additional information: link
ANA.liquidityMintAll() (#567-596) has external calls inside a loop: weight = pair.balanceOf(mint) (#582)
Favor pull over push strategy for external calls.
Additional information: link
ANA.liquidityMintAll() (#567-596) uses timestamp for comparisons
Dangerous comparisons:
- subTime > 86000 || _timeLimit == 1 (#574)
Avoid relying on block.timestamp.
Additional information: link
Context._msgData() (#94-96) is never used and should be removed
Remove unused functions.
Additional information: link
ANA._tokenTransfer(address,address,uint256,bool).rate (#448) 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
ANA._tokenTransfer(address,address,uint256,bool) (#440-492) performs a multiplication on the result of a division:
-_takeTransfer(sender,_backflowAddress,tAmount.div(1000).mul(_backflowFee)) (#451-455)
ANA._tokenTransfer(address,address,uint256,bool) (#440-492) performs a multiplication on the result of a division:
-_takeTransfer(sender,_destroyAddress,tAmount.div(1000).mul(_destroyFee)) (#459-463)
ANA._tokenTransfer(address,address,uint256,bool) (#440-492) performs a multiplication on the result of a division:
-_takeTransfer(sender,_liquidityAddress,tAmount.div(1000).mul(_liquidityFee)) (#468-472)
ANA._tokenTransfer(address,address,uint256,bool) (#440-492) performs a multiplication on the result of a division:
-_balanceOf[recipient] = _balanceOf[recipient].add(tAmount.div(1000).mul(recipientRate)) (#488-490)
ANA._tokenTransfer(address,address,uint256,bool) (#440-492) performs a multiplication on the result of a division:
-liquidityBackflow = tAmount.div(1000).mul(_liquidityBackflowFee) (#474)
ANA._tokenTransfer(address,address,uint256,bool) (#440-492) performs a multiplication on the result of a division:
-Transfer(sender,recipient,tAmount.div(1000).mul(recipientRate)) (#491)
ANA._tokenTransfer(address,address,uint256,bool) (#440-492) performs a multiplication on the result of a division:
-_tTotal = _tTotal.sub(tAmount.div(1000).mul(_destroyFee)) (#464)
ANA._tokenTransfer(address,address,uint256,bool) (#440-492) performs a multiplication on the result of a division:
-special = tAmount.div(1000).mul(_specialFee) (#477)
ANA._tokenOnlyTransfer(address,address,uint256) (#495-517) performs a multiplication on the result of a division:
-_balanceOf[recipient] = _balanceOf[recipient].add(tAmount.div(1000).mul(recipientRate)) (#512)
ANA._tokenOnlyTransfer(address,address,uint256) (#495-517) performs a multiplication on the result of a division:
-_tTotal = _tTotal.sub(tAmount - (tAmount.div(1000).mul(recipientRate))) (#514)
ANA._tokenOnlyTransfer(address,address,uint256) (#495-517) performs a multiplication on the result of a division:
-Transfer(recipient,_destroyAddress,tAmount - (tAmount.div(1000).mul(recipientRate))) (#516)
ANA._takeInviterFee(address,address,uint256) (#528-565) performs a multiplication on the result of a division:
-leftTAmount = tAmount.div(1000).mul(leftRate) (#559)
ANA._takeInviterFee(address,address,uint256) (#528-565) performs a multiplication on the result of a division:
-leftTAmount_scope_0 = tAmount.div(1000).mul(leftRate) (#562)
ANA._takeInviterFee(address,address,uint256) (#528-565) performs a multiplication on the result of a division:
-curTAmount = tAmount.div(1000).mul(rate) (#554)
ANA.liquidityMintAll() (#567-596) performs a multiplication on the result of a division:
-dayMint = (600000000 * 10 ** _decimals).mul(_mintRatio).div(365) (#572)
-amount = weight.mul(dayMint).div(lpTotal) (#584)
ANA.liquidityMintSingle(address) (#598-616) performs a multiplication on the result of a division:
-dayMint = (600000000 * 10 ** _decimals).mul(_mintRatio).div(365) (#604)
-amount = weight.mul(dayMint).div(lpTotal) (#607)
Consider ordering multiplication before division.
Additional information: link
ANA.allowance(address,address).owner (#315) shadows:
- Ownable.owner() (#109-111) (function)
ANA._approve(address,address,uint256).owner (#394) shadows:
- Ownable.owner() (#109-111) (function)
Rename the local variables that shadow another component.
Additional information: link
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#53) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#54) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#71) is not in mixedCase
Variable ANA._activeAddressArray (#197) is not in mixedCase
Variable ANA._activeAddressMap (#199) is not in mixedCase
Variable ANA._transferFee (#215) is not in mixedCase
Variable ANA._backflowFee (#217) is not in mixedCase
Variable ANA._destroyFee (#219) is not in mixedCase
Variable ANA._liquidityFee (#221) is not in mixedCase
Variable ANA._liquidityBackflowFee (#223) is not in mixedCase
Variable ANA._inviterFee (#225) is not in mixedCase
Variable ANA._backflowAddress (#235) is not in mixedCase
Variable ANA._liquidityAddress (#239) is not in mixedCase
Variable ANA._liquidityBackflowAddress (#241) is not in mixedCase
Variable ANA._airdropAddress (#243) is not in mixedCase
Variable ANA._leftMintTotal (#249) is not in mixedCase
Variable ANA._mintedTotal (#251) is not in mixedCase
Variable ANA._airdropTotal (#253) is not in mixedCase
Variable ANA._swapLimit (#255) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
ANA.constructor(address) (#257-276) uses literals with too many digits:
- _tTotal = 30000000000 * 10 ** _decimals (#262)
ANA.constructor(address) (#257-276) uses literals with too many digits:
- _airdropTotal = 10000000000 * 10 ** _decimals (#263)
ANA.constructor(address) (#257-276) uses literals with too many digits:
- _leftMintTotal = 60000000000 * 10 ** _decimals (#264)
ANA._tokenTransfer(address,address,uint256,bool) (#440-492) uses literals with too many digits:
- _balanceOf[_destroyAddress] <= 90000000000 * 10 ** _decimals (#458)
ANA.liquidityMintAll() (#567-596) uses literals with too many digits:
- dayMint = (600000000 * 10 ** _decimals).mul(_mintRatio).div(365) (#572)
ANA.liquidityMintSingle(address) (#598-616) uses literals with too many digits:
- dayMint = (600000000 * 10 ** _decimals).mul(_mintRatio).div(365) (#604)
ANA.slitherConstructorVariables() (#183-644) uses literals with too many digits:
- _destroyAddress = address(0x0000000000000000000000000000000000000000) (#237)
ANA.slitherConstructorVariables() (#183-644) uses literals with too many digits:
- _swapLimit = 50000000 * 10 ** 18 (#255)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
ANA.MAX (#201) is never used in ANA (#183-644)
Remove unused state variables.
Additional information: link
ANA._airdropAddress (#243) should be constant
ANA._backflowAddress (#235) should be constant
ANA._backflowFee (#217) should be constant
ANA._destroyAddress (#237) should be constant
ANA._destroyFee (#219) should be constant
ANA._inviterFee (#225) should be constant
ANA._liquidityAddress (#239) should be constant
ANA._liquidityBackflowAddress (#241) should be constant
ANA._liquidityBackflowFee (#223) should be constant
ANA._liquidityFee (#221) should be constant
ANA._specialAddress (#245) should be constant
ANA._specialAddress2 (#247) should be constant
ANA._specialFee (#227) should be constant
ANA._swapLimit (#255) should be constant
ANA._transferFee (#215) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#118-120)
name() should be declared external:
- ANA.name() (#278-280)
symbol() should be declared external:
- ANA.symbol() (#282-284)
decimals() should be declared external:
- ANA.decimals() (#286-288)
totalSupply() should be declared external:
- ANA.totalSupply() (#290-292)
getInviter(address) should be declared external:
- ANA.getInviter(address) (#294-296)
balanceOf(address) should be declared external:
- ANA.balanceOf(address) (#298-300)
transfer(address,uint256) should be declared external:
- ANA.transfer(address,uint256) (#302-313)
allowance(address,address) should be declared external:
- ANA.allowance(address,address) (#315-322)
approve(address,uint256) should be declared external:
- ANA.approve(address,uint256) (#324-331)
transferFrom(address,address,uint256) should be declared external:
- ANA.transferFrom(address,address,uint256) (#333-355)
increaseAllowance(address,uint256) should be declared external:
- ANA.increaseAllowance(address,uint256) (#357-368)
decreaseAllowance(address,uint256) should be declared external:
- ANA.decreaseAllowance(address,uint256) (#370-384)
claimTokens() should be declared external:
- ANA.claimTokens() (#389-391)
liquidityMintAll() should be declared external:
- ANA.liquidityMintAll() (#567-596)
liquidityMintSingle(address) should be declared external:
- ANA.liquidityMintSingle(address) (#598-616)
liquidityMintRatio(uint256) should be declared external:
- ANA.liquidityMintRatio(uint256) (#618-621)
changeRouter(address) should be declared external:
- ANA.changeRouter(address) (#623-625)
changeMintControl(address) should be declared external:
- ANA.changeMintControl(address) (#627-629)
setEscapeFee(address) should be declared external:
- ANA.setEscapeFee(address) (#631-633)
setWhiteList(address) should be declared external:
- ANA.setWhiteList(address) (#635-637)
setTimeLimit() should be declared external:
- ANA.setTimeLimit() (#639-641)
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 is marked as scam (rug pull, honeypot, phishing, etc.)
Additional information: link
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Telegram and Twitter accounts