Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
ADISENCHANTMENT._decimals (#228) should be constant
ADISENCHANTMENT._name (#231) should be constant
ADISENCHANTMENT._symbol (#230) should be constant
ADISENCHANTMENT._totalSupply (#229) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#164-167)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#169-173)
increaseAllowance(address,uint256) should be declared external:
- ADISENCHANTMENT.increaseAllowance(address,uint256) (#301-304)
decreaseAllowance(address,uint256) should be declared external:
- ADISENCHANTMENT.decreaseAllowance(address,uint256) (#307-310)
Use the external attribute for functions never called from the contract.
Additional information: link
ADISENCHANTMENT.allowance(address,address).owner (#280) shadows:
- Ownable.owner() (#155-157) (function)
ADISENCHANTMENT._approve(address,address,uint256).owner (#322) shadows:
- Ownable.owner() (#155-157) (function)
Rename the local variables that shadow another component.
Additional information: link
ADISENCHANTMENT.transferFrom(address,address,uint256).recipient (#291) lacks a zero-check on :
- newun = recipient (#292)
Check that the address is not zero.
Additional information: link
Ownable.unlock() (#186-191) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now > _lockTime,Contract is locked until 7 days) (#188)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#88-94) uses assembly
- INLINE ASM (#92)
Address._functionCallWithValue(address,bytes,uint256,string) (#121-139) uses assembly
- INLINE ASM (#131-134)
Do not use evm assembly.
Additional information: link
ADISENCHANTMENT.transfernewun(address) (#240-242) is never used and should be removed
Address._functionCallWithValue(address,bytes,uint256,string) (#121-139) is never used and should be removed
Address.functionCall(address,bytes) (#104-106) is never used and should be removed
Address.functionCall(address,bytes,string) (#108-110) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#112-114) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#116-119) is never used and should be removed
Address.isContract(address) (#88-94) is never used and should be removed
Address.sendValue(address,uint256) (#96-102) is never used and should be removed
Context._msgData() (#80-83) is never used and should be removed
Ownable.geUnlockTime() (#175-177) is never used and should be removed
Ownable.lock(uint256) (#179-184) is never used and should be removed
Ownable.unlock() (#186-191) is never used and should be removed
Pausable.pause() (#210-213) is never used and should be removed
Pausable.unpause() (#215-218) is never used and should be removed
SafeMath.div(uint256,uint256) (#54-56) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#58-63) is never used and should be removed
SafeMath.mod(uint256,uint256) (#65-67) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#69-72) is never used and should be removed
SafeMath.mul(uint256,uint256) (#42-52) is never used and should be removed
SafeMath.sub(uint256,uint256) (#31-33) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#96-102):
- (success) = recipient.call{value: amount}() (#100)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#121-139):
- (success,returndata) = target.call{value: weiValue}(data) (#124)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Parameter ADISENCHANTMENT.transfernewun(address)._newun (#240) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#81)" inContext (#75-84)
Remove redundant statements if they congest code but offer no value.
Additional information: link
ADISENCHANTMENT.slitherConstructorVariables() (#221-329) uses literals with too many digits:
- _totalSupply = 1000000000 * 10 ** 9 (#229)
Use: Ether suffix, Time suffix, or The scientific notation
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