sc 0.66.0, chain 0.23.0, sdk 0.16.0, scenario-format 0.26.1
·
43 commits
to master
since this release
- Memory and thread safety:
- Managed type memory management: proper
Dropimplementations for managed types:ManagedBuffer,BigInt,BigFloat,ManagedVec, andManagedMapnow call their VM-side destructor when dropped;- Fixed memory leaks and double-drop issues previously present in
ManagedVecandManagedBuffer; ManagedVecItemderive macro now generatesrequires_dropcorrectly;ManagedVecslice out-of-bounds fix;MultiValueEncoded::to_arg_bufferfix;- Memory benchmarks added for managed types.
- Thread safety:
DebugHandleandStaticApiHandleare now explicitly!Send;- All managed types implement
!Send + !Sync, with tests.
- Managed type memory management: proper
- Mathematical library additions:
nth_rootforBigUint;linear_interpolationandweighted_averagefunctions;ManagedDecimalimprovements:exp_approx: exponential approximation function;compounded_interestandcompounded_interest_factormethods;mul/divwith half-up rounding mode;- Fixed
into_raw_units/as_raw_unitsconversion; nth_rootsupport;- Backwards-compatibility fixes.
SaturatingSub/SaturatingSubAssignforBigUint.BigUint::from_str(implementsFromStr/parse());
sc-metanew features, updates and fixes:sc-metatransaction CLI (sc-meta tx): a new command-line tool for composing and broadcasting transactions directly from the terminal:sc-meta tx deploy- deploy a contract;sc-meta tx call- call a contract endpoint;sc-meta tx query- query a contract (no gas);sc-meta tx sign- sign a transaction offline;sc-meta tx upgrade- upgrade a deployed contract;--payments/--token-transfersflags for specifying ESDT payments;--wait-resultflag (requires--send);--code-metadataargs refactor.
sc-meta reproducible-build- new tooling for building and verifying contracts reproducibly:- Docker-based local build;
sc-meta all downloadwith--overwriteflag;sc-meta all publish/unpublishwith polling and max-attempt logic;- Source pack/unpack (zip) with test & refactor;
artifacts.jsongeneration and code hash verification;repro-build init-configfor project configuration toml;repro-build release-notesCLI;- Integration test and CI support.
sc-meta dataCLI: new subcommand for managing contract data/storage, for scripts.- Wallet improvements:
sc-meta wallet newhides password from console (usesrpassword);sc-meta wallet test-walletCLI command.
- Other improvements:
sc-meta new --forceflag: overwrite an existing template directory;sc-meta new --overwritebugfix;sc-meta install wasm32 --toolchain <toolchain>CLI flag;sc-meta install debuggeron Windows, duplicate-protection, configuresrust-analyzer.debug.engine;sc-meta install allWindows fix;sc-meta all codehashwith fallback;- Detect duplicate contract names;
sc-meta rust versiondisplayed in full;CARGO_NET_GIT_FETCH_WITH_CLIenv flag propagated through contract builds.
- Explorer URLs are displayed after transactions and for new contracts in interactor and
sc-meta txCLI. - Rust VM gas schedule updates:
- Gas schedule v9+ updates;
- Fixed gas accounting for conversions, more hooks, and
ManagedMapoperations; - Overflow check added in multiply-gas helper;
wasmer-prod: fix for missing breakpoint after early exit / out-of-gas.
- Chain core additions:
- Standard code hash function added to
multiversx-chain-core; - VM code hash hook;
- Basic crypto functions consolidated in chain core;
- Deploy address computation impls centralized.
Bech32Addressimprovements:try_from_bech32_stringconstructor with explicit error;FromStrimplementation;- Better error on empty string input.
- Standard code hash function added to
- SDK improvements:
- Interactor gas price support;
- Refactoring: REST API types and naming updated to match the Go SDK implementation;
Wallet::from_pem_fileaccepts anyAsRef<Path>;Walletmethods now takeAsRef<Path>generically.
ManagedByteArraynow implementsSCDisplayandSCBinary.- Dependency upgrades.