Highstreet Token Logo

HIGH [Highstreet] Token

About HIGH

Listings

Token 11 months
CoinGecko 11 months
CoinMarketCap 13 months
white paper

Shopify on an MMORPG Metaverse

Laser Scorebeta Last Audit: 9 June 2022

report
Token seems to be legit.

AccessControlUpgradeable.__gap (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#225) shadows:
- ContextUpgradeable.__gap (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#31)
ERC20PermitUpgradeable.__gap (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#86) shadows:
- EIP712Upgradeable.__gap (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#120)
- ERC20Upgradeable.__gap (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#312)
- ContextUpgradeable.__gap (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#31)
ERC20BurnableUpgradeable.__gap (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20BurnableUpgradeable.sol#50) shadows:
- ERC20Upgradeable.__gap (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#312)
- ContextUpgradeable.__gap (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#31)
ERC20Upgradeable.__gap (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#312) shadows:
- ContextUpgradeable.__gap (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#31)
Remove the state variable shadowing.

Additional information: link

ERC20PermitUpgradeable.__ERC20Permit_init(string).name (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#35) shadows:
- ERC20Upgradeable.name() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#70-72) (function)
ERC20PermitUpgradeable.__ERC20Permit_init_unchained(string).name (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#41) shadows:
- ERC20Upgradeable.name() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#70-72) (function)
SynapseERC20.initialize(string,string,uint8,address)._name (contracts/synapse/SynapseERC20.sol#27) shadows:
- ERC20Upgradeable._name (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#43) (state variable)
SynapseERC20.initialize(string,string,uint8,address)._symbol (contracts/synapse/SynapseERC20.sol#28) shadows:
- ERC20Upgradeable._symbol (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#44) (state variable)
SynapseERC20.initialize(string,string,uint8,address)._decimals (contracts/synapse/SynapseERC20.sol#29) shadows:
- ERC20Upgradeable._decimals (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#45) (state variable)
Rename the local variables that shadow another component.

Additional information: link

ERC20PermitUpgradeable.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#48-70) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp <= deadline,ERC20Permit: expired deadline) (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#50)
Avoid relying on block.timestamp.

Additional information: link

ECDSAUpgradeable.recover(bytes32,bytes) (@openzeppelin/contracts-upgradeable/cryptography/ECDSAUpgradeable.sol#26-47) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/cryptography/ECDSAUpgradeable.sol#40-44)
EIP712Upgradeable._getChainId() (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#93-99) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#96-98)
AddressUpgradeable.isContract(address) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#26-35) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#33)
AddressUpgradeable._verifyCallResult(bool,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#147-164) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#156-159)
Do not use evm assembly.

Additional information: link

Different versions of Solidity is used:
- Version used: ['>=0.4.24<0.8.0', '>=0.6.0<0.8.0', '>=0.6.2<0.8.0', '>=0.6.5<0.8.0']
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/cryptography/ECDSAUpgradeable.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#3)
- >=0.6.5<0.8.0 (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/drafts/IERC20PermitUpgradeable.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#3)
- >=0.4.24<0.8.0 (@openzeppelin/contracts-upgradeable/proxy/Initializable.sol#4)
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20BurnableUpgradeable.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol#3)
- >=0.6.2<0.8.0 (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#3)
- >=0.6.0<0.8.0 (contracts/synapse/SynapseERC20.sol#2)
Use one Solidity version.

Additional information: link

AccessControlUpgradeable.__AccessControl_init() (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#46-49) is never used and should be removed
AccessControlUpgradeable._setRoleAdmin(bytes32,bytes32) (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#209-212) is never used and should be removed
AddressUpgradeable._verifyCallResult(bool,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#147-164) is never used and should be removed
AddressUpgradeable.functionCall(address,bytes) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#79-81) is never used and should be removed
AddressUpgradeable.functionCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#89-91) is never used and should be removed
AddressUpgradeable.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#104-106) is never used and should be removed
AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#114-121) is never used and should be removed
AddressUpgradeable.functionStaticCall(address,bytes) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#129-131) is never used and should be removed
AddressUpgradeable.functionStaticCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#139-145) is never used and should be removed
AddressUpgradeable.sendValue(address,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#53-59) is never used and should be removed
ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#17-19) is never used and should be removed
ContextUpgradeable._msgData() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#27-30) is never used and should be removed
CountersUpgradeable.decrement(CountersUpgradeable.Counter) (@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol#37-39) is never used and should be removed
ECDSAUpgradeable.recover(bytes32,bytes) (@openzeppelin/contracts-upgradeable/cryptography/ECDSAUpgradeable.sol#26-47) is never used and should be removed
ECDSAUpgradeable.toEthSignedMessageHash(bytes32) (@openzeppelin/contracts-upgradeable/cryptography/ECDSAUpgradeable.sol#81-85) is never used and should be removed
EIP712Upgradeable.__EIP712_init(string,string) (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#44-46) is never used and should be removed
ERC20BurnableUpgradeable.__ERC20Burnable_init() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20BurnableUpgradeable.sol#15-18) is never used and should be removed
ERC20Upgradeable.__ERC20_init(string,string) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#56-59) is never used and should be removed
EnumerableSetUpgradeable.add(EnumerableSetUpgradeable.Bytes32Set,bytes32) (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#147-149) is never used and should be removed
EnumerableSetUpgradeable.add(EnumerableSetUpgradeable.UintSet,uint256) (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#256-258) is never used and should be removed
EnumerableSetUpgradeable.at(EnumerableSetUpgradeable.Bytes32Set,uint256) (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#185-187) is never used and should be removed
EnumerableSetUpgradeable.at(EnumerableSetUpgradeable.UintSet,uint256) (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#294-296) is never used and should be removed
EnumerableSetUpgradeable.contains(EnumerableSetUpgradeable.Bytes32Set,bytes32) (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#164-166) is never used and should be removed
EnumerableSetUpgradeable.contains(EnumerableSetUpgradeable.UintSet,uint256) (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#273-275) is never used and should be removed
EnumerableSetUpgradeable.length(EnumerableSetUpgradeable.Bytes32Set) (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#171-173) is never used and should be removed
EnumerableSetUpgradeable.length(EnumerableSetUpgradeable.UintSet) (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#280-282) is never used and should be removed
EnumerableSetUpgradeable.remove(EnumerableSetUpgradeable.Bytes32Set,bytes32) (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#157-159) is never used and should be removed
EnumerableSetUpgradeable.remove(EnumerableSetUpgradeable.UintSet,uint256) (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#266-268) is never used and should be removed
SafeMathUpgradeable.div(uint256,uint256) (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#135-138) is never used and should be removed
SafeMathUpgradeable.div(uint256,uint256,string) (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#190-193) is never used and should be removed
SafeMathUpgradeable.mod(uint256,uint256) (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#152-155) is never used and should be removed
SafeMathUpgradeable.mod(uint256,uint256,string) (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#210-213) is never used and should be removed
SafeMathUpgradeable.mul(uint256,uint256) (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#116-121) is never used and should be removed
SafeMathUpgradeable.tryAdd(uint256,uint256) (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#24-28) is never used and should be removed
SafeMathUpgradeable.tryDiv(uint256,uint256) (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#60-63) is never used and should be removed
SafeMathUpgradeable.tryMod(uint256,uint256) (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#70-73) is never used and should be removed
SafeMathUpgradeable.tryMul(uint256,uint256) (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#45-53) is never used and should be removed
SafeMathUpgradeable.trySub(uint256,uint256) (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#35-38) is never used and should be removed
Remove unused functions.

Additional information: link

Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/cryptography/ECDSAUpgradeable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#3) is too complex
Pragma version>=0.6.5<0.8.0 (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/drafts/IERC20PermitUpgradeable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol#3) is too complex
Pragma version>=0.4.24<0.8.0 (@openzeppelin/contracts-upgradeable/proxy/Initializable.sol#4) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20BurnableUpgradeable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol#3) is too complex
Pragma version>=0.6.2<0.8.0 (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (contracts/synapse/SynapseERC20.sol#2) is too complex
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

Low level call in AddressUpgradeable.sendValue(address,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#53-59):
- (success) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
Low level call in AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#114-121):
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#119)
Low level call in AddressUpgradeable.functionStaticCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#139-145):
- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#143)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

Function AccessControlUpgradeable.__AccessControl_init() (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#46-49) is not in mixedCase
Function AccessControlUpgradeable.__AccessControl_init_unchained() (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#51-52) is not in mixedCase
Variable AccessControlUpgradeable.__gap (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#225) is not in mixedCase
Function EIP712Upgradeable.__EIP712_init(string,string) (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#44-46) is not in mixedCase
Function EIP712Upgradeable.__EIP712_init_unchained(string,string) (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#48-53) is not in mixedCase
Function EIP712Upgradeable._EIP712NameHash() (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#107-109) is not in mixedCase
Function EIP712Upgradeable._EIP712VersionHash() (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#117-119) is not in mixedCase
Variable EIP712Upgradeable._HASHED_NAME (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#27) is not in mixedCase
Variable EIP712Upgradeable._HASHED_VERSION (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#28) is not in mixedCase
Variable EIP712Upgradeable.__gap (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#120) is not in mixedCase
Function ERC20PermitUpgradeable.__ERC20Permit_init(string) (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#35-39) is not in mixedCase
Function ERC20PermitUpgradeable.__ERC20Permit_init_unchained(string) (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#41-43) is not in mixedCase
Function ERC20PermitUpgradeable.DOMAIN_SEPARATOR() (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#83-85) is not in mixedCase
Variable ERC20PermitUpgradeable.__gap (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#86) is not in mixedCase
Variable ERC20PermitUpgradeable._PERMIT_TYPEHASH (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#28) is not in mixedCase
Function IERC20PermitUpgradeable.DOMAIN_SEPARATOR() (@openzeppelin/contracts-upgradeable/drafts/IERC20PermitUpgradeable.sol#50) is not in mixedCase
Function ERC20BurnableUpgradeable.__ERC20Burnable_init() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20BurnableUpgradeable.sol#15-18) is not in mixedCase
Function ERC20BurnableUpgradeable.__ERC20Burnable_init_unchained() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20BurnableUpgradeable.sol#20-21) is not in mixedCase
Variable ERC20BurnableUpgradeable.__gap (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20BurnableUpgradeable.sol#50) is not in mixedCase
Function ERC20Upgradeable.__ERC20_init(string,string) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#56-59) is not in mixedCase
Function ERC20Upgradeable.__ERC20_init_unchained(string,string) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#61-65) is not in mixedCase
Variable ERC20Upgradeable.__gap (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#312) is not in mixedCase
Function ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#17-19) is not in mixedCase
Function ContextUpgradeable.__Context_init_unchained() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#21-22) is not in mixedCase
Variable ContextUpgradeable.__gap (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#31) is not in mixedCase
Parameter SynapseERC20.initialize(string,string,uint8,address)._name (contracts/synapse/SynapseERC20.sol#27) is not in mixedCase
Parameter SynapseERC20.initialize(string,string,uint8,address)._symbol (contracts/synapse/SynapseERC20.sol#28) is not in mixedCase
Parameter SynapseERC20.initialize(string,string,uint8,address)._decimals (contracts/synapse/SynapseERC20.sol#29) is not in mixedCase
Parameter SynapseERC20.initialize(string,string,uint8,address)._owner (contracts/synapse/SynapseERC20.sol#30) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Redundant expression "this (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#94)" inEIP712Upgradeable (@openzeppelin/contracts-upgradeable/drafts/EIP712Upgradeable.sol#25-121)
Redundant expression "this (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#28)" inContextUpgradeable (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#16-32)
Remove redundant statements if they congest code but offer no value.

Additional information: link

ERC20PermitUpgradeable.__gap (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#86) is never used in SynapseERC20 (contracts/synapse/SynapseERC20.sol#10-45)
Remove unused state variables.

Additional information: link

getRoleMemberCount(bytes32) should be declared external:
- AccessControlUpgradeable.getRoleMemberCount(bytes32) (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#103-105)
getRoleMember(bytes32,uint256) should be declared external:
- AccessControlUpgradeable.getRoleMember(bytes32,uint256) (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#119-121)
getRoleAdmin(bytes32) should be declared external:
- AccessControlUpgradeable.getRoleAdmin(bytes32) (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#129-131)
grantRole(bytes32,address) should be declared external:
- AccessControlUpgradeable.grantRole(bytes32,address) (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#143-147)
revokeRole(bytes32,address) should be declared external:
- AccessControlUpgradeable.revokeRole(bytes32,address) (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#158-162)
renounceRole(bytes32,address) should be declared external:
- AccessControlUpgradeable.renounceRole(bytes32,address) (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#178-182)
permit(address,address,uint256,uint256,uint8,bytes32,bytes32) should be declared external:
- ERC20PermitUpgradeable.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#48-70)
nonces(address) should be declared external:
- ERC20PermitUpgradeable.nonces(address) (@openzeppelin/contracts-upgradeable/drafts/ERC20PermitUpgradeable.sol#75-77)
burn(uint256) should be declared external:
- ERC20BurnableUpgradeable.burn(uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20BurnableUpgradeable.sol#29-31)
burnFrom(address,uint256) should be declared external:
- ERC20BurnableUpgradeable.burnFrom(address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20BurnableUpgradeable.sol#44-49)
name() should be declared external:
- ERC20Upgradeable.name() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#70-72)
symbol() should be declared external:
- ERC20Upgradeable.symbol() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#78-80)
decimals() should be declared external:
- ERC20Upgradeable.decimals() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#95-97)
totalSupply() should be declared external:
- ERC20Upgradeable.totalSupply() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#102-104)
balanceOf(address) should be declared external:
- ERC20Upgradeable.balanceOf(address) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#109-111)
transfer(address,uint256) should be declared external:
- ERC20Upgradeable.transfer(address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#121-124)
approve(address,uint256) should be declared external:
- ERC20Upgradeable.approve(address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#140-143)
transferFrom(address,address,uint256) should be declared external:
- ERC20Upgradeable.transferFrom(address,address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#158-162)
increaseAllowance(address,uint256) should be declared external:
- ERC20Upgradeable.increaseAllowance(address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#176-179)
decreaseAllowance(address,uint256) should be declared external:
- ERC20Upgradeable.decreaseAllowance(address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#195-198)
initialize(string,string,uint8,address) should be declared external:
- SynapseERC20.initialize(string,string,uint8,address) (contracts/synapse/SynapseERC20.sol#26-39)
mint(address,uint256) should be declared external:
- SynapseERC20.mint(address,uint256) (contracts/synapse/SynapseERC20.sol#41-44)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:
No disclosed threats
No disclosed threats


Unable to find audit link on the website


Token is not listed at Mobula.Finance

Additional information: link


Unable to find token on CoinHunt

Additional information: link


Young tokens have high risks of price dump / death

Price for HIGH

News for HIGH