MULTIVERSX

December 9, 2022

Release: elrond-wasm - v0.37.0, elrond-codec 0.15.0

Multi-contract build system

In short, it allows developers to set up their projects so as to produce multiple contracts from the same sources.

Full documentation: Smart Contract Build Reference - Docs

Support for promises

Promises are the future mechanism for performing cross-shard asynchronous calls. They are not yet available on the Mainnet, so we advise developers to stay away from them. They were, however, included for testing purposes and in preparation for the next Mainnet release.

Contracts cannot yet use this feature without adding feature flag promises under elrond-wasm in Cargo.toml.

Refactor on elrond-codec

We removed some old traits and mechanisms that were no longer in use:

  • TopEncodeNoErr;
  • NestedEncodeNoErr;
  • TypeInfo;

This should not affect smart contract developers.

Improvements on the System SC Proxy

We had 2 PRs from the community, adding missing functionality to the system SC proxy:

  • controlChanges method;
  • transfer create role;

We use proxies to call smart contracts easier, either from other contracts, or from off-chain code. We usually generate these proxies automatically for contracts. The System SC Proxy is a special proxy, built by us to call the System SC that deals, among other things, with issuing and managing tokens.

Module updates

  • New MergedTokenInstances module;
  • Governance module improvements;
  • set_if_empty for FungibleTokenMapper and NonFungibleTokenMapper.

Storage mapper improvements

  • Storage mappers can read from another contract;
  • BiDiMapper improvements;
  • Fixed missing substitution rules for FungibleTokenMapper, NonFungibleTokenMapper, UniqueIdMapper, BiDiMapper, WhitelistMapper, RandomnessSource. Make sure to remove the Api declaration, e.g. FungibleTokenMapper<Self::Api> becomes just FungibleTokenMapper.
  • Added take and replace methods for SingleValueMapper;
  • Implemented Extend trait for UnorderedSetMapper.

Github Release Link: elrond-wasm-rs: v0.37.0, elrond-codec 0.15.0 .

Feel free to send us feedback or open a topic in our Github Discussions tab and share your thoughts so that the entire MultiversX community can hear you. If you have a great idea, share it with us and let’s make it happen by implementing and integrating it in our ecosystem.

Stay Hungry! Stay Foolish!