Linear Token Logo

LINA [Linear] Token

About LINA

Listings

Token 3 years
CoinGecko 3 years
CoinMarketCap 3 years
white paper

A Cross-chain Decentralized Delta-One Asset Protocol with Unlimited Liquidity.

Laser Scorebeta Last Audit: 28 April 2023

report
Token seems to be legit.

Anti-Scam

Links

Different versions of Solidity are used:
- Version used: ['>=0.4.24<0.8.0', '>=0.6.0<0.8.0', '>=0.6.2<0.8.0', '^0.6.0']
- >=0.6.2<0.8.0 (Address.sol#3)
- ^0.6.0 (AdminUpgradeabilityProxy.sol#3)
- >=0.6.0<0.8.0 (Context.sol#3)
- >=0.4.24<0.8.0 (Initializable.sol#4)
- >=0.6.0<0.8.0 (Ownable.sol#3)
- ^0.6.0 (Proxy.sol#3)
- ^0.6.0 (ProxyAdmin.sol#3)
- ^0.6.0 (UpgradeabilityProxy.sol#3)
Use one Solidity version.

Additional information: link

AdminUpgradeabilityProxy.constructor(address,address,bytes)._admin (AdminUpgradeabilityProxy.sol#25) shadows:
- AdminUpgradeabilityProxy._admin() (AdminUpgradeabilityProxy.sol#110-115) (function)
Rename the local variables that shadow another component.

Additional information: link

AdminUpgradeabilityProxy.upgradeToAndCall(address,bytes).newImplementation (AdminUpgradeabilityProxy.sol#101) lacks a zero-check on :
- (success) = newImplementation.delegatecall(data) (AdminUpgradeabilityProxy.sol#103)
UpgradeabilityProxy.constructor(address,bytes)._logic (UpgradeabilityProxy.sol#23) lacks a zero-check on :
- (success) = _logic.delegatecall(_data) (UpgradeabilityProxy.sol#27)
Check that the address is not zero.

Additional information: link

Modifier AdminUpgradeabilityProxy.ifAdmin() (AdminUpgradeabilityProxy.sol#50-56) does not always execute _; or revert
All the paths in a modifier must execute _ or revert.

Additional information: link

UpgradeabilityProxy._implementation() (UpgradeabilityProxy.sol#49-54) uses assembly
- INLINE ASM (UpgradeabilityProxy.sol#51-53)
AdminUpgradeabilityProxy._admin() (AdminUpgradeabilityProxy.sol#110-115) uses assembly
- INLINE ASM (AdminUpgradeabilityProxy.sol#112-114)
Address._verifyCallResult(bool,bytes,string) (Address.sol#147-164) uses assembly
- INLINE ASM (Address.sol#156-159)
UpgradeabilityProxy._setImplementation(address) (UpgradeabilityProxy.sol#69-77) uses assembly
- INLINE ASM (UpgradeabilityProxy.sol#74-76)
AdminUpgradeabilityProxy._setAdmin(address) (AdminUpgradeabilityProxy.sol#121-127) uses assembly
- INLINE ASM (AdminUpgradeabilityProxy.sol#124-126)
Address.isContract(address) (Address.sol#26-35) uses assembly
- INLINE ASM (Address.sol#33)
Initializable._isConstructor() (Initializable.sol#51-62) uses assembly
- INLINE ASM (Initializable.sol#60)
Proxy._delegate(address) (Proxy.sol#40-59) uses assembly
- INLINE ASM (Proxy.sol#41-58)
Do not use evm assembly.

Additional information: link

Address.sendValue(address,uint256) (Address.sol#53-59) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (Address.sol#104-106) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (Address.sol#114-121) is never used and should be removed
Context._msgData() (Context.sol#20-23) is never used and should be removed
Address.functionStaticCall(address,bytes) (Address.sol#129-131) is never used and should be removed
Address._verifyCallResult(bool,bytes,string) (Address.sol#147-164) is never used and should be removed
Initializable._isConstructor() (Initializable.sol#51-62) is never used and should be removed
Address.functionCall(address,bytes,string) (Address.sol#89-91) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (Address.sol#139-145) is never used and should be removed
Address.functionCall(address,bytes) (Address.sol#79-81) is never used and should be removed
Remove unused functions.

Additional information: link

Pragma version>=0.6.2<0.8.0 (Address.sol#3) is too complex
Pragma version^0.6.0 (UpgradeabilityProxy.sol#3) allows old versions
solc-0.6.8 is not recommended for deployment
Pragma version>=0.6.0<0.8.0 (Context.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (Ownable.sol#3) is too complex
Pragma version^0.6.0 (AdminUpgradeabilityProxy.sol#3) allows old versions
Pragma version>=0.4.24<0.8.0 (Initializable.sol#4) is too complex
Pragma version^0.6.0 (ProxyAdmin.sol#3) allows old versions
Pragma version^0.6.0 (Proxy.sol#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

Low level call in Address.functionStaticCall(address,bytes,string) (Address.sol#139-145):
- (success,returndata) = target.staticcall(data) (Address.sol#143)
Low level call in Address.sendValue(address,uint256) (Address.sol#53-59):
- (success) = recipient.call{value: amount}() (Address.sol#57)
Low level call in ProxyAdmin.getProxyImplementation(AdminUpgradeabilityProxy) (ProxyAdmin.sol#20-26):
- (success,returndata) = address(proxy).staticcall(0x5c60da1b) (ProxyAdmin.sol#23)
Low level call in ProxyAdmin.getProxyAdmin(AdminUpgradeabilityProxy) (ProxyAdmin.sol#32-38):
- (success,returndata) = address(proxy).staticcall(0xf851a440) (ProxyAdmin.sol#35)
Low level call in AdminUpgradeabilityProxy.upgradeToAndCall(address,bytes) (AdminUpgradeabilityProxy.sol#101-105):
- (success) = newImplementation.delegatecall(data) (AdminUpgradeabilityProxy.sol#103)
Low level call in UpgradeabilityProxy.constructor(address,bytes) (UpgradeabilityProxy.sol#23-30):
- (success) = _logic.delegatecall(_data) (UpgradeabilityProxy.sol#27)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (Address.sol#114-121):
- (success,returndata) = target.call{value: value}(data) (Address.sol#119)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

Redundant expression "this (Context.sol#21)" inContext (Context.sol#15-24)
Remove redundant statements if they congest code but offer no value.

Additional information: link

getProxyAdmin(AdminUpgradeabilityProxy) should be declared external:
- ProxyAdmin.getProxyAdmin(AdminUpgradeabilityProxy) (ProxyAdmin.sol#32-38)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (Ownable.sol#54-57)
owner() should be declared external:
- Ownable.owner() (Ownable.sol#35-37)
upgrade(AdminUpgradeabilityProxy,address) should be declared external:
- ProxyAdmin.upgrade(AdminUpgradeabilityProxy,address) (ProxyAdmin.sol#54-56)
upgradeAndCall(AdminUpgradeabilityProxy,address,bytes) should be declared external:
- ProxyAdmin.upgradeAndCall(AdminUpgradeabilityProxy,address,bytes) (ProxyAdmin.sol#67-69)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (Ownable.sol#63-67)
getProxyImplementation(AdminUpgradeabilityProxy) should be declared external:
- ProxyAdmin.getProxyImplementation(AdminUpgradeabilityProxy) (ProxyAdmin.sol#20-26)
changeProxyAdmin(AdminUpgradeabilityProxy,address) should be declared external:
- ProxyAdmin.changeProxyAdmin(AdminUpgradeabilityProxy,address) (ProxyAdmin.sol#45-47)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:
No disclosed threats


Twitter account link seems to be invalid


Unable to find Youtube account


Unable to find audit link on the website


Token is not listed at Mobula.Finance

Additional information: link

No disclosed threats

Price for LINA