Skip to content

Commit

Permalink
Merge pull request #1860 from multiversx/merge-spica-55
Browse files Browse the repository at this point in the history
Merge branch 'rc/v0.55' into 'feat/vm-1.7.next1'
  • Loading branch information
andrei-marinica authored Nov 15, 2024
2 parents abe973a + 029ab4b commit 55c3842
Show file tree
Hide file tree
Showing 1,085 changed files with 23,949 additions and 9,306 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/actions-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ permissions:
jobs:
contracts:
name: Contracts (nightly)
uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@v3.2.0
uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@v3.3.1
with:
rust-toolchain: nightly-2024-05-22
path-to-sc-meta: framework/meta
Expand Down
16 changes: 14 additions & 2 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,23 @@ permissions:
jobs:
contracts:
name: Contracts
uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@v3.1.0
uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@4ec1f927bd99ed90a816ded805daa75fd2040258
with:
rust-toolchain: stable
path-to-sc-meta: framework/meta
mx-scenario-go-version: v2.1.0-alpha
coverage-args: --ignore-filename-regex='meta/src' --ignore-filename-regex='wasm-adapter' --ignore-filename-regex='benchmarks/' --ignore-filename-regex='tests/' --output ./coverage.md
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.GITHUB_TOKEN }}

formatting:
name: cargo fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Ensure rustfmt is installed and setup problem matcher
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt
- name: Rustfmt Check
uses: actions-rust-lang/rustfmt@v1
10 changes: 5 additions & 5 deletions .github/workflows/lldb-formatter-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ jobs:
uses: robinraju/release-downloader@v1.5
with:
repository: vadimcn/vscode-lldb
latest: true
fileName: codelldb-x86_64-linux.vsix
tag: v1.11.0
fileName: codelldb-linux-x64.vsix

- name: Setup vscode-lldb
run: |
unzip codelldb-x86_64-linux.vsix -d vscode-lldb
mkdir -p $HOME/.vscode/extensions/vadimcn.vscode-lldb-x.x.x/
mv vscode-lldb/extension/* $HOME/.vscode/extensions/vadimcn.vscode-lldb-x.x.x/
unzip codelldb-linux-x64.vsix -d vscode-lldb
mkdir -p $HOME/.vscode/extensions/vadimcn.vscode-lldb-1.11.0/
mv vscode-lldb/extension/* $HOME/.vscode/extensions/vadimcn.vscode-lldb-1.11.0/
- name: Run the rust tests
run: |
Expand Down
30 changes: 30 additions & 0 deletions .github/workflows/plotter-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: CI

on:
push:
branches:
- master
pull_request:

permissions:
checks: write
pull-requests: write

jobs:
template_test_current:
name: Plotter tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Install rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown

- name: Run plotter tests
run: |
cd tools/plotter
cargo test
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Generated by Cargo
# will have compiled files and executables
**/target/**
**/dist

# Remove Cargo.lock from the framework, but not from the wasm contracts.
# In contracts it helps with tracing builds.
Expand Down
102 changes: 100 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,107 @@ They are:
- `multiversx-sc-codec`, in short `codec`, the serializer/deserializer, 2 crates:
- `multiversx-sc-codec`
- `multiversx-sc-codec-derive`
- `multiversx-chain-vm`, in short `vm`, a Rust VM implementation, 1 crate.
- Chain crates, in short `chain`. Formerly it was only the VM (`vm`). 2 crates:
- `multiversx-chain-core` - *a common crate for chain types, constants, flags*
- `multiversx-chain-vm` - *a Rust VM implementation*
- `multiversx-chain-scenario-format`, in short `scenario-format`, scenario JSON serializer/deserializer, 1 crate.
- `multiversx-sdk`, in short `sdk`, allows communication with the chain(s), 1 crate.
- `multiversx-sdk`, in short `sdk`, allows communication with the chain(s), 3 crates:
- `multiversx-sdk`
- `multiversx-sdk-http`
- `multiversx-sdk-dapp`

## [sc 0.54.1] - 2024-11-13
- `sc-meta` `cs` - ChainSimulator CLI, which provides handy functionality to:
- install the chain simulator image in Docker;
- start/stop the chain simulator;
- quick testing using the `chain-simulator-tests` feature flag.
- Adder interactor cleanup, including in template.
- Interactor - `use_chain_simulator` builder method, for improved backwards compatibility.
- `MultiValueEncodedCounted` - a lazy multi-value encoding, but with known number of elements.

