By Ligo team
We are delighted to announce the capability to write, package and publish a reusable piece of code dedicated to LIGO.
While working on a project you often need to use a common, reusable piece of code. Most of the time such functions are provided by the standard library of the programming language. When it is not feasible these functions can be provided by an external library.
In version 0.35.0 of LIGO this feature is now available, thanks for Esy package manager.
Imagine in your project you need an open source library that is already designed and published by a third party. Let’s call it
First, you should create an empty file named
package.json. Then you can perform a local installation of the identified library using the following LIGO CLI.
touch package.json ligo install ligo-list-helpers
Once this installation has been completed you are able to
import related modules in your LIGO source code from the installed library.
#import "ligo-list-helpers/list.mligo" "XList" ...
Module imports work across all syntaxes of LIGO i.e. you can
import a module written in CameLIGO in a contract written in JsLIGO.
In addition, the
package.json file is updated with a new entry targeting the installed package, of course.
If required, you can also manually specify the required packages in the
package.json file. If you clone a project which already has a
package.json, installing all the required libraries is quite easy!
This command installs packages to the
.ligo directory in the repository where you execute the command, but this can be changed with an additional parameter named
If you want to design and share a LIGO library in any language you choose (PascaLIGO, ReasonLIGO, CameLIGO or JsLIGO), this can be done using standard npm commands.
First, you should initialise a new library and setup the corresponding metadata. Once your library is completed and tested you can publish it. These initialisation and publication operations are performed via the
If you want to participate, contributions are welcome and help the growth of LIGO and its adoption.
More information can be found here.