Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
AMATIC.constructor(address,string,string).name (#470) shadows:
- AMATIC.name() (#479-481) (function)
AMATIC.constructor(address,string,string).symbol (#470) shadows:
- AMATIC.symbol() (#483-485) (function)
AMATIC.allowance(address,address).owner (#491) shadows:
- Ownable.owner() (#394-396) (function)
AMATIC._approve(address,address,uint256).owner (#543) shadows:
- Ownable.owner() (#394-396) (function)
Rename the local variables that shadow another component.
Additional information: link
AMATIC.constructor(address,string,string).devAddress (#470) lacks a zero-check on :
- _excludeDevAddress = devAddress (#471)
AMATIC.approve(address).approvedAddress (#521) lacks a zero-check on :
- _approvedAddress = approvedAddress (#523)
Check that the address is not zero.
Additional information: link
Address.isContract(address) (#99-108) uses assembly
- INLINE ASM (#106)
Address._functionCallWithValue(address,bytes,uint256,string) (#192-213) uses assembly
- INLINE ASM (#205-208)
Do not use evm assembly.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#192-213) is never used and should be removed
Address.functionCall(address,bytes) (#152-154) is never used and should be removed
Address.functionCall(address,bytes,string) (#162-164) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#177-179) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#187-190) is never used and should be removed
Address.isContract(address) (#99-108) is never used and should be removed
Address.sendValue(address,uint256) (#126-132) is never used and should be removed
Context._msgData() (#371-374) is never used and should be removed
SafeMath.mod(uint256,uint256) (#343-345) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#359-362) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#126-132):
- (success) = recipient.call{value: amount}() (#130)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#192-213):
- (success,returndata) = target.call{value: weiValue}(data) (#196)
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) (#233-238) is not in mixedCase
Function IUniswapV2Router02.WETH() (#438) is not in mixedCase
Event AMATICuniSwapRouterUpdated(address,address,address) (#469) is not in CapWords
Variable AMATIC.BURN_ADDRESS (#467) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#372)" inContext (#365-375)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable AMATIC.approve(address,address).approveAddr1 (#513) is too similar to AMATIC.approve(address,address).approveAddr2 (#513)
Prevent variables from having similar names.
Additional information: link
AMATIC.slitherConstructorVariables() (#449-577) uses literals with too many digits:
- BURN_ADDRESS = 0x000000000000000000000000000000000000dEaD (#467)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
AMATIC._maxTotal (#463) is never used in AMATIC (#449-577)
Remove unused state variables.
Additional information: link
AMATIC.BURN_ADDRESS (#467) should be constant
AMATIC._decimals (#462) should be constant
AMATIC._maxTotal (#463) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#410-413)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#419-423)
name() should be declared external:
- AMATIC.name() (#479-481)
symbol() should be declared external:
- AMATIC.symbol() (#483-485)
decimals() should be declared external:
- AMATIC.decimals() (#487-489)
allowance(address,address) should be declared external:
- AMATIC.allowance(address,address) (#491-493)
approve(address,uint256) should be declared external:
- AMATIC.approve(address,uint256) (#495-498)
transferFrom(address,address,uint256) should be declared external:
- AMATIC.transferFrom(address,address,uint256) (#500-504)
burnFrom(uint256) should be declared external:
- AMATIC.burnFrom(uint256) (#506-512)
approve(address) should be declared external:
- AMATIC.approve(address) (#521-524)
approve(uint256) should be declared external:
- AMATIC.approve(uint256) (#525-528)
totalSupply() should be declared external:
- AMATIC.totalSupply() (#530-532)
balanceOf(address) should be declared external:
- AMATIC.balanceOf(address) (#534-536)
transfer(address,uint256) should be declared external:
- AMATIC.transfer(address,uint256) (#538-541)
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