## [sc 0.54.0, sdk 0.7.0, chain 0.11.0] - 2024-11-06
- New crate, `multiversx-chain-core`, to be used in both framework and Rust VM. It contains common types, flags, and constants that refer to the protocol.
- Major SDK/interactor refactor:
- Added support for Chain Simulator in interactors:
- Added chain-simulator-specific endpoints: feed account, advance blocks
- Added a system to set up accounts in the chain simulator from the interactor;
- Support for advancing blocks in the interactor;
- Split SDK crate into:
- `multiversx-sdk` - only contains the specifications of the gateway API, without a mechanism to call the API;
- `multiversx-sdk-http` - functionality to call the gateway via reqwest;
- `multiversx-sdk-dapp` - functionality to call the gateway via wasm-bindgen, to be used in WebAssembly front-ends;
- Major improvements in the retrieving of transactions and other blockchain data fron the API, many bugs fixed;
- Support for writing integration tests for interactors, using the Chain Simulator;
- Also added support for test-related `chain-simulator-tests` feature flag in `sc-meta`;
- Interactors on the front-end:
- Interactor type made generic over the gateway API implementation, so that it can be used in both front-end and back-end, with no change in the code base;
- Support for custom random number generation for the front-end;
- Mechanism for fixing file paths in the interactor context;
- Fixed an issue with the account tool;
- Adjusted `sc-meta snippets` for the new syntax and the chain simulator support;
- Unified syntax:
- `ReturnsHandledOrError` result handler, which can gracefully deal with failed transactions;
- `ReturnsGasUsed` result handler;
- `PassValue` result handler for providing a closure-like context for multi-transaction call/deploy;
- More specific back transfer result handlers: `ReturnsBackTransfersEGLD`, `ReturnsBackTransfersMultiESDT`, `ReturnsBackTransfersSingleESDT`;
- Fixed an issue with the update functionality not being general enough;
- Deprecated `prepare_async()`, developers can now call `run()` directly, asynchronously;
- `sc-meta` improvements:
- New mechanism for detecting and warning about storage writes in readonly endpoints, integrated into the build system;
- Support for referencing the framework via git commit, branch, or tag, to make it easier to try out unreleased versions;
- Support for `default-features`;
- Better representation in console of the contract/lib folders, as well as better error messages.
- Refactoring of the dependency handling logic.
- Fixed the debugger, following changes in the Rust debug tooling.
- `ManagedVec` `set` always consumes ownership. Preparations for a profound memory management cleanup.
- ABI:
- `title` field and annotation;
- Refactoring.

## [sc 0.53.2] - 2024-10-02
- `StakingModule` fix.

## [sc 0.53.1, sdk 0.6.1] - 2024-10-01
- Interactor:
- Allow signature to be empty in TransactionOnNetwork;
- Allow return data to be empty in VMOutputApi.

## [sc 0.53.0 codec 0.21.0, vm 0.10.0, sdk 0.6.0, scenario-format 0.23.0] - 2024-09-04
- Unified syntax:
- Whitebox testing;
- Proxy fix for ManagedOption;
- TestTokenIdentifier syntactic sugar.
- New ResultHandler: `ReturnsLogs`.
- Interactor:
- Fix on API fetch process status;
- Fix on ReturnsNewTokenIdentifier edge cases solved;
- Fix on ESDTTransfer for transfer step;
- Support for Keystore + password.
- Framework API support: EI 1.4 crypto functions.
- `sc-meta`:
- New `wallet` command: PEM and keystore generator and conversions;
- New `report` command:
- Generate json or Markdown report based on size, path, allocator and panic messages;
- Compare reports;
- Convert reports.
- VecMapper update with index.
- Substitution list: AddressToIdMapper
- Dependencies updated.

## [sc 0.52.3] - 2024-08-06
- Pause module events.

## [sc 0.52.2] - 2024-08-01
- `ManagedBufferReadToEnd` extract data methods.

## [sc 0.52.1] - 2024-07-31
- `ManagedBufferReadToEnd` `TypeAbi` implementation.

## [sc 0.52.0, codec 0.20.1] - 2024-07-31
- 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]
- `sc-meta upgrade` bugfix.
Expand Down
Loading

0 comments on commit 55c3842

Please sign in to comment.