Release: sc - 0.45.1, codec - 0.18.2, vm - 0.7.0, scenario-format - 0.21.0, sdk - 0.3.0
- Replicated VM 1.5 in the Rust VM. This includes support for:
- promises,
- back-transfers,
- modified event logs.
- New endpoint annotation, `
#[upgrade]
`. Contract variants with upgrade endpoint, but withoutinit
now allowed. - Build system:
- `
wasm
` crates now fully generated based on data from `sc-config.toml` and root `Cargo.toml`. - Setting
wasm target dir
automatically, if not specified, based on workspace. - Better hygiene in codec derive.
Release: sc - 0.44.0, vm 0.6.0
- Back-transfer:
- API support in framework (not yet implemented in the Rust VM);
- Feature flag:
`"back-transfers"`
; - EI updated.
- ESDT attribute ABI annotation and generator.
- Multiple var-args disallowed, unless annotating endpoint with `
#[allow_multiple_var_args]
`. - Build system updates:
- `multicontract.toml` renamed to `sc-config.toml`;
- `add-unlabelled` default true.
- New
`FunctionCall`
object & refactoring. Can be used as multi-value to pass contract call info to contracts. - `
AddressToId
` storage mapper.
Release: sc - 0.43.0, codec 0.18.1, vm 0.5.0
Hello xWorld!
- Fixed a rustc compatibility issue when building contracts. The meta crate looks at the rustc version when generating the wasm crate code.
- Initial version of the contract template tool in multiversx-sc-meta.
- The Rust debugger is now thread safe.
- Removed the `big-float` feature of multiversx-sc, because the functionality is already available on mainnet.
- CLI fixes in multiversx-sc-meta: arguments `--target-dir-wasm`, `--target-dir-meta`, and `--target-dir-all` in the `multiversx-sc-meta`
- Fixed an issue with contract calls and ESDT transfers in the `StaticApi` environment.
And many many other goodies. Check the detailed description of this release and join us on Discord, where you can connect with fellow builders and developers, share your feedback, ask for details, contribute with constructive ideas. And starting last week we have the monthly live dev sessions where you can meet us and discuss in detail every characteristic and detail.
Release: sc - 0.42.0, codec 0.18.0, vm 0.4.0, scenario-format 0.20.0, sdk 0.2.0
- Multi-endpoints in multi-contracts:
- It is now possible to have multiple versions of the same endpoint in different multi-contract variants.
- We can also have multiple versions of the constructor.
- Major architectural redesign of the debugger:
- The VM executor interface inserted between the smart contract API objects and the Rust VM. A new
VMHooksApi
is used to connect on the smart contract side. AVMHooksDispatcher
object andVMHooksHandler
interface provide the connection on the VM side. - The
VMHooksApi
comes in several flavors (backends): - The old
DebugApi
is now only used at runtime, on the VM context stack; - A new
StaticApi
provides support for managed types in a regular context, without needing to be initialized; - An additional
SingleTxApi
is useful for unit tests. Aside managed types, it also allows some basic context for tx inputs, results, storage and block info. - Removed almost all of the legacy functionality from the smart contract APIs.
- System SC mock.
- It is now possible to issue tokens (fungible, SFT, NFT) in integration tests.
- Setting roles is modeled.
- It is, however, not fully mocked.
And many many other goodies. Check the detailed description of this release and join us on Discord, where you can connect with fellow builders and developers, share your feedback, ask for details, contribute with constructive ideas.
Hotfix: sc - 0.41.1, vm - 0.3.1
Hello xWorld!
This is a hotfix release, there will be more substantial changes to these mappers in the next minor release:
- Fixed an edge case for the token storage mappers (
FungibleTokenMapper
,NonFungibleTokenMapper
);
Send us feedback and let's get in touch if you have any improvement ideas. Become a maintainer!
Release: sc - 0.41.0, vm - 0.3.0
Hello xWorld!
A short summary of the release:
- Fixed compatibility with rustc v1.71.0.
- Allocator system:
- Contracts can now choose their own allocator. This works in multi-contract contexts.
- New allocators: `fail` (default), `static64k`, `leaking`.
- Removed dependency to `wee_alloc`, but using it is still possible if the contract references it directly.
- Contract call stack size is now configurable in `multicontract.toml`.
- The 'panic with message' system now relies on managed buffers instead of on an allocator.
- Fixed BigUint bitwise operations in the debugger.
- When building contracts, an additional `.mxsc.json` file is created, which packs both the contract binary, the ABI, and some additional metadata.
- Refactor: reorganized the meta crate.
- Deprecated some legacy methods in the API wrappers.
Send us feedback and let's get in touch if you have any improvement ideas. Become a contributor!