Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract ownership is not renounced (belongs to a wallet)
ERC1967Upgrade._upgradeToAndCallUUPS(address,bytes,bool) (#436-454) ignores return value by IERC1822Proxiable(newImplementation).proxiableUUID() (#447-451)
ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool) (#529-539) ignores return value by Address.functionDelegateCall(IBeacon(newBeacon).implementation(),data) (#537)
ERC1967Upgrade._upgradeToAndCall(address,bytes,bool) (#420-429) ignores return value by Address.functionDelegateCall(newImplementation,data) (#427)
Ensure that all the return values of the function calls are used.
Additional information: link
Variable 'ERC1967Upgrade._upgradeToAndCallUUPS(address,bytes,bool).slot (#447)' in ERC1967Upgrade._upgradeToAndCallUUPS(address,bytes,bool) (#436-454) potentially used before declaration: require(bool,string)(slot == _IMPLEMENTATION_SLOT,ERC1967Upgrade: unsupported proxiableUUID) (#448)
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
Address.verifyCallResult(bool,bytes,string) (#290-310) uses assembly
- INLINE ASM (#302-305)
Proxy._delegate(address) (#565-588) uses assembly
- INLINE ASM (#566-587)
StorageSlot.getUint256Slot(bytes32) (#81-85) uses assembly
- INLINE ASM (#82-84)
StorageSlot.getAddressSlot(bytes32) (#54-58) uses assembly
- INLINE ASM (#55-57)
StorageSlot.getBooleanSlot(bytes32) (#63-67) uses assembly
- INLINE ASM (#64-66)
StorageSlot.getBytes32Slot(bytes32) (#72-76) uses assembly
- INLINE ASM (#73-75)
Do not use evm assembly.
Additional information: link
Different versions of Solidity are used:
- Version used: ['^0.8.0', '^0.8.1', '^0.8.2']
- ^0.8.0 (#6)
- ^0.8.1 (#93)
- ^0.8.0 (#318)
- ^0.8.0 (#341)
- ^0.8.2 (#360)
- ^0.8.0 (#547)
- ^0.8.0 (#636)
- ^0.8.0 (#669)
Use one Solidity version.
Additional information: link
ERC1967Upgrade._upgradeToAndCallUUPS(address,bytes,bool).slot (#447) is a local variable never initialized
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
Address.sendValue(address,uint256) (#149-154) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#203-209) is never used and should be removed
ERC1967Upgrade._upgradeToAndCallUUPS(address,bytes,bool) (#436-454) is never used and should be removed
StorageSlot.getUint256Slot(bytes32) (#81-85) is never used and should be removed
ERC1967Upgrade._changeAdmin(address) (#488-491) is never used and should be removed
ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool) (#529-539) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#217-228) is never used and should be removed
ERC1967Upgrade._getAdmin() (#471-473) is never used and should be removed
Address.functionStaticCall(address,bytes) (#236-238) is never used and should be removed
ERC1967Upgrade._setBeacon(address) (#514-521) is never used and should be removed
ERC1967Upgrade._setAdmin(address) (#478-481) is never used and should be removed
StorageSlot.getBooleanSlot(bytes32) (#63-67) is never used and should be removed
StorageSlot.getBytes32Slot(bytes32) (#72-76) is never used and should be removed
Address.functionCall(address,bytes,string) (#184-190) is never used and should be removed
ERC1967Upgrade._getBeacon() (#507-509) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#246-255) is never used and should be removed
Address.functionCall(address,bytes) (#174-176) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (#318) allows old versions
Pragma version^0.8.1 (#93) allows old versions
Pragma version^0.8.0 (#341) allows old versions
Pragma version^0.8.0 (#669) allows old versions
Pragma version^0.8.2 (#360) allows old versions
Pragma version^0.8.0 (#636) allows old versions
Pragma version^0.8.0 (#547) allows old versions
Pragma version^0.8.0 (#6) 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
Low level call in Address.functionStaticCall(address,bytes,string) (#246-255):
- (success,returndata) = target.staticcall(data) (#253)
Low level call in Address.functionDelegateCall(address,bytes,string) (#273-282):
- (success,returndata) = target.delegatecall(data) (#280)
Low level call in Address.sendValue(address,uint256) (#149-154):
- (success) = recipient.call{value: amount}() (#152)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#217-228):
- (success,returndata) = target.call{value: value}(data) (#226)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
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