Asva Labs is an innovation lab that is building a decentralized Web3 financial ecosystem for emerging virtual economies.
ERC20Permit.constructor(string).name (#1099) shadows:
- ERC20.name() (#659-661) (function)
- IERC20Metadata.name() (#584) (function)
Rename the local variables that shadow another component.
Additional information: link
Variable 'ECDSA.tryRecover(bytes32,bytes).r (#175)' in ECDSA.tryRecover(bytes32,bytes) (#170-199) potentially used before declaration: r = mload(uint256)(signature + 0x20) (#192)
Move all variable declarations prior to any usage of the variable, and ensure that reaching a variable declaration does not depend on some conditional if it is used unconditionally.
Additional information: link
ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (#1104-1123) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp <= deadline,ERC20Permit: expired deadline) (#1113)
Avoid relying on block.timestamp.
Additional information: link
ECDSA.tryRecover(bytes32,bytes) (#170-199) uses assembly
- INLINE ASM (#180-184)
- INLINE ASM (#191-194)
ECDSA.tryRecover(bytes32,bytes32,bytes32) (#228-240) uses assembly
- INLINE ASM (#235-238)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['0.8.4', '^0.8.0']
- ^0.8.0 (#3)
- 0.8.4 (#1156)
Use one Solidity version.
Additional information: link
Context._msgData() (#477-479) is never used and should be removed
Counters.decrement(Counters.Counter) (#30-36) is never used and should be removed
Counters.reset(Counters.Counter) (#38-40) is never used and should be removed
ECDSA.recover(bytes32,bytes) (#215-219) is never used and should be removed
ECDSA.recover(bytes32,bytes32,bytes32) (#247-255) is never used and should be removed
ECDSA.toEthSignedMessageHash(bytes) (#331-333) is never used and should be removed
ECDSA.toEthSignedMessageHash(bytes32) (#317-321) is never used and should be removed
ECDSA.tryRecover(bytes32,bytes) (#170-199) is never used and should be removed
ECDSA.tryRecover(bytes32,bytes32,bytes32) (#228-240) is never used and should be removed
Strings.toHexString(uint256) (#84-95) is never used and should be removed
Strings.toHexString(uint256,uint256) (#100-110) is never used and should be removed
Strings.toString(uint256) (#59-79) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (#3) allows old versions
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
Variable EIP712._CACHED_DOMAIN_SEPARATOR (#380) is not in mixedCase
Variable EIP712._CACHED_CHAIN_ID (#381) is not in mixedCase
Variable EIP712._CACHED_THIS (#382) is not in mixedCase
Variable EIP712._HASHED_NAME (#384) is not in mixedCase
Variable EIP712._HASHED_VERSION (#385) is not in mixedCase
Variable EIP712._TYPE_HASH (#386) is not in mixedCase
Function IERC20Permit.DOMAIN_SEPARATOR() (#1060) is not in mixedCase
Function ERC20Permit.DOMAIN_SEPARATOR() (#1136-1138) is not in mixedCase
Variable ERC20Permit._PERMIT_TYPEHASH (#1091-1092) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
name() should be declared external:
- ERC20.name() (#659-661)
symbol() should be declared external:
- ERC20.symbol() (#667-669)
decimals() should be declared external:
- ERC20.decimals() (#684-686)
totalSupply() should be declared external:
- ERC20.totalSupply() (#691-693)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#698-700)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#710-713)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#729-732)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#747-761)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#775-778)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#794-802)
burn(uint256) should be declared external:
- ERC20Burnable.burn(uint256) (#975-977)
burnFrom(address,uint256) should be declared external:
- ERC20Burnable.burnFrom(address,uint256) (#990-997)
permit(address,address,uint256,uint256,uint8,bytes32,bytes32) should be declared external:
- ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (#1104-1123)
nonces(address) should be declared external:
- ERC20Permit.nonces(address) (#1128-1130)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find whitepaper link on the website
Token is not listed at Mobula.Finance
Additional information: link
Young tokens have high risks of price dump / death
Token has relatively low CoinGecko rank
Unable to find Youtube account