Skip to content

Releases: multiversx/mx-sdk-rs

elrond-wasm 0.38.0, elrond-codec 0.16.0, mandos 0.18.0

15 Dec 13:42
v0.38.0
35f911a
Compare
Choose a tag to compare
  • ContractCall refactor. Building a contract call comes with harder compile-time constraints. This also reduces compiled code size.
  • ContractBase supertrait can be now stated explicitly for contract and module traits.
  • Debugger:
    • Callback payment is now set correctly.
    • Function names are represented internally as strings instead of bytes, which aids debugging.
  • Removed the ei-1-2 feature, which was guarding the newer VM functions. These functions are in the mainnet, so this feature is no longer needed.
  • New utility functions: self.send().esdt_local_burn_multi(..., self.blockchain().get_token_attributes(...).
  • Updated all crates to Rust 2021.

elrond-wasm 0.37.0, elrond-codec 0.15.0

09 Dec 09:05
v0.37.0
00b9702
Compare
Choose a tag to compare
  • Multi-contract build system:
    • build system refactor;
    • multicontract.toml config system with labels,
    • eliminated monomorphization issue that was bloating some contracts;
    • build post-processing: wasm2wat, imports via wasm-objdump.
  • Support for the new async call system (promises):
    • new APIs;
    • a new flavor of callbacks (#[promises-callback]);
    • callback optimizations.
  • elrond-codec refactor: removed TopEncodeNoErr, NestedEncodeNoErr and TypeInfo
  • System SC proxy: added support for controlChanges endpoint and transfer create role (from community).
  • Module updates:
    • MergedTokenInstances module;
    • Governance module improvements;
    • set_if_empty for FungibleTokenMapper and NonFungibleTokenMapper.
  • IntoMultiValue trait.
  • Storage mapper improvements:
    • Storage mappers can read from another contract.
    • BiDiMapper improvements;
    • Fixed missing substitution rules for FungibleTokenMapper, NonFungibleTokenMapper, UniqueIdMapper, BiDiMapper, WhitelistMapper, RandomnessSource;
    • Added take and replace methods for SingleValueMapper;
    • Implemented Extend trait for UnorderedSetMapper.

elrond-wasm 0.36.1

01 Nov 18:23
v0.36.1
5eb8493
Compare
Choose a tag to compare
  • Deprecated ContractCall execute_on_dest_context_ignore_result method, since it is currently redundant.

elrond-wasm 0.36.0, elrond-codec 0.14.0

13 Oct 08:19
v0.36.0
243f8be
Compare
Choose a tag to compare
  • EsdtTokenPayment legacy decode: objects encoded by older versions of the framework can now also be decoded, if flag esdt-token-payment-legacy-decode is active.
  • Codec NestedDecodeInput new peek_into method.
  • FungibleTokenMapper caches the token identifier.

elrond-wasm 0.35.0, elrond-codec 0.13.0, mandos 0.17.0

20 Sep 13:04
v0.35.0
c757398
Compare
Choose a tag to compare
  • Rust interactor snippet generator.
  • Added some missing substitution rules in the contract preprocessor.
  • Allow single zero byte when top-decoding Option::None.
  • Ongoing operations module.
  • Claim developer rewards module.
  • FromIterator trait for ManagedVec.
  • Mandos "id" accepted as synonym to "txId".

elrond-wasm 0.34.1

19 Jul 13:39
v0.34.1
3fd1d69
Compare
Choose a tag to compare
  • #[only_admin] annotation
  • Safer BigUint/BigInt conversions
  • Added and published price-aggregator and wegld-swap core contracts.

elrond-wasm 0.34.0, elrond-codec 0.12.0, mandos 0.16.0, elrond-interact-snippets 0.1.0

11 Jul 11:11
v0.34.0
a2e1d26
Compare
Choose a tag to compare
  • Major refactor of the mandos-rs infrastructure.
    • High-level Mandos objects moved to elrond-wasm-debug;
    • The mandos crate no longer depends on elrond-wasm-debug (as originally intended and implemented);
    • Typed mandos contract call objects, for better call syntax.
    • More syntactic sugar for writing mandos calls.
  • The first version of elrond-interact-snippets, which can be used to write short blockchain interactor programs.
    • The syntax relies on contract proxies to easily build calls.
    • Some of the infrastructure is shared with Mandos.
    • There is an example of such a interactor for the multisig contract.
  • Refactor of managed type handles in all API traits. Eliminated undefined behavior when using the same handle in multiple contexts.
  • Transfer role proxy module.
  • NFT merge module.
  • #[only_user_account] annotation. Only user accounts can call these endpoints.
  • ABI - fixed missing event logs from modules.

elrond-wasm 0.33.1, mandos 0.15.1

24 Jun 20:34
v0.33.1
731b035
Compare
Choose a tag to compare
  • CodecSelf for BigInt

elrond-wasm 0.33.0, mandos 0.15.0

21 Jun 00:12
v0.33.0
8e6047e
Compare
Choose a tag to compare
  • Removed the data field for direct EGLD & ESDT transfers.
  • Testing and debugging environment aligned with VM version 1.4.53.
  • Call value and token data infrastructure additional cleanup.

elrond-wasm 0.32.0, mandos 0.14.0

03 Jun 16:52
v0.32.0
9e0f13a
Compare
Choose a tag to compare
  • VM new functionality added as part of the environment interface 1.2:
    • Fully managed functionality for elliptic curves (no allocator);
    • Fully managed cryptographic functions (no allocator);
    • More efficient printing of big ints and hex;
    • Functionality available by adding the ei-1-2 flag to contracts.
  • BigFloat functionality. Since the functionality is not yet deployed on mainnet, use flag big-float to use.
  • Major refactoring of the call value mechanism:
    • TokenIdentifier now only refers to ESDT, for mixed EGLD+ESDT we have EgldOrEsdtTokenIdentifier.
    • EsdtTokenPayment now only refers to ESDT, for mixed EGLD+ESDT we have EgldOrEsdtTokenPayment.
    • Compact version for multi-transfer: let [payment_a, payment_b, payment_c] = self.call_value().multi_esdt();.
    • Explicit single_esdt vs. single_fungible_esdt vs. egld_or_single_esdt vs. egld_or_single_fungible_esdt.
    • Payment arguments are still supported, although discouraged. They always assume the EGLD+ESDT scenario.
  • ManagedOption provides some minor optimization for specific use-cases. Mostly for use in the framework.
  • Cleanup in the callback mechanism and in the SendApi.
  • SparseArray implementation.
  • UniqueIdMapper - efficient storage mapper for holding unique values.
  • The ABI also contains events.
  • New standard module: StakingModule.