Skip to content

Releases: multiversx/mx-sdk-rs

sc 0.59.1, codec 0.23.1, chain 0.16.1, sdk 0.11.1

24 Jul 08:53
v0.59.1
9aa8d44
Compare
Choose a tag to compare
  • Governance proxy improvements.
  • Codec: added support for using u128.
  • SDK/interactors:
    • Added logging for http requests and responses;
    • Fixed an issue with retrieving results from transactions with multi-transfer ESDT.
    • Fixed a VM query error handling issue.

sc 0.59.0, codec 0.23.0, chain 0.16.0, sdk 0.11.0

03 Jul 21:00
421b2e7
Compare
Choose a tag to compare
  • Support for Barnard features
    • barnard feature for smart contracts, can be enabled in the contract's Cargo.toml or sc-config.toml;
    • Blockchain API new features:
      • Code hash API;
      • Block info:
        • Timstamps in milliseconds: get_block_timestamp_ms, get_prev_block_timestamp_ms, epoch_start_block_timestamp_ms;
        • Block round time: get_block_round_time_ms;
        • Epoch start info: epoch_start_block_timestamp_ms, epoch_start_block_nonce, epoch_start_block_round.
      • ESDT info:
        • Token type API supplied by the protocol (get_esdt_token_type);
        • get_esdt_token_data provides the token type supplied by the protocol;
        • EsdtTokenType updated with new ESDT types (meta & dynamic tokens).
    • New transaction mechanisms:
      • Fallible synchronous call;
      • Fallible transfer-execute;
      • Both are integrated in the unified syntax;
      • Simplified several scenarios by routing all through the fallible tx VM hooks.
    • Optimisations:
      • Multi-transfer call value including the direct EGLD is now provided by the VM directly.
      • Direct conversion between ManagedBuffer and i64 (small integer) now provided directly by the VM.
  • Back transfers now support multi-transfers with EGLD properly
    • New BackTransfer structure contains back-transfers as a multi-transfer list;
    • It contains methods to filter and extract EGLD or single ESDT values;
    • New implementation of ReturnsBackTransfers and ReturnsBackTransfersReset, which work with this payment list;
    • ReturnsBackTransfersEGLD now supports multi-transfer;
    • Old implementations renamed to *Legacy.
  • New proxies for system smart contracts:
    • Governance system SC;
    • Delegation system SC.
  • Core crate updates:
    • Bech32Address:
      • Deduplicated and moved to the core crate, guarded by a std feature;
      • Support for custom HRP;
    • BLSKey and BLSSignature types, to help the interaction with the delegation contract.
  • sc-meta:
    • Support for building contracts with std library;
    • test-gen support for #[should_panic] annotation.
  • Validator processing in the SDK, including parsing from pem.
  • Event log name can now be empty or missing in declaration, the method name will be used in this case.
  • Fixed a bug in mandos-rs, it was not handling a failing scQuery properly.
  • Codec: improved multi-value length handling.

sc 0.58.0, codec 0.22.1, chain 0.15.0, sdk 0.10.0

26 May 22:55
v0.58.0
25da28b
Compare
Choose a tag to compare
  • Rust VM and debugger redesign:
    • VM major refactoring: runtime, execution, debugger, VM hooks handler;
    • Integration of the new executor interface: new instance, executor & VM hooks interfaces;
    • Early exit mechanism for VM hooks;
    • Integration of Wasmer 2.2 production code, via an adapter;
    • Integration of Wasmer 6, as an experimental alternative, but more stable in tests;
    • Mechanism for running blackbox and mandos-rs tests with compiled contracts (.wasm);
    • Mechanism for running the same test via the debugger as part of the Rust test suite, and via Wasmer as part of the Wasm tests;
    • Crude metering, as a proof-of-concept, will be refined in the future. Gas schedule can be configured.
    • New feature compiled-sc-tests to replace run-go-tests.
  • Build system:
    • Opcode validator, as a post-build automated process. It detects and signals the usage of non-whitelisted WASM opcodes.
    • WASM target:
      • Default target is now wasmv1-none instead of wasm32-unknown-unknown. This is to allow upgrading to Rust 1.87, which uses LLVM 20 and normally emits bulk memory opcodes, which are currently unsupported on MultiversX. This change prevents these opcodes to be emitted.
      • A mechanism for overriding the default target, per contract, in sc-config.toml.
      • Target will be autoinstalled upon build, if missing.
  • sc-meta new test argument: -w or --wasm, to run tests based on compiled smart contracts; replaces --go.
  • Improved interactor error handling.
  • Back-transfer object cloneable.
  • Fixed typos.
  • Updated dependencies.

sc 0.57.1, sdk 0.9.1

