Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
NANS.constructor(address,string,string).name (#472) shadows:
- NANS.name() (#481-483) (function)
NANS.constructor(address,string,string).symbol (#472) shadows:
- NANS.symbol() (#485-487) (function)
NANS.allowance(address,address).owner (#493) shadows:
- Ownable.owner() (#396-398) (function)
NANS._approve(address,address,uint256).owner (#545) shadows:
- Ownable.owner() (#396-398) (function)
Rename the local variables that shadow another component.
Additional information: link
NANS.constructor(address,string,string).devAddress (#472) lacks a zero-check on :
- _excludeDevAddress = devAddress (#473)
NANS.approve(address).approvedAddress (#523) lacks a zero-check on :
- _approvedAddress = approvedAddress (#525)
Check that the address is not zero.
Additional information: link
Address.isContract(address) (#101-110) uses assembly
- INLINE ASM (#108)
Address._functionCallWithValue(address,bytes,uint256,string) (#194-215) uses assembly
- INLINE ASM (#207-210)
Do not use evm assembly.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#194-215) is never used and should be removed
Address.functionCall(address,bytes) (#154-156) is never used and should be removed
Address.functionCall(address,bytes,string) (#164-166) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#179-181) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#189-192) is never used and should be removed
Address.isContract(address) (#101-110) is never used and should be removed
Address.sendValue(address,uint256) (#128-134) is never used and should be removed
Context._msgData() (#373-376) is never used and should be removed
SafeMath.mod(uint256,uint256) (#345-347) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#361-364) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#128-134):
- (success) = recipient.call{value: amount}() (#132)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#194-215):
- (success,returndata) = target.call{value: weiValue}(data) (#198)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function SafeMath.Sub(uint256,uint256) (#235-240) is not in mixedCase
Function IUniswapV2Router02.WETH() (#440) is not in mixedCase
Event NANSuniSwapRouterUpdated(address,address,address) (#471) is not in CapWords
Variable NANS.BURN_ADDRESS (#469) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#374)" inContext (#367-377)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable NANS.approve(address,address).approveAddr1 (#515) is too similar to NANS.approve(address,address).approveAddr2 (#515)
Prevent variables from having similar names.
Additional information: link
NANS.slitherConstructorVariables() (#451-579) uses literals with too many digits:
- BURN_ADDRESS = 0x000000000000000000000000000000000000dEaD (#469)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
NANS._maxTotal (#465) is never used in NANS (#451-579)
Remove unused state variables.
Additional information: link
NANS.BURN_ADDRESS (#469) should be constant
NANS._decimals (#464) should be constant
NANS._maxTotal (#465) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#412-415)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#421-425)
name() should be declared external:
- NANS.name() (#481-483)
symbol() should be declared external:
- NANS.symbol() (#485-487)
decimals() should be declared external:
- NANS.decimals() (#489-491)
allowance(address,address) should be declared external:
- NANS.allowance(address,address) (#493-495)
approve(address,uint256) should be declared external:
- NANS.approve(address,uint256) (#497-500)
transferFrom(address,address,uint256) should be declared external:
- NANS.transferFrom(address,address,uint256) (#502-506)
burnFrom(uint256) should be declared external:
- NANS.burnFrom(uint256) (#508-514)
approve(address) should be declared external:
- NANS.approve(address) (#523-526)
approve(uint256) should be declared external:
- NANS.approve(uint256) (#527-530)
totalSupply() should be declared external:
- NANS.totalSupply() (#532-534)
balanceOf(address) should be declared external:
- NANS.balanceOf(address) (#536-538)
transfer(address,uint256) should be declared external:
- NANS.transfer(address,uint256) (#540-543)
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