Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract creator or owner is blacklisted for past scams
AON.getLockReleaseRecord(uint256,uint256) (#445-464) contains a tautology or contradiction:
- require(bool,string)(_startIndex >= 0,startIndex must greater 0) (#448)
AON.pledge(uint256,uint256) (#551-564) contains a tautology or contradiction:
- require(bool,string)(_cycle >= 0,Error cycle error) (#555)
AON.getRedemptionRecordsByIndex(uint256,uint256) (#633-652) contains a tautology or contradiction:
- require(bool,string)(startIndex >= 0,startIndex must greater 0) (#635)
AON.getPledgeRecordsByIndex(address,uint256,uint256) (#679-702) contains a tautology or contradiction:
- require(bool,string)(startIndex >= 0,startIndex must greater 0) (#681)
AON.setReferralsFee(uint256,uint256) (#748-753) contains a tautology or contradiction:
- require(bool,string)(_fee.add(_brunF) >= 0,_fee must more than 0) (#749)
AON.setPledgeFee(uint256) (#768-772) contains a tautology or contradiction:
- require(bool,string)(_pfee >= 0,pledgeFee must more than 0) (#769)
Fix the incorrect comparison by changing the value type or the comparison.
Additional information: link
AON._transfer(address,address,uint256) (#497-529) uses a dangerous strict equality:
- require(bool,string)(_lockBalances[_to] == 0,Error: only lock once) (#504)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
AON._approve(address,address,uint256).owner (#805) shadows:
- Owend.owner() (#240-242) (function)
AON.allowance(address,address).owner (#849) shadows:
- Owend.owner() (#240-242) (function)
Rename the local variables that shadow another component.
Additional information: link
AON.setReferralsFee(uint256,uint256) (#748-753) should emit an event for:
- referralsFee = _fee (#751)
- burnFee = _brunF (#752)
AON._burn(uint256) (#797-803) should emit an event for:
- _totalSupply = _totalSupply.sub(amount) (#800)
Emit an event for critical parameter changes.
Additional information: link
AON._release(address) (#395-432) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(_lockBalances[_address] > 0,Error: Insufficient balance) (#402)
- require(bool,string)(_durationTime >= _cycleTimestamp,Error: not yet time) (#406)
- _lockBalances[_address] < _eachReleaseAmount (#409)
- _lockBalances[_address] <= _totalReleaseAmount (#414)
- _lastAmount < _eachReleaseAmount (#418)
AON.getLockReleaseRecord(uint256,uint256) (#445-464) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(_startIndex < _lockReleaseRecords.length,startIndex must less all length) (#449)
- _endIndex >= _lockReleaseRecords.length (#450)
- _startIndex <= _endIndex (#458)
AON.distributeNftMint(address[],uint256[]) (#466-479) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(totalAmount <= _balances[_nftPledgeAddress],balance error) (#471)
AON.distributeGame(address[],uint256[]) (#481-494) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(totalAmount <= _balances[_gameGuildAddress],balance error) (#486)
AON._transfer(address,address,uint256) (#497-529) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(_balances[_from] >= _value,Balance insufficient) (#501)
- require(bool,string)(_lockBalances[_to] == 0,Error: only lock once) (#504)
AON.pledge(uint256,uint256) (#551-564) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(_balances[msg.sender] >= pledgeMinimumAmount,Insufficient available balance) (#557)
AON.pledgeReleaseAll() (#576-586) uses timestamp for comparisons
Dangerous comparisons:
- _difTime > _durationTime (#581)
AON.pledgeRelease(uint256) (#606-627) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(_difTime > _durationTime,Error time not yet) (#615)
AON.getRedemptionRecordsByIndex(uint256,uint256) (#633-652) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(startIndex < _redemptionRecord.length,startIndex must less all length) (#637)
- endIndex >= _redemptionRecord.length (#638)
- startIndex <= endIndex (#646)
AON._burn(uint256) (#797-803) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(_balances[msg.sender] >= amount,Balance insufficient) (#798)
Avoid relying on block.timestamp.
Additional information: link
AON._release(address) (#395-432) performs a multiplication on the result of a division:
-_eachReleaseAmount = _amount.mul(_cycle).div(_days) (#401)
-_level = _durationTime.div(_cycleTimestamp) (#412)
-_totalReleaseAmount = _eachReleaseAmount.mul(_level) (#413)
AON._release(address) (#395-432) performs a multiplication on the result of a division:
-_level = _durationTime.div(_cycleTimestamp) (#412)
-_thisTime = _cycleTimestamp.mul(_level) (#426)
Consider ordering multiplication before division.
Additional information: link
SafeMath.mod(uint256,uint256) (#212-214) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#227-230) is never used and should be removed
Remove unused functions.
Additional information: link
Variable Owend._owner (#234) is not in mixedCase
Parameter AON.lockReleaseFound(address)._address (#380) is not in mixedCase
Parameter AON.getLockRecord(address)._addr (#434) is not in mixedCase
Parameter AON.getLockReleaseRecord(uint256,uint256)._startIndex (#445) is not in mixedCase
Parameter AON.getLockReleaseRecord(uint256,uint256)._length (#445) is not in mixedCase
Parameter AON.pledge(uint256,uint256)._cycle (#551) is not in mixedCase
Parameter AON.getPledgeRecordsByAddress(address)._account (#656) is not in mixedCase
Parameter AON.getPledgeRecordsAddressSizes(address)._account (#675) is not in mixedCase
Parameter AON.getPledgeRecordsByIndex(address,uint256,uint256)._account (#679) is not in mixedCase
Parameter AON.getPledgeRecords(address,uint256)._address (#704) is not in mixedCase
Parameter AON.getPledgeRecords(address,uint256)._timestamp (#704) is not in mixedCase
Parameter AON.setReferralsFee(uint256,uint256)._fee (#748) is not in mixedCase
Parameter AON.setReferralsFee(uint256,uint256)._brunF (#748) is not in mixedCase
Parameter AON.addSpecial(address)._addr (#755) is not in mixedCase
Parameter AON.removeSpecial(address)._addr (#760) is not in mixedCase
Parameter AON.setPledgeOnce(bool)._once (#764) is not in mixedCase
Parameter AON.setPledgeFee(uint256)._pfee (#768) is not in mixedCase
Function AON._burn(uint256) (#797-803) is not in mixedCase
Variable AON._pledgeRecords (#291) is not in mixedCase
Variable AON._redemptionRecord (#298) is not in mixedCase
Variable AON._IDOAddress (#337) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "_startIndex (#458)" inAON (#261-868)
Redundant expression "startIndex (#646)" inAON (#261-868)
Redundant expression "startIndex (#694)" inAON (#261-868)
Remove redundant statements if they congest code but offer no value.
Additional information: link
AON.slitherConstructorVariables() (#261-868) uses literals with too many digits:
- _totalSupply = 210000000 * 10 ** 18 (#320)
AON.slitherConstructorVariables() (#261-868) uses literals with too many digits:
- _maxDestoryLimit = 189000000 * 10 ** 18 (#321)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
AON._IDOAddress (#337) should be constant
AON._blackholeAddress (#338) should be constant
AON._decimals (#325) should be constant
AON._developerTeamAddress (#329) should be constant
AON._foundationAddress (#327) should be constant
AON._gameGuildAddress (#331) should be constant
AON._marketSellAddress (#335) should be constant
AON._maxDestoryLimit (#321) should be constant
AON._name (#323) should be constant
AON._nftPledgeAddress (#333) should be constant
AON._symbol (#324) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
owner() should be declared external:
- Owend.owner() (#240-242)
transferOwnership(address) should be declared external:
- Owend.transferOwnership(address) (#252-254)
lockReleaseFound(address) should be declared external:
- AON.lockReleaseFound(address) (#380-382)
lockReleaseFoundAll() should be declared external:
- AON.lockReleaseFoundAll() (#384-388)
lockRelease() should be declared external:
- AON.lockRelease() (#391-393)
getLockRecord(address) should be declared external:
- AON.getLockRecord(address) (#434-439)
getLockReleaseRecordSize() should be declared external:
- AON.getLockReleaseRecordSize() (#441-443)
distributeNftMint(address[],uint256[]) should be declared external:
- AON.distributeNftMint(address[],uint256[]) (#466-479)
distributeGame(address[],uint256[]) should be declared external:
- AON.distributeGame(address[],uint256[]) (#481-494)
pledge(uint256,uint256) should be declared external:
- AON.pledge(uint256,uint256) (#551-564)
pledgeReleaseAll() should be declared external:
- AON.pledgeReleaseAll() (#576-586)
getRedemptionRecordSizes() should be declared external:
- AON.getRedemptionRecordSizes() (#629-631)
getPledgeRecordsByAddress(address) should be declared external:
- AON.getPledgeRecordsByAddress(address) (#656-673)
getPledgeRecordsAddressSizes(address) should be declared external:
- AON.getPledgeRecordsAddressSizes(address) (#675-677)
getPledgeRecords(address,uint256) should be declared external:
- AON.getPledgeRecords(address,uint256) (#704-713)
activiteAccount(address) should be declared external:
- AON.activiteAccount(address) (#715-724)
getUpAddress(address) should be declared external:
- AON.getUpAddress(address) (#726-728)
getReferralsByAddress() should be declared external:
- AON.getReferralsByAddress() (#730-738)
updateRecommendShip(address[],address[]) should be declared external:
- AON.updateRecommendShip(address[],address[]) (#739-745)
setReferralsFee(uint256,uint256) should be declared external:
- AON.setReferralsFee(uint256,uint256) (#748-753)
addSpecial(address) should be declared external:
- AON.addSpecial(address) (#755-758)
removeSpecial(address) should be declared external:
- AON.removeSpecial(address) (#760-762)
setPledgeOnce(bool) should be declared external:
- AON.setPledgeOnce(bool) (#764-766)
setPledgeFee(uint256) should be declared external:
- AON.setPledgeFee(uint256) (#768-772)
addWhite(address) should be declared external:
- AON.addWhite(address) (#774-780)
removeWhite(address) should be declared external:
- AON.removeWhite(address) (#782-785)
addUnilateralList(address) should be declared external:
- AON.addUnilateralList(address) (#786-789)
removeUnilateralList(address) should be declared external:
- AON.removeUnilateralList(address) (#791-794)
_burn(uint256) should be declared external:
- AON._burn(uint256) (#797-803)
name() should be declared external:
- AON.name() (#814-816)
symbol() should be declared external:
- AON.symbol() (#818-820)
decimals() should be declared external:
- AON.decimals() (#822-824)
totalSupply() should be declared external:
- AON.totalSupply() (#826-828)
balanceOf(address) should be declared external:
- AON.balanceOf(address) (#830-832)
lockBalanceOf(address) should be declared external:
- AON.lockBalanceOf(address) (#834-836)
pledgeBalanceOf(address) should be declared external:
- AON.pledgeBalanceOf(address) (#838-840)
transfer(address,uint256) should be declared external:
- AON.transfer(address,uint256) (#843-847)
allowance(address,address) should be declared external:
- AON.allowance(address,address) (#849-851)
approve(address,uint256) should be declared external:
- AON.approve(address,uint256) (#853-858)
transferFrom(address,address,uint256) should be declared external:
- AON.transferFrom(address,address,uint256) (#859-865)
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 is marked as scam (rug pull, honeypot, phishing, etc.)
Additional information: link
Young tokens have high risks of price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Telegram and Twitter accounts