Ispolink is a novel cross-chain platform for developers powered by Binance Smart Chain and Polygon's layer 2 scaling technology. Ispolink empowers blockchain firms to source seamlessly industry-leading talents with internal AI-powered algorithms.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
ERC1967Upgrade._upgradeToAndCall(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#63-72) ignores return value by Address.functionDelegateCall(newImplementation,data) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#70)
ERC1967Upgrade._upgradeToAndCallSecure(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#79-107) ignores return value by Address.functionDelegateCall(newImplementation,data) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#89)
ERC1967Upgrade._upgradeToAndCallSecure(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#79-107) ignores return value by Address.functionDelegateCall(newImplementation,abi.encodeWithSignature(upgradeTo(address),oldImplementation)) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#97-100)
ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#182-192) ignores return value by Address.functionDelegateCall(IBeacon(newBeacon).implementation(),data) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#190)
Ensure that all the return values of the function calls are used.
Additional information: link
Modifier TransparentUpgradeableProxy.ifAdmin() (@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#45-51) does not always execute _; or revert
All the paths in a modifier must execute _ or revert.
Additional information: link
Reentrancy in ERC1967Upgrade._upgradeToAndCallSecure(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#79-107):
External calls:
- Address.functionDelegateCall(newImplementation,data) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#89)
- Address.functionDelegateCall(newImplementation,abi.encodeWithSignature(upgradeTo(address),oldImplementation)) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#97-100)
Event emitted after the call(s):
- Upgraded(newImplementation) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#55)
- _upgradeTo(newImplementation) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#105)
Reentrancy in TransparentUpgradeableProxy.constructor(address,address,bytes) (@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#33-40):
External calls:
- ERC1967Proxy(_logic,_data) (@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#37)
- Address.functionDelegateCall(newImplementation,data) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#70)
- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts/utils/Address.sol#185)
Event emitted after the call(s):
- AdminChanged(_getAdmin(),newAdmin) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#142)
- _changeAdmin(admin_) (@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#39)
Apply the check-effects-interactions pattern.
Additional information: link
Proxy._delegate(address) (@openzeppelin/contracts/proxy/Proxy.sol#21-44) uses assembly
- INLINE ASM (@openzeppelin/contracts/proxy/Proxy.sol#22-43)
Address.isContract(address) (@openzeppelin/contracts/utils/Address.sol#26-36) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#32-34)
Address.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#195-215) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#207-210)
StorageSlot.getAddressSlot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#51-55) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/StorageSlot.sol#52-54)
StorageSlot.getBooleanSlot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#60-64) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/StorageSlot.sol#61-63)
StorageSlot.getBytes32Slot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#69-73) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/StorageSlot.sol#70-72)
StorageSlot.getUint256Slot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#78-82) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/StorageSlot.sol#79-81)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['^0.8.0', '^0.8.2']
- ^0.8.0 (@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol#3)
- ^0.8.2 (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#3)
- ^0.8.0 (@openzeppelin/contracts/proxy/Proxy.sol#3)
- ^0.8.0 (@openzeppelin/contracts/proxy/beacon/IBeacon.sol#3)
- ^0.8.0 (@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/Address.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/StorageSlot.sol#3)
Use one Solidity version.
Additional information: link
Address.functionCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#79-81) is never used and should be removed
Address.functionCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#89-95) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts/utils/Address.sol#108-114) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#122-133) is never used and should be removed
Address.functionStaticCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#141-143) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#151-160) is never used and should be removed
Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#54-59) is never used and should be removed
ERC1967Upgrade._getBeacon() (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#160-162) is never used and should be removed
ERC1967Upgrade._setBeacon(address) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#167-174) is never used and should be removed
ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#182-192) is never used and should be removed
ERC1967Upgrade._upgradeToAndCallSecure(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#79-107) is never used and should be removed
Proxy._implementation() (@openzeppelin/contracts/proxy/Proxy.sol#50) is never used and should be removed
StorageSlot.getBooleanSlot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#60-64) is never used and should be removed
StorageSlot.getBytes32Slot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#69-73) is never used and should be removed
StorageSlot.getUint256Slot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#78-82) is never used and should be removed
TransparentUpgradeableProxy._admin() (@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#113-115) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol#3) allows old versions
Pragma version^0.8.2 (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/proxy/Proxy.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/proxy/beacon/IBeacon.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Address.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/StorageSlot.sol#3) allows old versions
solc-0.8.2 is not recommended for deployment
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.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#54-59):
- (success) = recipient.call{value: amount}() (@openzeppelin/contracts/utils/Address.sol#57)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#122-133):
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts/utils/Address.sol#131)
Low level call in Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#151-160):
- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts/utils/Address.sol#158)
Low level call in Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#178-187):
- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts/utils/Address.sol#185)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
TransparentUpgradeableProxy (@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#28-124) should inherit from IBeacon (@openzeppelin/contracts/proxy/beacon/IBeacon.sol#8-15)
Inherit from the missing interface or contract.
Additional information: link
Unable to find token contract audit
Unable to find audit link on the website
Unable to find token on CoinHunt
Additional information: link
Unable to find code repository for the project
Young tokens have high risks of price dump / death
Young tokens have high risks of scam / price dump / death
Unable to find Youtube account