Etherlime Spring Updates

Desimira Mitkova
LimeChain
Published in
4 min readApr 5, 2019

The spring is the season when everything around is boosting up and we proudly could confirm - Etherlime is not an exception. Our infant has grown to a mature tool and is blooming now as a framework that provides not only base functionalities but also innovative blockchain integrations.

What’s new?

During the past few months, we worked purposefully to fulfill Etherlime with all core development utilities and we could now focus on its distinctive upgrades. To make it faster and easier to use is our essential mission as well, so we never stop to optimize the code.

New Etherlime coverage

We have implemented a new coverage library in order to support Solidity versions higher than 0.5.0. The implemented coverage is based on 0x-monorepo library. Now, the coverage is twice faster and it does not run your tests a couple of times during the coverage process. It uses transaction traces in order to figure out which lines of Solidity source code have been covered by your tests. You can browse your coverage results on your local machine using your favorite browser and you can have an easy to use web page!

Updated documentation of Etherlime coverage can be found here.

Flattener

One of the most annoying doings for blockchain developers is to flatten all Solidity code in one file when it comes time to verify a smart contract. We understand that feeling deeply and have developed a cli command that would do it for you. Etherlime flattener will fetch all imported sources of a given smart contract (including external imports) and will record the code sorted according to the dependencies.

etherlime flatten [file] [solcVersion]

Full documentation can be found here.

Zero Knowledge proof utility

💥 Boom! This is our new exceptional functionality. We have implemented Zero Knowledge Proof method based on iden3/snarksjs and iden3/circom library. Now you can generate an etherlime zero knowledge proof enabled project that comes out with primary circuit file ready to be compiled and input file with primary signals. Using etherlime CLI commands, you can go through the whole process of:

  • creating a circuit
  • compiling that circuit
  • generating a proof
  • verifying that proof off-chain
  • generate a verifier smart contract
  • deploying it
  • make on-chain proofs with simple steps.

You can find out more about these fascinating features and find out how to use them here.

Etherlime IDE

With a simple cli command all your smart contracts will appear in web-based Solidity IDE that allows you to easily edit, compile, deploy and interact with them. The IDE makes the connection with running ganache and simplifies switching between accounts. Its usage is yet to be improved. We would like to thank Jérémy (SystemGlitch) for his great work.

Vyper Compiler

The ability to compile vyper smart contracts is now successfully integrated in Etherlime. Using the same cli command etherlime compile it would automatically fetch all files with .sol and .vy extension and would record the compiled json object in ./buildfolder. To prevent some eventual installation troubles we decided to implement the vyper compiler using docker image. So all you need is to have running docker. Deployment scripts for vyper smart contracts do not differ in any way from those for solidity contracts. Just have in mind that vyper uses some types as decimal that are not supported in Solidity and this may provoke errors but such an enhancement is going to be enabled soon using the new v5 of ethersjs.

React dApp

Etherlime shape command has enriched with one more ready to use decentralized application (dApp). This time this is integrated with React front-end blockchain project. Running etherlime shape react will shape a boilerplate containing all modules and settings needed. Find out how to use it here.

What’s next

We are currently working on IDE’s improvement and we also research other useful functionalities that can be applied.

Off-chain solutions

Being big fans of off-chain scaling solutions one of our ambitious goals is to provide a helpful workaround for easy plasma chains usage. Monoplasma (one-to-many off-chain payments) shape is going to be the first example that shows how to integrate it.

Verifier

In addition to flattener, we aim to implement scripts for smart contract’s verification within the deployment.

ZeppelinOS deployment

Seeing the advantages of ZeppelinOS platform for smart contracts development we want Etherlime to provide the option to use it too. We are still on a very base level but working hard to develop such a feature.

Come on! Be active, use Etherlime and tell us what can be done more!

Follow us on social media

--

--