Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract locking ether found:
Contract AIT (#73-425) has payable functions:
- AIT.receive() (#423)
But does not have a function to withdraw the ether
Remove the payable attribute or add a withdraw function.
Additional information: link
AIT.giveaway(address[],uint256[],uint8) (#287-309) ignores return value by _treasury[ANCHOR][path[i]].incrFund(num[i]) (#293)
AIT.giveaway(address[],uint256[],uint8) (#287-309) ignores return value by _treasury[BANK][path[i]].incrFund(num[i]) (#295)
Ensure that all the return values of the function calls are used.
Additional information: link
Treasury.settle(Treasury.T,uint256) (#31-44) uses timestamp for comparisons
Dangerous comparisons:
- amount > 0 && value > 0 (#33)
- amount >= value (#34)
Treasury.count(Treasury.T) (#12-29) uses timestamp for comparisons
Dangerous comparisons:
- t.start > 0 && t.end > t.start && t.fund > t.reward && ts > t.start (#15)
- ts >= t.end (#16)
- t.reward >= amount (#20)
Avoid relying on block.timestamp.
Additional information: link
solc-0.8.17 is not recommended for deployment
Pragma version0.8.17 (#2) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
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
AIT.slitherConstructorVariables() (#73-425) uses literals with too many digits:
- _totalSupply = 210000000000000000000000000000 (#79)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
AIT._decimals (#78) should be constant
AIT._totalSupply (#79) should be constant
AIT._name (#76) should be constant
AIT._symbol (#77) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
approve(address,uint256) should be declared external:
- AIT.approve(address,uint256) (#121-124)
balanceOf(address) should be declared external:
- AIT.balanceOf(address) (#347-349)
decimals() should be declared external:
- AIT.decimals() (#147-149)
renounceOwnership() should be declared external:
- AIT.renounceOwnership() (#414-420)
openTreasury(address,uint256) should be declared external:
- AIT.openTreasury(address,uint256) (#311-320)
treasuryInfo(address) should be declared external:
- AIT.treasuryInfo(address) (#322-336)
transferFrom(address,address,uint256) should be declared external:
- AIT.transferFrom(address,address,uint256) (#219-224)
transferOwnership(address) should be declared external:
- AIT.transferOwnership(address) (#399-405)
liquidity(address,uint8) should be declared external:
- AIT.liquidity(address,uint8) (#360-367)
name() should be declared external:
- AIT.name() (#154-156)
symbol() should be declared external:
- AIT.symbol() (#161-163)
transfer(address,uint256) should be declared external:
- AIT.transfer(address,uint256) (#109-112)
holdInfo(address) should be declared external:
- AIT.holdInfo(address) (#338-345)
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