As many of you know, in addition to high quality DApps, Broxus develops tools for easy and fast development on the Everscale network. And we’re happy to let you know that we’ve recently updated Ever-locklift (GitHub). Ever-locklift is a Node JS framework for working with Everscale contracts that helps you build, test, run and maintain your smart contracts.
Full refactoring & typescript support
The new version is rewritten from scratch in TypeScript. TypeScript tests and scripts are supported natively now. Locklift now uses the everscale-inpage-provider (GitHub) as a core for interacting with the blockchain
The first Locklift version supported only one communication channel with the node — via Graph QL. In the new release, we have added support for the JRPC protocol.
Thanks to the unified code base with https://github.com/broxus/everscale-inpage-provider, the syntax of the new tests largely matches the syntax of your frontend applications.
Type hints
Now any IDE with TypeScript support will provide you with lists of the available methods as well as the parameters corresponding to their types. Types are collected and updated automatically when contracts are being built.
import { FactorySource } from “../build/factorySource”;let sample: Contract<FactorySource[“Sample”]>;
You’ll see both available methods…
…and accepted parameters
Better control over contract execution flow
The code below will wait for the execution of only the first message.
await sample.methods.ping({ recipient: new_sample.address}).sendExternal({ publicKey: signer.publicKey })
In case you need to make sure that the call chain has been fully executed, use waitFinalized.
await locklift.transactions.waitFinalized( sample.methods.ping({ recipient: new_sample.address }).sendExternal({ publicKey: signer.publicKey }));
Tracing module
We use the following test contract to demonstrate.
await locklift.tracing.trace( sample.methods.ping({ recipient: new_sample.address }).sendExternal({ publicKey: signer.publicKey }), {} );
You will get a visual representation of the branch that fell with an error in the console. You can find more details on using the tracing module in the documentation.
Faster compilation
The contracts are now being assembled in parallel. This provides a significant boost in speed, which is especially noticeable on projects with a large code base. For example https://github.com/broxus/octusbridge-contracts/ on the MacBook Pro i9 builds in 5 seconds, while the first version of the locklift takes 18 seconds!
Automatic compiler and linker loading
Now to change the compiler or linker, you just need to specify the version in locklift.config.js . Locklift will automatically download the specified version.
Custom giver support
We have completely updated the giver model. You no longer need to deploy a special Giver contract to deploy contracts to the real network, as it was before. It is enough to specify an existing SafeMultisig wallet from EVER Wallet and specify the seed phrase.
Win and Mac platforms are supported now
Last but not least. From now on, locklift is officially supported on Windows via WSL.
Experience the convenience of Everscale smart contracts development with tools from Broxus! 😊