Skip to content

Releases: multiversx/mx-sdk-rs

sc 0.52.1

31 Jul 13:21
v0.52.1
49bc839
Compare
Choose a tag to compare
  • ManagedBufferReadToEnd TypeAbi implementation.

sc 0.52.0, codec 0.20.1

31 Jul 01:56
v0.52.0
2148c69
Compare
Choose a tag to compare
  • ManagedBufferReadToEnd type, which flushed a nested data buffer.
  • Fixed hex and binary formatters for byte slices.
  • Added EI 1.4 and 1.5 configs.
  • Dependency upgrades.

sc 0.51.1

06 Jul 15:28
v0.51.1
4a4dfae
Compare
Choose a tag to compare
  • sc-meta upgrade bugfix.

sc 0.51.0, codec 0.20.0, vm 0.9.0, sdk 0.5.0, scenario-format 0.22.3

06 Jul 14:46
v0.51.0
c4608cc
Compare
Choose a tag to compare
  • Major refactoring of multiversx-sc-meta
    • Crate multiversx-sc-meta split in 2:
      1. multiversx-sc-meta remains the standalone tool. For backwards compatibility, it can still be used in contract meta crates, but a warning will be issued.
      2. multiversx-sc-meta-lib is the contract-only library to contract meta crates.
    • The refactoring came with few code changes, but dependencies were disentangled and cleaned up.
    • Account retrieval tool was merged into sc-meta standalone. Previously little known feature, it enables downloading the full state of an account and formatting it as a mandos set state step. Very useful for generating tests and investigating state.
    • multiversx-sdk was also refactored, especially the gateway proxy.
  • A new code report is available in the .mxsc.json build output. The report analyzes the wasm code after build and always offers the following information:
    • imports: what VM hooks are used;
    • eiCheck: if the used imports comply with the environment interface (EI, allowed VM hooks);
    • hasAllocator: is it allocates on the heap;
    • hasPanic: whether it produces Rust panics and formats error messages using the standard Rust formatter (a source of code bloat).
  • ManagedDecimal and ManagedDecimalSigned:
    • New types that encapulate a managed BigUint and BigInt respectively, but treat them as base 10 fixed point rational numbers.
    • Two flavors are allowed: the number of decimals is known at compile time (e.g. EGLD always has 18 decimals), or only at runtime.
      • Type ConstDecimals is able to resolve conversions at compile time, reducing code size and making encoding and decoding easier, since the number of decimals does not need to be encoded.
      • Regular usize number of decimals is resolved at runtime.
    • All basic arithmetic operations are implemented for these types, just like for the big integers.
  • Implemented logarithms:
    • Natural logarithm ln for ManagedDecimal, BigFloat, and BigInt.
    • Base 2 logarithm log2 for ManagedDecimal.
    • Precision is about 5 decimals, largely irrespective of input.
    • The operation is cheap, ln costs 44980 gas for managed decimals and 153772 for big floats, largely irrespective of input.
  • Smart contract code on the front-end:
    • Framework and contract code, together with the Rust VM as a backend, can now be compiled to WebAssembly for front-end, using wasm-bindgen.
    • A few incompatible Rust VM features needed to be made optional for this to work.
  • Reverted changes in sc 0.50.6 (diagnostic::on_unimplemented & rustc 1.78 dependency).
  • Bugfix: sync_call_readonly can now be used with proxies.

sc 0.50.6

05 Jul 09:14
v0.50.6
f7d20c1
Compare
Choose a tag to compare
  • Temporarily removed dependency to rustc 1.78, to ease transition from older versions. Will be re-enabled in 0.51.0.

sc 0.50.5

21 Jun 17:46
v0.50.5
0b43491
Compare
Choose a tag to compare
  • #[storage_mapper_from_address] annotation.
  • Added missing equality operator for test addresses (TestAddress, TestSCAddress).

sc 0.50.3

25 May 17:26
v0.50.3
5db5e25
Compare
Choose a tag to compare
  • Dependency update and fix. There was an issue with the zip dependency in sc-meta.

sc 0.50.2

24 May 12:29
v0.50.2
f26c854
Compare
Choose a tag to compare
  • Unified transaction syntax:
    • Better compilation error messages for malformed transactions;
    • Deprecated methods async_call and async_call_promises, which are kept for backwards compatibility, but causing confusion among developers;
    • Contract upgrade available in tests.
  • sc-meta proxy compare option, which checks that proxies are up to date. Useful for CI.
  • TypeAbi - removed Unmanaged associated type trait bounds, and implemented it for more types.
  • Removed jitter from interactor transaction fetch.
  • Fixed an issue in the snippets generator.

sc 0.50.1

16 May 08:06
v0.50.1
2ea77b9
Compare
Choose a tag to compare
  • sc-meta all snippets generates unified syntax.
  • Proxy generator can reference multi-contract variant.
  • Fixes:
    • BoxedBytes - fixed memory leak.
    • ManagedVecItem - allowing larger payloads (up to 128 bytes).

sc 0.50.0, codec 0.19.0, vm 0.8.4, sdk 0.4.1

10 May 08:48
v0.50.0
c3818e9
Compare
Choose a tag to compare
  • Framework now runs on stable Rust. All unstable features were removed. The most important changes enabling this:
    • CodecFrom completely removed, TypeAbiFrom was used instead since 0.49.0.
    • ManagedVecItem payload redesigned.
    • Contract panic message mechanism improved.
  • Unified syntax:
    • NotPayable marker type in proxies, which prevents callers to add payment to a non-payable endpoint.