04 Apr 14:11
v0.57.1
2d0f3d4
Compare
Choose a tag to compare
  • Retrieve token properties using get_token_properties;
  • Fixed URIs for esdt_metadata_recreate and esdt_metadata_update;
  • sc-meta:
    • Fixed test --chain-simulator used for running chain-simulator interactor tests;
    • Added extra checks for argument validity.
  • Interactor:
    • Fixed setStateOverwrite;
    • Fixed ReturnsTxHash result handler.
  • Enhanced checkState to allow partial key verification.

sc 0.57.0, codec 0.22.0, chain 0.14.0, sdk 0.9.0, scenario-format 0.23.1

11 Mar 09:15
v0.57.0
69b1b9b
Compare
Choose a tag to compare
  • Newer compiler support:
    • Dropped support for Rust compiler versions older than 1.83.
    • Support and optimizations for using Rust 1.85.
  • sc-meta:
    • Windows support.
    • Removed the concept of a "main" contract configuration.
  • Using typenum/generic-array instead of const generics/macros for:
    • ManagedVec payloads;
    • ManagedDecimal const decimals.
  • ManagedDecimal - more arithmetic operator implementations for combinations of const + var decimals.
  • ManagedVecItem can now be derived for enums with fields.
  • Codec and ABI support for bitflags.
  • Storage mappers:
    • New storage mapper: TimelockMapper;
    • Renamed source type and object.
  • ESDTTransferRole:
    • Reintroduced role after being accidentally dropped;
    • Added a token_has_transfer_role method for checking if it is set on a token, as a workaround until Barnard release.
  • Unified syntax - result handler for back transfers, which resets previous back transfers (ReturnsBackTransfersReset).
  • SDK:
    • Chain simulator - set state overwrite support;
    • Wallet get_shard method.
  • Debugger - improved mandos error messages.
  • Dependencies upgraded.

sc 0.56.1, chain 0.13.1, sdk 0.8.2

06 Feb 21:33
v0.56.1
98e4390
Compare
Choose a tag to compare
  • Allow setting gas for callback for direct transfers.
  • NestedEncode for interaction types: TestAddress, TestScAddress and TestTokenIdentifier.
  • Bugfix: pretty representation for ManagedAddress when debugging.
  • Upgrade dependency: ruplacer.

sc 0.56.0, chain 0.13.0, sdk 0.8.1

23 Jan 00:49
v0.56.0
12f9169
Compare
Choose a tag to compare
  • Rust VM support for readonly sync calls.
  • ManagedMapEncoded, a map type that can use any key or value types that are serializable.
  • ManagedDecimal implements ManagedVecItem.
  • Bugfixes, improvements:
    • Fixed a bug regarding the ESDT roles VM hook;
    • Pretty representation for ManagedBuffer and other string-like types when debugging;
    • API fix of an issue that was preventing set state in chain simulator;
    • Snippets generator fixes involving the crate path and the upgrade result handler.

sc 0.55.0, codec 0.21.2, chain 0.12.0, sdk 0.8.0

08 Jan 22:49
v0.55.0
1771a27
Compare
Choose a tag to compare
  • Integrating Spica changes into the framework:
    • EGLD+ESDT multi-transfers are now possible:
      • changed the handling of call values: EGLD is treated almost the same as an ESDT in all_transfers and multi_egld_or_esdt, old ESDT methods are given some protection against unexpected scenarios
      • changed the tx unified syntax for sending EGLD+ESDT from contracts, interactors and tests;
      • support in the Rust VM.
    • New built-in functions in the ESDTSystemSCProxy: ESDTModifyRoyalties, SDTSetNewURIs, ESDTModifyCreator, ESDTMetaDataRecreate, ESDTMetaDataUpdate.
  • Interactor support for "set state" on the chain simulator.
  • Fixed ownership for ManagedVec iterators, specifically reference iterators only produce references to the items.
  • Syntax cleanup:
    • #[payable] now allowed instead of #[payable("*")];
    • register_promise allows callback, without calling a function on destination.
  • Refactoring and optimizations:
    • Simplified the callback selector;
    • Performance improvements in ManagedVec iterators;
    • Removed some unnecessary bound checks in multi_esdt.

sc 0.54.5

28 Nov 12:46
v0.54.5
b4b40e0
Compare
Choose a tag to compare
  • ManagedVec - deprecated sort and guarded it by the alloc feature, since it uses the allocator.
  • sc-meta
    • versioning fix;
    • interactor generator fix.
  • Interactors - fixed code metadata on deploy.

sc 0.54.4

22 Nov 16:15
v0.54.4
dfc22b1
Compare
Choose a tag to compare
  • sc-meta
    • install debugger CLI that prepares VSCode extension for debugging;
    • fixed a crash involving templates and installers.
  • Deprecated #[derive(TypeAbi)] and added an additional warning in the macro.