Releases: multiversx/mx-sdk-rs
Releases · multiversx/mx-sdk-rs
elrond-wasm 0.38.0, elrond-codec 0.16.0, mandos 0.18.0
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
- 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 viawasm-objdump
.
- Support for the new async call system (promises):
- new APIs;
- a new flavor of callbacks (
#[promises-callback]
); - callback optimizations.
elrond-codec
refactor: removedTopEncodeNoErr
,NestedEncodeNoErr
andTypeInfo
- 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
andreplace
methods forSingleValueMapper
; - Implemented
Extend
trait forUnorderedSetMapper
.
elrond-wasm 0.36.1
- Deprecated
ContractCall
execute_on_dest_context_ignore_result
method, since it is currently redundant.
elrond-wasm 0.36.0, elrond-codec 0.14.0
EsdtTokenPayment
legacy decode: objects encoded by older versions of the framework can now also be decoded, if flagesdt-token-payment-legacy-decode
is active.- Codec
NestedDecodeInput
newpeek_into
method. FungibleTokenMapper
caches the token identifier.
elrond-wasm 0.35.0, elrond-codec 0.13.0, mandos 0.17.0
- 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 forManagedVec
.- Mandos
"id"
accepted as synonym to"txId"
.
elrond-wasm 0.34.1
#[only_admin]
annotation- Safer BigUint/BigInt conversions
- Added and published
price-aggregator
andwegld-swap
core contracts.
elrond-wasm 0.34.0, elrond-codec 0.12.0, mandos 0.16.0, elrond-interact-snippets 0.1.0
- Major refactor of the mandos-rs infrastructure.
- High-level Mandos objects moved to elrond-wasm-debug;
- The
mandos
crate no longer depends onelrond-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
- CodecSelf for BigInt
elrond-wasm 0.33.0, mandos 0.15.0
- 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
- 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 flagbig-float
to use.- Major refactoring of the call value mechanism:
TokenIdentifier
now only refers to ESDT, for mixed EGLD+ESDT we haveEgldOrEsdtTokenIdentifier
.EsdtTokenPayment
now only refers to ESDT, for mixed EGLD+ESDT we haveEgldOrEsdtTokenPayment
.- 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
.