Zilliqa (ZIL) is a token developed in the year 2017. Zilliqa is mainly based on the concept of Sharding and primarily aims at improving the scalability of the cryptocurrency networks as in case of Bitcoin or Ethereum. The white paper mentions that the transactions speed would be approximately a thousand times more than that of Ethereum network. Ziliqa is fast, secured and decentralized. Zilliqa’s high throughput means that you can focus on developing your ideas without worrying about network congestion, high transaction fees or security which are the key issues with legacy blockchain platforms. Zilliqa network uses a concept called Sharding where the transactions are grouped into smaller groups and divided among the miners for the parallel transactional verification. Developing smaller groups for transactional verification means the Consensus can be reached faster and hence a higher number of transactions can be processed in a given time frame. The capacity of the network linearly increases in other cryptocurrencies as the number of people joins the network, but in this case, the capacity is increased at a higher variable rate than the number of members joining the network. By incorporating the Sharding Technology, it can completely revolutionize the smart contract functionality too. Ziliqa has few pros as it has a great new technology. Zilliqa is the first platform to use sharding technology. This puts it ahead of the rest of the market. It’s a completely new kind of blockchain designed to solve the problem of scalability. Third-generation platforms like Zilliqa could be the big winners in the future of cryptocurrency. Ziliqa has a strong community. The platform has a lot of fans. The Zilliqa ICO only happened because there was so much demand for it. The Zilliqa ICO also shows that the crypto community is ready to see blockchain technology move to the next phase of its development.
Different versions of Solidity are used:
- Version used: ['^0.6.0', '^0.6.2']
- ^0.6.0 (#5)
- ^0.6.2 (#91)
- ^0.6.0 (#235)
- ^0.6.0 (#317)
- ^0.6.0 (#470)
Use one Solidity version.
Additional information: link
TransparentUpgradeableProxy.constructor(address,address,bytes)._admin (#346) shadows:
- TransparentUpgradeableProxy._admin() (#439-445) (function)
BEP20UpgradeableProxy.constructor(address,address,bytes).admin (#475) shadows:
- TransparentUpgradeableProxy.admin() (#383-385) (function)
Rename the local variables that shadow another component.
Additional information: link
UpgradeableProxy.constructor(address,bytes)._logic (#255) lacks a zero-check on :
- (success) = _logic.delegatecall(_data) (#260)
TransparentUpgradeableProxy.upgradeToAndCall(address,bytes).newImplementation (#429) lacks a zero-check on :
- (success) = newImplementation.delegatecall(data) (#432)
Check that the address is not zero.
Additional information: link
Modifier TransparentUpgradeableProxy.ifAdmin() (#366-372) does not always execute _; or revert
All the paths in a modifier must execute _ or revert.
Additional information: link
Proxy._delegate(address) (#23-43) uses assembly
- INLINE ASM (#25-42)
UpgradeableProxy._implementation() (#280-286) uses assembly
- INLINE ASM (#283-285)
Address._functionCallWithValue(address,bytes,uint256,string) (#207-228) uses assembly
- INLINE ASM (#220-223)
TransparentUpgradeableProxy._admin() (#439-445) uses assembly
- INLINE ASM (#442-444)
Address.isContract(address) (#114-123) uses assembly
- INLINE ASM (#121)
UpgradeableProxy._setImplementation(address) (#301-310) uses assembly
- INLINE ASM (#307-309)
TransparentUpgradeableProxy._setAdmin(address) (#450-457) uses assembly
- INLINE ASM (#454-456)
Do not use evm assembly.
Additional information: link
Address.sendValue(address,uint256) (#141-147) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#192-194) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#202-205) is never used and should be removed
Address._functionCallWithValue(address,bytes,uint256,string) (#207-228) is never used and should be removed
Address.functionCall(address,bytes,string) (#177-179) is never used and should be removed
Address.functionCall(address,bytes) (#167-169) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.6.0 (#5) allows old versions
solc-0.6.4 is not recommended for deployment
Pragma version^0.6.0 (#317) allows old versions
Pragma version^0.6.0 (#470) allows old versions
Pragma version^0.6.2 (#91) allows old versions
Pragma version^0.6.0 (#235) 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 TransparentUpgradeableProxy.upgradeToAndCall(address,bytes) (#429-434):
- (success) = newImplementation.delegatecall(data) (#432)
Low level call in UpgradeableProxy.constructor(address,bytes) (#255-263):
- (success) = _logic.delegatecall(_data) (#260)
Low level call in Address.sendValue(address,uint256) (#141-147):
- (success) = recipient.call{value: amount}() (#145)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#207-228):
- (success,returndata) = target.call{value: weiValue}(data) (#211)
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 audit link on the website
Unable to find whitepaper link on the website
Token is not listed at Mobula.Finance
Additional information: link
Twitter account link seems to be invalid