Tuesday, September 5, 2023

Release: sc - 0.43.0, codec 0.18.1, vm 0.5.0

Compatibility issues

Nightly Rust went through a few changes recently. To mitigate certain compatibiltiy problems, the meta crate looks at the rustc version when generating the wasm crate code:

  • pre-rustc-1.71;
  • between rustc-1.71 and rustc-1.73;
  • latest, after rustc-1.73.

Also upgraded some dependencies, notably proc-macro2 "1.0.66" and ed25519-dalek "2.0.0".

Initial version of the contract template tool

Can be accessed using the following CLI: CLI MultiversX Docs


  • Ability to download and adapt template contracts, to kick-start contract development;
  • A template mechanism that is customizable on the framework side;
  • Available templates: adder, empty, crypto-zombies.

The Rust debugger is now thread safe

It is now much safer to work with the Rust VM infrastructure in a multi-threaded environment. This shouldn’t impact most users.

Removed the `big-float` feature of multiversx-sc

The feature flag was preventing developers from using BigFloats in contracts, unless explicitly configured. Since the functionality is now available everywhere, this feature flag was redundant.

CLI fixes in multiversx-sc-meta

The --target-dir argument was confusing, and it was also clashing with one with the same name from cargo.
Redesigned as follows:

  • --target-dir-wasm refers to the wasm crate, this is the old --target-dir
  • --target-dir-meta is new, and refers to the meta crate. This was requested by the community.
  • --target-dir-all sets both of the above.
  • The old --target-dir still exists for backwards compatibility.

Read more here: CLI MultiversX Docs

Fixed an issue with contract calls and ESDT transfers in the `StaticApi` environment

Instancing a ContractCall that transfers ESDT tokens would have crashed in a StaticApi environment. Now fixed.

Do you need more information?

Explore projects, tokens, and integrations built on MultiversX