From 338dd61b2ccf60cf2438bac1979d19dd4f0dca59 Mon Sep 17 00:00:00 2001 From: Oleksandr Anyshchenko Date: Thu, 10 Oct 2024 15:04:43 +0100 Subject: [PATCH] Release 3.7.0 (#965) ### Additions - Added support of CANCUN hardfork by [@mrLSD]. ([#926]) - Added support of EIP-3607 by [@mrLSD]. ([#930]) - Removed restrictions from funding XCC sub-accounts by [@birchmd]. ([#931]) ### Changes - Made some EVM gas costs optimisations by [@mrLSD]. ([#934]) - Refactored the gas charge logic form EVM exit reasons by [@mrLSD]. ([#935]) - Updated some dependencies and rust-toolchain by [@mrLSD]. ([#936]) - Removed unused `bytes_to_hex` function by [@dwiekawki]. ([#942]) - Added building of actual version of the `near-sandbox` in the scheduled CI job by [@aleksuss] ([#950]) ### Fixes - Removed duplicated `test` task in the `README.md` by [@dwiekawki]. ([#943]) - Fixed some typos in the `README.md` and `Cargo.toml` by [@DemoYeti]. ([#945]) ([#946]) - Fixed exceeded prepaid gas error in the `mirror_erc20_token` transaction by [@aleksuss] ([#951]) - Modified `hardhat.config.js` to support contract verification by [@spilin] ([#958]) [#926]: https://github.com/aurora-is-near/aurora-engine/pull/926 [#930]: https://github.com/aurora-is-near/aurora-engine/pull/930 [#931]: https://github.com/aurora-is-near/aurora-engine/pull/931 [#934]: https://github.com/aurora-is-near/aurora-engine/pull/934 [#935]: https://github.com/aurora-is-near/aurora-engine/pull/935 [#936]: https://github.com/aurora-is-near/aurora-engine/pull/936 [#942]: https://github.com/aurora-is-near/aurora-engine/pull/942 [#943]: https://github.com/aurora-is-near/aurora-engine/pull/943 [#945]: https://github.com/aurora-is-near/aurora-engine/pull/945 [#946]: https://github.com/aurora-is-near/aurora-engine/pull/946 [#950]: https://github.com/aurora-is-near/aurora-engine/pull/950 [#951]: https://github.com/aurora-is-near/aurora-engine/pull/951 [#958]: https://github.com/aurora-is-near/aurora-engine/pull/958 --------- Signed-off-by: dependabot[bot] Co-authored-by: Michael Birch Co-authored-by: Evgeny Ukhanov Co-authored-by: dwiekawki <176287097+dwiekawki@users.noreply.github.com> Co-authored-by: dwiekawki Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: DemoYeti <164791169+DemoYeti@users.noreply.github.com> Co-authored-by: spilin --- .github/workflows/builds.yml | 4 +- .github/workflows/lints.yml | 16 +- .github/workflows/scheduled_lints.yml | 56 +- .github/workflows/tests.yml | 6 +- .gitignore | 1 + CHANGES.md | 43 +- Cargo.lock | 2870 ++++++++++------- Cargo.toml | 32 +- Makefile.toml | 7 +- README.md | 5 +- VERSION | 2 +- engine-hashchain/src/hashchain.rs | 7 +- engine-precompiles/src/lib.rs | 2 +- engine-precompiles/src/xcc.rs | 2 +- engine-sdk/src/caching.rs | 4 + .../src/json_snapshot/types.rs | 4 +- engine-standalone-storage/src/sync/types.rs | 12 +- engine-standalone-tracing/src/types/mod.rs | 2 +- engine-tests-connector/src/connector.rs | 8 +- engine-tests/src/benches/nft_pagination.rs | 3 +- engine-tests/src/prelude.rs | 2 - engine-tests/src/tests/erc20.rs | 10 +- engine-tests/src/tests/erc20_connector.rs | 12 + engine-tests/src/tests/mod.rs | 2 - engine-tests/src/tests/modexp.rs | 4 +- engine-tests/src/tests/multisender.rs | 2 +- engine-tests/src/tests/one_inch.rs | 14 +- .../src/tests/promise_results_precompile.rs | 7 +- engine-tests/src/tests/repro.rs | 17 +- .../src/tests/res/transaction_status.borsh | Bin 0 -> 42 bytes engine-tests/src/tests/sanity.rs | 37 +- engine-tests/src/tests/self_destruct_state.rs | 4 +- .../src/tests/standalone/call_tracer.rs | 9 +- engine-tests/src/tests/standalone/tracing.rs | 1 + .../src/tests/standard_precompiles.rs | 21 +- engine-tests/src/tests/uniswap.rs | 11 +- engine-tests/src/tests/xcc.rs | 8 +- engine-tests/src/utils/mocked_external.rs | 24 +- engine-tests/src/utils/mod.rs | 100 +- .../src/utils/solidity/exit_precompile.rs | 4 +- engine-tests/src/utils/solidity/mod.rs | 17 +- engine-tests/src/utils/solidity/uniswap.rs | 2 +- engine-tests/src/utils/standalone/mod.rs | 6 +- engine-transactions/src/eip_4844.rs | 3 + engine-transactions/src/lib.rs | 5 + engine-types/Cargo.toml | 2 +- engine-types/src/parameters/connector.rs | 4 +- engine-types/src/parameters/engine.rs | 135 +- engine-types/src/types/mod.rs | 23 +- engine-workspace/src/node.rs | 7 + engine/Cargo.toml | 2 +- engine/src/contract_methods/connector/mod.rs | 12 +- engine/src/contract_methods/xcc.rs | 17 +- engine/src/engine.rs | 244 +- engine/src/errors.rs | 1 + engine/src/lib.rs | 1 - engine/src/pausables.rs | 4 +- engine/src/xcc.rs | 2 +- etc/eth-contracts/README.md | 61 + etc/eth-contracts/hardhat.config.js | 34 + etc/eth-contracts/package.json | 2 + etc/eth-contracts/yarn.lock | 333 +- etc/tests/uniswap/yarn.lock | 16 +- etc/xcc-router/Cargo.lock | 8 +- rust-toolchain | 2 +- scripts/build-neard-sandbox.sh | 10 + 66 files changed, 2725 insertions(+), 1603 deletions(-) create mode 100644 engine-tests/src/tests/res/transaction_status.borsh create mode 100644 engine-transactions/src/eip_4844.rs create mode 100644 etc/eth-contracts/README.md create mode 100755 scripts/build-neard-sandbox.sh diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index 9e2caf686..3c883df2c 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -10,13 +10,13 @@ jobs: runs-on: github-hosted-heavy-runner strategy: matrix: - profile: [mainnet, mainnet-silo, testnet, testnet-silo] + profile: [ mainnet, mainnet-silo, testnet, testnet-silo ] steps: - name: Potential broken submodules fix run: | git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || : - name: Clone the repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Rust uses: actions-rs/toolchain@v1 with: diff --git a/.github/workflows/lints.yml b/.github/workflows/lints.yml index 5d976701d..064e64b38 100644 --- a/.github/workflows/lints.yml +++ b/.github/workflows/lints.yml @@ -10,47 +10,47 @@ name: Lints jobs: fmt: name: Format - runs-on: [self-hosted, light] + runs-on: [ self-hosted, light ] steps: - name: Potential broken submodules fix run: | git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || : - name: Clone the repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run cargo fmt run: cargo make check-fmt clippy: name: Clippy - runs-on: [self-hosted, heavy] + runs-on: [ self-hosted, heavy ] steps: - name: Potential broken submodules fix run: | git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || : - name: Clone the repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - run: cargo make build-contracts - name: Run Contract cargo clippy run: cargo make clippy udeps: name: Udeps - runs-on: [self-hosted, heavy] + runs-on: [ self-hosted, heavy ] steps: - name: Potential broken submodules fix run: | git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || : - name: Clone the repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run udeps run: cargo make udeps contracts: name: Contracts - runs-on: [self-hosted, light] + runs-on: [ self-hosted, light ] steps: - name: Potential broken submodules fix run: | git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || : - name: Clone the repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run yarn lint run: cargo make check-contracts - name: Check committed EvmErc20.bin diff --git a/.github/workflows/scheduled_lints.yml b/.github/workflows/scheduled_lints.yml index 4f7b01186..22b6e2bc4 100644 --- a/.github/workflows/scheduled_lints.yml +++ b/.github/workflows/scheduled_lints.yml @@ -1,30 +1,57 @@ --- on: schedule: - - cron: '30 8 * * 1-5' + - cron: '0 9 * * 1-5' name: Scheduled checks jobs: tests: name: Run tests - runs-on: [self-hosted, heavy] + runs-on: github-hosted-heavy-runner + strategy: + fail-fast: false + matrix: + profile: [ mainnet, mainnet-silo, testnet, testnet-silo ] steps: - name: Potential broken submodules fix run: | git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || : - name: Clone the repository uses: actions/checkout@v4 - - name: Test mainnet - run: cargo make --profile mainnet test-flow - - name: Test testnet - run: cargo make --profile testnet test-flow - - name: Test mainnet silo - run: cargo make --profile mainnet-silo test-flow - - name: Test testnet silo - run: cargo make --profile testnet-silo test-flow + - name: Cargo Cache + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ matrix.profile }}-cargo-test + - name: Setup Node and cache + uses: actions/setup-node@v4 + with: + node-version: 16 + cache: 'yarn' + cache-dependency-path: | + etc/eth-contracts + etc/tests/uniswap + - name: Install cargo-make + run: cargo +stable make -V || cargo +stable install cargo-make + - name: Build actual neard-sandbox + run: scripts/build-neard-sandbox.sh ${{ matrix.profile }} + - name: Test ${{ matrix.profile }} + run: cargo make --profile ${{ matrix.profile }} test-flow + - uses: 8398a7/action-slack@v3 + if: failure() + with: + status: ${{ job.status }} + fields: repo,message,commit,author,action,eventName,job,took + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} checks: name: Run checks - runs-on: [self-hosted, heavy] + runs-on: [ self-hosted, heavy ] steps: - name: Potential broken submodules fix run: | @@ -32,3 +59,10 @@ jobs: - name: Clone the repository uses: actions/checkout@v4 - run: cargo make check + - uses: 8398a7/action-slack@v3 + if: failure() + with: + status: ${{ job.status }} + fields: repo,message,commit,author,action,eventName,job,took + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6790fcd8e..130b14644 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -22,7 +22,7 @@ jobs: - name: Clone the repository uses: actions/checkout@v4 - name: Cargo Cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | ~/.cargo/bin/ @@ -32,7 +32,7 @@ jobs: target/ key: ${{ matrix.profile }}-cargo-test - name: Setup Node and cache - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 16 cache: 'yarn' @@ -70,7 +70,7 @@ jobs: - name: Clone the repository uses: actions/checkout@v4 - name: Cargo Cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | ~/.cargo/bin/ diff --git a/.gitignore b/.gitignore index 08d094464..5e944d7e8 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ # ENV .env/custom.env +etc/eth-contracts/.env # Rust artifacts bin/ diff --git a/CHANGES.md b/CHANGES.md index 42455ab03..237a27da1 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,6 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [3.7.0] 2024-10-09 + +### Additions + +- Added support of CANCUN hardfork by [@mrLSD]. ([#926]) +- Added support of EIP-3607 by [@mrLSD]. ([#930]) +- Removed restrictions from funding XCC sub-accounts by [@birchmd]. ([#931]) + +### Changes + +- Made some EVM gas costs optimisations by [@mrLSD]. ([#934]) +- Refactored the gas charge logic form EVM exit reasons by [@mrLSD]. ([#935]) +- Updated some dependencies and rust-toolchain by [@mrLSD]. ([#936]) +- Removed unused `bytes_to_hex` function by [@dwiekawki]. ([#942]) +- Added building of actual version of the `near-sandbox` in the scheduled CI job by [@aleksuss] ([#950]) + +### Fixes + +- Removed duplicated `test` task in the `README.md` by [@dwiekawki]. ([#943]) +- Fixed some typos in the `README.md` and `Cargo.toml` by [@DemoYeti]. ([#945]) ([#946]) +- Fixed exceeded prepaid gas error in the `mirror_erc20_token` transaction by [@aleksuss] ([#951]) +- Modified `hardhat.config.js` to support contract verification by [@spilin] ([#958]) + +[#926]: https://github.com/aurora-is-near/aurora-engine/pull/926 +[#930]: https://github.com/aurora-is-near/aurora-engine/pull/930 +[#931]: https://github.com/aurora-is-near/aurora-engine/pull/931 +[#934]: https://github.com/aurora-is-near/aurora-engine/pull/934 +[#935]: https://github.com/aurora-is-near/aurora-engine/pull/935 +[#936]: https://github.com/aurora-is-near/aurora-engine/pull/936 +[#942]: https://github.com/aurora-is-near/aurora-engine/pull/942 +[#943]: https://github.com/aurora-is-near/aurora-engine/pull/943 +[#945]: https://github.com/aurora-is-near/aurora-engine/pull/945 +[#946]: https://github.com/aurora-is-near/aurora-engine/pull/946 +[#950]: https://github.com/aurora-is-near/aurora-engine/pull/950 +[#951]: https://github.com/aurora-is-near/aurora-engine/pull/951 +[#958]: https://github.com/aurora-is-near/aurora-engine/pull/958 + ## [3.6.4] 2024-07-22 ### Additions @@ -660,7 +697,8 @@ struct SubmitResult { ## [1.0.0] - 2021-05-12 -[Unreleased]: https://github.com/aurora-is-near/aurora-engine/compare/3.6.4...develop +[Unreleased]: https://github.com/aurora-is-near/aurora-engine/compare/3.7.0...develop +[3.7.0]: https://github.com/aurora-is-near/aurora-engine/compare/3.6.4...3.7.0 [3.6.4]: https://github.com/aurora-is-near/aurora-engine/compare/3.6.3...3.6.4 [3.6.3]: https://github.com/aurora-is-near/aurora-engine/compare/3.6.2...3.6.3 [3.6.2]: https://github.com/aurora-is-near/aurora-engine/compare/3.6.1...3.6.2 @@ -716,6 +754,8 @@ struct SubmitResult { [@andrcmdr]: https://github.com/andrcmdr [@birchmd]: https://github.com/birchmd [@Casuso]: https://github.com/Casuso +[@DemoYeti]: https://github.com/DemoYeti +[@dwiekawki]: https://github.com/dwiekawki [@guidovranken]: https://github.com/guidovranken [@hskang9]: https://github.com/hskang9 [@joshuajbouw]: https://github.com/joshuajbouw @@ -728,3 +768,4 @@ struct SubmitResult { [@raventid]: https://github.com/raventid [@RomanHodulak]: https://github.com/RomanHodulak [@sept-en]: https://github.com/sept-en +[@spilin]: https://github.com/spilin diff --git a/Cargo.lock b/Cargo.lock index 7165d7fad..185b07773 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,17 +7,21 @@ name = "Inflector" version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] [[package]] name = "actix" -version = "0.13.3" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb72882332b6d6282f428b77ba0358cb2687e61a6f6df6a6d3871e8a177c2d4f" +checksum = "de7fa236829ba0841304542f7614c42b80fca007455315c45c785ccfa873a85b" dependencies = [ "actix-macros", "actix-rt", "actix_derive", - "bitflags 2.4.2", + "bitflags 2.6.0", "bytes", "crossbeam-channel", "futures-core", @@ -30,7 +34,7 @@ dependencies = [ "pin-project-lite", "smallvec", "tokio", - "tokio-util 0.7.10", + "tokio-util", ] [[package]] @@ -40,14 +44,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "actix-rt" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d" +checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" dependencies = [ "futures-core", "tokio", @@ -55,13 +59,13 @@ dependencies = [ [[package]] name = "actix_derive" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c7db3d5a9718568e4cf4a537cfd7070e6e6ff7481510d0237fb529ac850f6d3" +checksum = "b6ac1e58cded18cb28ddc17143c4dea5345b3ad575e14f32f66e4054a56eb271" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -74,10 +78,19 @@ dependencies = [ ] [[package]] -name = "adler" -version = "1.0.2" +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli 0.31.1", +] + +[[package]] +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "aes" @@ -86,7 +99,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if 1.0.0", - "cipher 0.4.4", + "cipher", "cpufeatures", ] @@ -96,16 +109,16 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.12", + "getrandom", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if 1.0.0", "once_cell", @@ -115,13 +128,19 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -145,47 +164,48 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.12" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -193,9 +213,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.80" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "arbitrary" @@ -208,27 +228,21 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "assert_matches" -version = "1.5.0" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -237,40 +251,35 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] -name = "atty" -version = "0.2.14" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "aurora-engine" -version = "3.6.4" +version = "3.7.0" dependencies = [ "aurora-engine-hashchain", "aurora-engine-modexp", @@ -299,7 +308,7 @@ dependencies = [ "aurora-engine-sdk", "aurora-engine-types", "fixed-hash 0.8.0", - "impl-serde", + "impl-serde 0.5.0", ] [[package]] @@ -324,7 +333,7 @@ dependencies = [ "hex", "libsecp256k1", "num", - "rand 0.8.5", + "rand", "ripemd", "serde", "serde_json", @@ -338,7 +347,7 @@ name = "aurora-engine-sdk" version = "1.0.0" dependencies = [ "aurora-engine-types", - "base64 0.21.7", + "base64 0.22.1", "sha2 0.10.8", "sha3", ] @@ -368,7 +377,7 @@ dependencies = [ "aurora-engine-transactions", "aurora-engine-types", "aurora-engine-workspace", - "borsh 1.3.1", + "borsh 1.5.1", "bstr", "byte-slice-cast", "criterion", @@ -387,7 +396,7 @@ dependencies = [ "near-primitives-core", "near-sdk", "near-vm-runner", - "rand 0.8.5", + "rand", "reqwest", "rlp", "serde", @@ -433,12 +442,12 @@ dependencies = [ name = "aurora-engine-types" version = "1.0.0" dependencies = [ - "base64 0.21.7", - "borsh 1.3.1", - "bs58 0.5.0", + "base64 0.22.1", + "borsh 1.5.1", + "bs58 0.5.1", "hex", "primitive-types 0.12.2", - "rand 0.8.5", + "rand", "rlp", "serde", "serde_json", @@ -462,34 +471,79 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 0.1.2", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "addr2line", - "cc", + "addr2line 0.24.2", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object", + "object 0.36.5", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -504,6 +558,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "base64ct" version = "1.6.0" @@ -549,13 +609,13 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease", + "prettyplease 0.2.22", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -566,9 +626,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bitvec" @@ -584,13 +644,11 @@ dependencies = [ [[package]] name = "blake2" -version = "0.9.2" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "crypto-mac", - "digest 0.9.0", - "opaque-debug", + "digest 0.10.7", ] [[package]] @@ -611,6 +669,18 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blst" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + [[package]] name = "borsh" version = "0.9.3" @@ -623,11 +693,11 @@ dependencies = [ [[package]] name = "borsh" -version = "1.3.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58b559fd6448c6e2fd0adb5720cd98a2506594cafa4737ff98c396f3e82f667" +checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" dependencies = [ - "borsh-derive 1.3.1", + "borsh-derive 1.5.1", "cfg_aliases", ] @@ -646,15 +716,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.3.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aadb5b6ccbd078890f6d7003694e33816e6b784358f18e15e7e6d9f065a57cd" +checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" dependencies = [ "once_cell", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", "syn_derive", ] @@ -697,9 +767,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "sha2 0.10.8", "tinyvec", @@ -707,20 +777,20 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" dependencies = [ "memchr", - "regex-automata 0.4.5", + "regex-automata 0.4.8", "serde", ] [[package]] name = "bumpalo" -version = "3.15.3" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byte-slice-cast" @@ -758,9 +828,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" [[package]] name = "bytesize" @@ -792,70 +862,60 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "c2-chacha" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d27dae93fe7b1e0424dc57179ac396908c26b035a87234809f5c4dfd1b47dc80" -dependencies = [ - "cipher 0.2.5", - "ppv-lite86", -] - [[package]] name = "camino" -version = "1.1.6" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] [[package]] -name = "cargo-near" -version = "0.3.1" +name = "cargo-near-build" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f73eb01da3b6737778d2006645533e75563d1080c64bf714bfb88d3fb0ac09b" +checksum = "cd00f13698319e43d9af5b1afc7045131342f3097dd78320a09bb6303bbf2d06" dependencies = [ - "anyhow", - "atty", - "bs58 0.4.0", + "bs58 0.5.1", "camino", "cargo_metadata", - "clap 3.2.25", "colored", - "env_logger", - "libloading 0.7.4", - "log", + "dunce", + "eyre", + "hex", + "libloading", "near-abi", "rustc_version", "schemars", "serde_json", "sha2 0.10.8", "symbolic-debuginfo", - "zstd", + "tracing", + "zstd 0.13.2", ] [[package]] name = "cargo-platform" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" dependencies = [ "serde", ] [[package]] name = "cargo_metadata" -version = "0.14.2" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", "semver", "serde", "serde_json", + "thiserror", ] [[package]] @@ -866,11 +926,13 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.86" +version = "1.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9fa1897e4325be0d68d48df6aa1a71ac2ed4d27723887e7754192705350730" +checksum = "2e80e3b6a3ab07840e1cae9b0666a63970dc28e8ed5ffbcdacbfc760c281bfc1" dependencies = [ + "jobserver", "libc", + "shlex", ] [[package]] @@ -896,15 +958,15 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cfg_aliases" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", @@ -912,7 +974,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.3", + "windows-targets 0.52.6", ] [[package]] @@ -942,15 +1004,6 @@ dependencies = [ "half", ] -[[package]] -name = "cipher" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" -dependencies = [ - "generic-array", -] - [[package]] name = "cipher" version = "0.4.4" @@ -963,99 +1016,60 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", - "libloading 0.8.1", -] - -[[package]] -name = "clap" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" -dependencies = [ - "atty", - "bitflags 1.3.2", - "clap_derive 3.2.25", - "clap_lex 0.2.4", - "indexmap 1.9.3", - "once_cell", - "strsim 0.10.0", - "termcolor", - "textwrap", + "libloading", ] [[package]] name = "clap" -version = "4.5.1" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" dependencies = [ "clap_builder", - "clap_derive 4.5.0", + "clap_derive", ] [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" dependencies = [ "anstream", "anstyle", - "clap_lex 0.7.0", - "strsim 0.11.0", -] - -[[package]] -name = "clap_derive" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" -dependencies = [ - "heck 0.4.1", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", + "clap_lex", + "strsim", ] [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.50", -] - -[[package]] -name = "clap_lex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", + "syn 2.0.79", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] name = "colored" @@ -1079,6 +1093,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "convert_case" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb4a24b1aaf0fd0ce8b45161144d6f42cd91677fd5940fd431183eb023b3a2b8" + [[package]] name = "core-foundation" version = "0.9.4" @@ -1091,9 +1111,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpp_demangle" @@ -1106,9 +1126,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -1136,7 +1156,7 @@ dependencies = [ "cranelift-entity", "cranelift-isle", "gimli 0.28.1", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "log", "regalloc2", "smallvec", @@ -1215,7 +1235,7 @@ dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "itertools", + "itertools 0.10.5", "log", "smallvec", "wasmparser 0.115.0", @@ -1224,9 +1244,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if 1.0.0", ] @@ -1240,10 +1260,10 @@ dependencies = [ "anes", "cast", "ciborium", - "clap 4.5.1", + "clap", "criterion-plot", "is-terminal", - "itertools", + "itertools 0.10.5", "num-traits", "once_cell", "oorandom", @@ -1264,14 +1284,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", - "itertools", + "itertools 0.10.5", ] [[package]] name = "crossbeam-channel" -version = "0.5.11" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" dependencies = [ "crossbeam-utils", ] @@ -1297,9 +1317,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" @@ -1329,17 +1349,15 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if 1.0.0", "cpufeatures", "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "platforms", - "rand_core 0.6.4", "rustc_version", "subtle", "zeroize", @@ -1353,14 +1371,14 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "darling" -version = "0.20.7" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a5d17510e4a1a87f323de70b7b1eaac1ee0e37866c6720b2d279452d0edf389" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ "darling_core", "darling_macro", @@ -1368,27 +1386,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.7" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a98eea36a7ff910fa751413d0895551143a8ea41d695d9798ec7d665df7f7f5e" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", - "syn 2.0.50", + "strsim", + "syn 2.0.79", ] [[package]] name = "darling_macro" -version = "0.20.7" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6a366a3f90c5d59a4b91169775f88e52e8f71a0e7804cc98a8db2932cf4ed57" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -1406,7 +1424,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ - "uuid 1.7.0", + "uuid 1.10.0", ] [[package]] @@ -1427,20 +1445,20 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ - "convert_case", + "convert_case 0.4.0", "proc-macro2", "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.79", ] [[package]] @@ -1486,9 +1504,9 @@ dependencies = [ [[package]] name = "dissimilar" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632" +checksum = "59f8e79d1fbf76bdfbde321e902714bf6c49df88a7dda6fc682fc2979226962d" [[package]] name = "dmsort" @@ -1496,11 +1514,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0bc8fbe9441c17c9f46f75dfe27fa1ddb6c68a461ccaed0481419219d4f10d3" +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "dynasm" @@ -1517,6 +1541,21 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "dynasm" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33dc03612f42465a8ed7f5e354bc2b79ba54cedefa81d5bd3a064f1835adaba8" +dependencies = [ + "bitflags 1.3.2", + "byteorder", + "lazy_static", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "dynasmrt" version = "1.2.3" @@ -1524,7 +1563,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fba5a42bd76a17cad4bfa00de168ee1cbfa06a5e8ce992ae880218c05641a9" dependencies = [ "byteorder", - "dynasm", + "dynasm 1.2.3", + "memmap2", +] + +[[package]] +name = "dynasmrt" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7dccc31a678058996aef614f6bd418ced384da70f284e83e2b7bf29b27b6a28" +dependencies = [ + "byteorder", + "dynasm 2.0.0", + "fnv", "memmap2", ] @@ -1551,16 +1602,16 @@ checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core 0.6.4", + "rand_core", "sha2 0.10.8", "subtle", ] [[package]] name = "either" -version = "1.10.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "elementtree" @@ -1574,9 +1625,9 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if 1.0.0", ] @@ -1597,7 +1648,7 @@ dependencies = [ "rocksdb", "serde", "serde_json", - "strum 0.26.1", + "strum 0.26.3", ] [[package]] @@ -1630,41 +1681,28 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "enumset" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226c0da7462c13fb57e5cc9e0dc8f0635e7d27f276a3a7fd30054647f669007d" +checksum = "d07a4b049558765cef5f0c1a273c3fc57084d768b44d2f98127aef4cceb17293" dependencies = [ "enumset_derive", ] [[package]] name = "enumset_derive" -version = "0.8.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08b6c6ab82d70f08844964ba10c7babb716de2ecaeab9be5717918a5177d3af" +checksum = "59c3b24c345d8c314966bdc1832f6c2635bfcce8e7cf363bd115987bba2ee242" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.50", -] - -[[package]] -name = "env_logger" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", + "syn 2.0.79", ] [[package]] @@ -1681,9 +1719,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", @@ -1716,16 +1754,16 @@ dependencies = [ "fixed-hash 0.8.0", "impl-codec", "impl-rlp", - "impl-serde", + "impl-serde 0.4.0", "scale-info", "tiny-keccak", ] [[package]] name = "ethereum" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a89fb87a9e103f71b903b80b670200b54cc67a07578f070681f1fffb7396fb7" +checksum = "2e04d24d20b8ff2235cffbf242d5092de3aa45f77c5270ddbfadd2778ca13fea" dependencies = [ "bytes", "ethereum-types", @@ -1736,7 +1774,7 @@ dependencies = [ "scale-info", "serde", "sha3", - "triehash", + "trie-root", ] [[package]] @@ -1749,7 +1787,7 @@ dependencies = [ "fixed-hash 0.8.0", "impl-codec", "impl-rlp", - "impl-serde", + "impl-serde 0.4.0", "primitive-types 0.12.2", "scale-info", "uint", @@ -1757,8 +1795,8 @@ dependencies = [ [[package]] name = "evm" -version = "0.39.1" -source = "git+https://github.com/aurora-is-near/sputnikvm.git?tag=v0.39.1#0334a09d6b6e83ff3a8da992e33f29ba95e0c9fe" +version = "0.45.2" +source = "git+https://github.com/aurora-is-near/sputnikvm.git?tag=v0.45.4-aurora#1d9d1dc299fe379913347a71ca00f06344a07262" dependencies = [ "auto_impl", "environmental", @@ -1777,8 +1815,8 @@ dependencies = [ [[package]] name = "evm-core" -version = "0.39.1" -source = "git+https://github.com/aurora-is-near/sputnikvm.git?tag=v0.39.1#0334a09d6b6e83ff3a8da992e33f29ba95e0c9fe" +version = "0.45.2" +source = "git+https://github.com/aurora-is-near/sputnikvm.git?tag=v0.45.4-aurora#1d9d1dc299fe379913347a71ca00f06344a07262" dependencies = [ "parity-scale-codec", "primitive-types 0.12.2", @@ -1788,8 +1826,8 @@ dependencies = [ [[package]] name = "evm-gasometer" -version = "0.39.1" -source = "git+https://github.com/aurora-is-near/sputnikvm.git?tag=v0.39.1#0334a09d6b6e83ff3a8da992e33f29ba95e0c9fe" +version = "0.45.2" +source = "git+https://github.com/aurora-is-near/sputnikvm.git?tag=v0.45.4-aurora#1d9d1dc299fe379913347a71ca00f06344a07262" dependencies = [ "environmental", "evm-core", @@ -1799,8 +1837,8 @@ dependencies = [ [[package]] name = "evm-runtime" -version = "0.39.1" -source = "git+https://github.com/aurora-is-near/sputnikvm.git?tag=v0.39.1#0334a09d6b6e83ff3a8da992e33f29ba95e0c9fe" +version = "0.45.2" +source = "git+https://github.com/aurora-is-near/sputnikvm.git?tag=v0.45.4-aurora#1d9d1dc299fe379913347a71ca00f06344a07262" dependencies = [ "auto_impl", "environmental", @@ -1809,6 +1847,16 @@ dependencies = [ "sha3", ] +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + [[package]] name = "fallible-iterator" version = "0.2.0" @@ -1823,26 +1871,26 @@ checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fiat-crypto" -version = "0.2.6" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.23" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall", - "windows-sys 0.52.0", + "libredox", + "windows-sys 0.59.0", ] [[package]] @@ -1861,12 +1909,6 @@ dependencies = [ "wasmprinter", ] -[[package]] -name = "finl_unicode" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" - [[package]] name = "fixed-hash" version = "0.7.0" @@ -1883,33 +1925,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand", "rustc-hex", "static_assertions", ] -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - [[package]] name = "flate2" -version = "1.0.28" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", "miniz_oxide", ] +[[package]] +name = "fluent-uri" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17c704e9dbe1ddd863da1e6ff3567795087b1eb201ce80d8fa81162e1516500d" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + [[package]] name = "foreign-types" version = "0.3.2" @@ -1965,25 +2016,11 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -1991,63 +2028,54 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", "futures-util", ] -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "futures-channel", "futures-core", - "futures-io", "futures-macro", "futures-sink", "futures-task", - "memchr", "pin-project-lite", "pin-utils", "slab", @@ -2068,7 +2096,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "debugid 0.8.0", "fxhash", "serde", @@ -2087,24 +2115,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", ] [[package]] @@ -2125,17 +2142,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" dependencies = [ "fallible-iterator 0.3.0", - "indexmap 2.2.3", + "indexmap 2.6.0", "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + [[package]] name = "git2" -version = "0.18.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd" +checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "libc", "libgit2-sys", "log", @@ -2172,19 +2195,38 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", - "indexmap 2.2.3", + "http 0.2.12", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap 2.6.0", "slab", "tokio", - "tokio-util 0.7.10", + "tokio-util", "tracing", ] [[package]] name = "half" -version = "2.3.1" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" dependencies = [ "cfg-if 1.0.0", "crunchy", @@ -2192,9 +2234,9 @@ dependencies = [ [[package]] name = "hash-db" -version = "0.15.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" +checksum = "8e7d7786361d7425ae2fe4f9e407eb0efaa0840f5212d109cc018c40c35c6ab4" [[package]] name = "hash256-std-hasher" @@ -2229,25 +2271,28 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", ] [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", + "serde", ] [[package]] -name = "heck" -version = "0.3.3" +name = "hashbrown" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" dependencies = [ - "unicode-segmentation", + "allocator-api2", + "equivalent", + "foldhash", ] [[package]] @@ -2256,20 +2301,23 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" -version = "0.1.19" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "hex" @@ -2321,9 +2369,20 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -2337,15 +2396,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -2353,25 +2435,19 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - [[package]] name = "hyper" -version = "0.14.28" +version = "0.14.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", "httparse", "httpdate", "itoa", @@ -2383,13 +2459,50 @@ dependencies = [ "want", ] +[[package]] +name = "hyper" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.4.1", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + [[package]] name = "hyper-timeout" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper", + "hyper 0.14.30", "pin-project-lite", "tokio", "tokio-io-timeout", @@ -2397,22 +2510,44 @@ dependencies = [ [[package]] name = "hyper-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", - "hyper", + "http-body-util", + "hyper 1.4.1", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -2491,6 +2626,15 @@ dependencies = [ "serde", ] +[[package]] +name = "impl-serde" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a143eada6a1ec4aefa5049037a26a6d597bfd64f8c026d07b77133e02b7dd0b" +dependencies = [ + "serde", +] + [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -2508,6 +2652,12 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cfe9645a18782869361d9c8732246be7b410ad4e919d3609ebabdac00ba12c3" +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + [[package]] name = "indexmap" version = "1.9.3" @@ -2521,12 +2671,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.3" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.15.0", "serde", ] @@ -2541,17 +2691,17 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "is-terminal" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" dependencies = [ - "hermit-abi 0.3.6", + "hermit-abi 0.4.0", "libc", "windows-sys 0.52.0", ] @@ -2565,6 +2715,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.10.5" @@ -2574,11 +2730,29 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] [[package]] name = "joinery" @@ -2588,23 +2762,23 @@ checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5" [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] [[package]] name = "json-patch" -version = "1.2.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6" +checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc" dependencies = [ + "jsonptr", "serde", "serde_json", "thiserror", - "treediff", ] [[package]] @@ -2613,6 +2787,17 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dbbfed4e59ba9750e15ba154fdfd9329cee16ff3df539c2666b70f58cc32105" +[[package]] +name = "jsonptr" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c6e529149475ca0b2820835d3dce8fcc41c6b943ca608d32f35b449255e4627" +dependencies = [ + "fluent-uri", + "serde", + "serde_json", +] + [[package]] name = "keccak" version = "0.1.5" @@ -2624,11 +2809,11 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin 0.5.2", + "spin", ] [[package]] @@ -2645,15 +2830,15 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" [[package]] name = "libgit2-sys" -version = "0.16.2+1.7.2" +version = "0.17.0+1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" +checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" dependencies = [ "cc", "libc", @@ -2665,31 +2850,21 @@ dependencies = [ [[package]] name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if 1.0.0", - "winapi", -] - -[[package]] -name = "libloading" -version = "0.8.1" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if 1.0.0", - "windows-sys 0.48.0", + "windows-targets 0.52.6", ] [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "libc", "redox_syscall", ] @@ -2723,7 +2898,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand 0.8.5", + "rand", "serde", "sha2 0.9.9", "typenum", @@ -2774,9 +2949,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.15" +version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", "libc", @@ -2786,15 +2961,15 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -2802,15 +2977,24 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown 0.15.0", +] [[package]] name = "lz4-sys" -version = "1.9.4" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ "cc", "libc", @@ -2825,6 +3009,15 @@ dependencies = [ "libc", ] +[[package]] +name = "mach2" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" +dependencies = [ + "libc", +] + [[package]] name = "matchers" version = "0.1.0" @@ -2834,6 +3027,12 @@ dependencies = [ "regex-automata 0.1.10", ] +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "md-5" version = "0.10.6" @@ -2846,9 +3045,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memfd" @@ -2888,9 +3087,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ "autocfg", ] @@ -2915,22 +3114,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ - "adler", + "adler2", ] [[package]] name = "mio" -version = "0.8.11" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi 0.3.9", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", + "wasi", + "windows-sys 0.52.0", ] [[package]] @@ -2939,19 +3139,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" -[[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - [[package]] name = "native-tls" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ - "lazy_static", "libc", "log", "openssl", @@ -2965,31 +3158,71 @@ dependencies = [ [[package]] name = "near-abi" -version = "0.3.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +checksum = "7c49593c9e94454a2368a4c0a511bf4bf1413aff4d23f16e1d8f4e64b5215351" dependencies = [ - "borsh 0.9.3", + "borsh 1.5.1", "schemars", "semver", "serde", ] +[[package]] +name = "near-abi-client" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879ac02b2e8d6498294adce1de7a2424a5474b35a73e9262c851be39c89d7f92" +dependencies = [ + "anyhow", + "convert_case 0.5.0", + "near-abi-client-impl", + "near-abi-client-macros", + "prettyplease 0.1.25", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "near-abi-client-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1139e8a6f60fd8ed1c53c700b67bcecbf6deb4b1f47bbe9a9d5eea760d8a8e91" +dependencies = [ + "anyhow", + "near-abi", + "near_schemafy_lib", + "proc-macro2", + "quote", + "schemars", + "serde_json", +] + +[[package]] +name = "near-abi-client-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebaf2aae80086b310bf96e657bbee0c599c3452afd35e72999f8d6764d6b1899" +dependencies = [ + "near-abi-client-impl", + "syn 1.0.109", +] + [[package]] name = "near-account-id" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35cbb989542587b47205e608324ddd391f0cee1c22b4b64ae49f458334b95907" dependencies = [ - "borsh 1.3.1", + "borsh 1.5.1", "serde", ] [[package]] name = "near-chain-configs" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e5a8ace81c09d7eb165dffc1742358a021b2fa761f2160943305f83216003" +checksum = "0784e55d9dee91ca830c6199d15ad18fc628f930a5d0946bb0949956026dd64f" dependencies = [ "anyhow", "bytesize", @@ -2999,20 +3232,22 @@ dependencies = [ "near-crypto", "near-parameters", "near-primitives", + "near-time", "num-rational 0.3.2", "once_cell", "serde", "serde_json", "sha2 0.10.8", "smart-default", + "time", "tracing", ] [[package]] name = "near-config-utils" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae1eaab1d545a9be7a55b6ef09f365c2017f93a03063547591d12c0c6d27e58" +checksum = "d96c1682d13e9a8a62ea696395bf17afc4ed4b60535223251168217098c27a50" dependencies = [ "anyhow", "json_comments", @@ -3022,14 +3257,13 @@ dependencies = [ [[package]] name = "near-crypto" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2991d2912218a80ec0733ac87f84fa803accea105611eea209d4419271957667" +checksum = "907fdcefa3a42976cd6a8bf626fe2a87eb0d3b3ff144adc67cf32d53c9494b32" dependencies = [ "blake2", - "borsh 1.3.1", + "borsh 1.5.1", "bs58 0.4.0", - "c2-chacha", "curve25519-dalek", "derive_more", "ed25519-dalek", @@ -3039,7 +3273,7 @@ dependencies = [ "near-stdx", "once_cell", "primitive-types 0.10.1", - "rand 0.7.3", + "rand", "secp256k1", "serde", "serde_json", @@ -3049,31 +3283,31 @@ dependencies = [ [[package]] name = "near-fmt" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7d998dfc1e04001608899b2498ad5a782c7d036b73769d510de21964db99286" +checksum = "7a36518bfcf2177096d4298d9158ba698ffd6944cb035ecc0938b098337b933c" dependencies = [ "near-primitives-core", ] [[package]] name = "near-gas" -version = "0.2.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" +checksum = "180edcc7dc2fac41f93570d0c7b759c1b6d492f6ad093d749d644a40b4310a97" dependencies = [ - "borsh 1.3.1", + "borsh 1.5.1", "schemars", "serde", ] [[package]] name = "near-jsonrpc-client" -version = "0.8.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18ad81e015f7aced8925d5b9ba3f369b36da9575c15812cfd0786bc1213284ca" +checksum = "161fdc8f73fd9e19a97e05acb10e985ba89bd06e88543cdfd0c8dad0dac266c5" dependencies = [ - "borsh 1.3.1", + "borsh 1.5.1", "lazy_static", "log", "near-chain-configs", @@ -3088,9 +3322,9 @@ dependencies = [ [[package]] name = "near-jsonrpc-primitives" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0ce745e954ae776eef05957602e638ee9581106a3675946fb43c2fe7e38ef03" +checksum = "2b24bfd0fedef42e07daa79e463a7908e9abee4f6de3532e0e1dde45f6951657" dependencies = [ "arbitrary", "near-chain-configs", @@ -3100,28 +3334,28 @@ dependencies = [ "serde", "serde_json", "thiserror", + "time", ] [[package]] name = "near-o11y" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20762631bc8253030013bbae9b5f0542691edc1aa6722f1e8141cc9b928ae5b" +checksum = "d2f58d0458e23d39825794193a5a0452778fe38385b3a8d88bbdfdcf7fa48655" dependencies = [ "actix", "base64 0.21.7", - "clap 4.5.1", + "clap", "near-crypto", - "near-fmt", "near-primitives-core", "once_cell", "opentelemetry", "opentelemetry-otlp", "opentelemetry-semantic-conventions", + "opentelemetry_sdk", "prometheus", "serde", "serde_json", - "strum 0.24.1", "thiserror", "tokio", "tracing", @@ -3132,12 +3366,11 @@ dependencies = [ [[package]] name = "near-parameters" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f16a59b6c3e69b0585be951af6fe42a0ba86c0e207cb8c63badd19efd16680" +checksum = "e41afea5c5e84763586bafc5f5e1b63d90ef4e5454e18406cab8df120178db8d" dependencies = [ - "assert_matches", - "borsh 1.3.1", + "borsh 1.5.1", "enum-map", "near-account-id", "near-primitives-core", @@ -3151,13 +3384,14 @@ dependencies = [ [[package]] name = "near-primitives" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0462b067732132babcc89d5577db3bfcb0a1bcfbaaed3f2db4c11cd033666314" +checksum = "165c2dc0fc20d839cfd7948d930ef5e8a4ed2b095abe83e0076ef5d4a5df58ed" dependencies = [ "arbitrary", "base64 0.21.7", - "borsh 1.3.1", + "borsh 1.5.1", + "bytes", "bytesize", "cfg-if 1.0.0", "chrono", @@ -3165,86 +3399,83 @@ dependencies = [ "easy-ext", "enum-map", "hex", + "itertools 0.10.5", "near-crypto", "near-fmt", - "near-o11y", "near-parameters", "near-primitives-core", "near-rpc-error-macro", "near-stdx", - "near-vm-runner", + "near-structs-checker-lib", + "near-time", "num-rational 0.3.2", "once_cell", + "ordered-float", "primitive-types 0.10.1", - "rand 0.8.5", - "rand_chacha 0.3.1", - "reed-solomon-erasure", + "rand", + "rand_chacha", "serde", "serde_json", "serde_with", - "serde_yaml", "sha3", "smart-default", "strum 0.24.1", "thiserror", - "time", "tracing", + "zstd 0.13.2", ] [[package]] name = "near-primitives-core" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8443eb718606f572c438be6321a097a8ebd69f8e48d953885b4f16601af88225" +checksum = "51fd53f992168589c52022dd220c84a7f2ede92251631a06a3817e4b22af5836" dependencies = [ "arbitrary", "base64 0.21.7", - "borsh 1.3.1", + "borsh 1.5.1", "bs58 0.4.0", "derive_more", "enum-map", "near-account-id", + "near-structs-checker-lib", "num-rational 0.3.2", "serde", "serde_repr", - "serde_with", "sha2 0.10.8", - "strum 0.24.1", "thiserror", ] [[package]] name = "near-rpc-error-core" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fca203c51edd9595ec14db1d13359fb9ede32314990bf296b6c5c4502f6ab7" +checksum = "df598b0785a3e36d7e4fb73afcdf20536988b13d07cead71dfa777db4783e552" dependencies = [ "quote", "serde", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "near-rpc-error-macro" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897a445de2102f6732c8a185d922f5e3bf7fd0a41243ce40854df2197237f799" +checksum = "647ef261df99ad877c08c97af2f10368c8b8cde0968250d3482a5a249e9f3926" dependencies = [ - "fs2", "near-rpc-error-core", "serde", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "near-sandbox-utils" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2de216bb0152bfb64f59016d9e6a5b1ac56dd85f729e5fde08461571e2182c8f" +checksum = "000a28599729f4d584eff6a7e8c5919d7938dceeb2752ea9cdaf408444309a2a" dependencies = [ "anyhow", "binary-install", - "chrono", "fs2", "home", "tokio", @@ -3252,13 +3483,13 @@ dependencies = [ [[package]] name = "near-sdk" -version = "5.0.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5c2e7c9524308b1b301cca05d875de13b3b20dc8b92e71f3890b380372e4c88" +checksum = "4e296b02c85539c16659e171242d6c6bbea87eec7c9ef860d8dfd3fb3168a18a" dependencies = [ - "base64 0.21.7", - "borsh 1.3.1", - "bs58 0.5.0", + "base64 0.22.1", + "borsh 1.5.1", + "bs58 0.5.1", "near-account-id", "near-gas", "near-sdk-macros", @@ -3272,9 +3503,9 @@ dependencies = [ [[package]] name = "near-sdk-macros" -version = "5.0.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e9b23d9d7757ade258921c9cbc7923542e64d9d3b52a6cd91f746c77cb0a0f" +checksum = "0adc79466aa556f56a995c0db34a933b32597ab92bbb0e526597118899c8bcaf" dependencies = [ "Inflector", "darling", @@ -3282,63 +3513,170 @@ dependencies = [ "quote", "serde", "serde_json", - "strum 0.26.1", - "strum_macros 0.26.1", - "syn 2.0.50", + "strum 0.26.3", + "strum_macros 0.26.4", + "syn 2.0.79", ] [[package]] name = "near-stdx" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "855fd5540e3b4ff6fedf12aba2db1ee4b371b36f465da1363a6d022b27cb43b8" +checksum = "6d5c43f6181873287ddaa25edcc2943d0f2d5da9588231516f2ed0549db1fbac" + +[[package]] +name = "near-structs-checker-core" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e53379bee876286de4ad31dc7f9fde8db12527c39d401d94f4d42cd021b8fce" + +[[package]] +name = "near-structs-checker-lib" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f984805f225c9b19681a124af7783078459e87ea63dde751b62e7cb404b1d6a" +dependencies = [ + "near-structs-checker-core", + "near-structs-checker-macro", +] + +[[package]] +name = "near-structs-checker-macro" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66319954983ae164fd0b714ae9d8b09edc26c74d9b3a1f51e564bb14720adb8e" [[package]] name = "near-sys" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397688591acf8d3ebf2c2485ba32d4b24fc10aad5334e3ad8ec0b7179bfdf06b" +checksum = "dbf4ca5c805cb78700e10e43484902d8da05f25788db277999d209568aaf4c8e" + +[[package]] +name = "near-time" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1d37b864f04d9aebbc3b88ac63ba989d94f221de694bcc8af639cc284a89f64" +dependencies = [ + "once_cell", + "serde", + "time", + "tokio", +] [[package]] name = "near-token" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b68f3f8a2409f72b43efdbeff8e820b81e70824c49fee8572979d789d1683fb" +checksum = "cd3e60aa26a74dc514b1b6408fdd06cefe2eb0ff029020956c1c6517594048fd" dependencies = [ - "borsh 1.3.1", + "borsh 1.5.1", "serde", ] +[[package]] +name = "near-vm-compiler" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "517dcc59ba5ca8173715313017bf097bc790c8a259634b331904dffa06e89024" +dependencies = [ + "enumset", + "finite-wasm", + "near-vm-types", + "near-vm-vm", + "rkyv", + "target-lexicon", + "thiserror", + "tracing", + "wasmparser 0.99.0", +] + +[[package]] +name = "near-vm-compiler-singlepass" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72232dd184274b857b734d8d52a51999728cc02993ac6f22f989a51880b689df" +dependencies = [ + "dynasm 2.0.0", + "dynasmrt 2.0.0", + "enumset", + "finite-wasm", + "lazy_static", + "memoffset 0.8.0", + "more-asserts", + "near-vm-compiler", + "near-vm-types", + "near-vm-vm", + "rayon", + "smallvec", + "strum 0.24.1", + "tracing", +] + +[[package]] +name = "near-vm-engine" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3527cd04b0fd34c9f5bb60671ad242e318bb411c3e3c1cf44389cfd09e627d42" +dependencies = [ + "backtrace", + "cfg-if 1.0.0", + "enumset", + "finite-wasm", + "lazy_static", + "more-asserts", + "near-vm-compiler", + "near-vm-types", + "near-vm-vm", + "region", + "rkyv", + "rustc-demangle", + "rustix", + "target-lexicon", + "thiserror", + "tracing", +] + [[package]] name = "near-vm-runner" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56c80bdb1954808f59bd36a9112377197b38d424991383bf05f52d0fe2e0da5" +checksum = "b5a2fecdbec69a1748bd80aa0d73e4de0064d2d8097f429677d3e37a6bde3b2d" dependencies = [ "anyhow", - "base64 0.21.7", - "borsh 1.3.1", + "blst", + "borsh 1.5.1", + "bytesize", "ed25519-dalek", "enum-map", "finite-wasm", + "lru", "memoffset 0.8.0", "near-crypto", + "near-o11y", "near-parameters", "near-primitives-core", "near-stdx", + "near-vm-compiler", + "near-vm-compiler-singlepass", + "near-vm-engine", + "near-vm-types", + "near-vm-vm", "num-rational 0.3.2", "once_cell", "parity-wasm 0.41.0", "parity-wasm 0.42.2", "prefix-sum-vec", + "prometheus", "pwasm-utils", "ripemd", + "rustix", "serde", "serde_repr", - "serde_with", "sha2 0.10.8", "sha3", "strum 0.24.1", + "tempfile", "thiserror", "tracing", "wasm-encoder 0.27.0", @@ -3353,20 +3691,55 @@ dependencies = [ "zeropool-bn", ] +[[package]] +name = "near-vm-types" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723762707403d3fe75e5d7cb8453df85cd2f43160fc398ad5189373c0000dc35" +dependencies = [ + "indexmap 1.9.3", + "num-traits", + "rkyv", + "thiserror", +] + +[[package]] +name = "near-vm-vm" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497225eb8c4dce19a3337913b97a62d2a3821e68a55ad100659329b2b472ecd7" +dependencies = [ + "backtrace", + "cc", + "cfg-if 1.0.0", + "finite-wasm", + "indexmap 1.9.3", + "libc", + "memoffset 0.8.0", + "more-asserts", + "near-vm-types", + "region", + "rkyv", + "thiserror", + "tracing", + "winapi", +] + [[package]] name = "near-workspaces" -version = "0.10.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e597da87d0c1a722e23efb8c24ae42a0ad99a15f37101dad45c15defb051c1" +checksum = "f59e15efadb1d2e4c21d4d1a8d5a8f8a732eb8f16cfb54a1a56628ab5bf5a125" dependencies = [ "async-trait", - "base64 0.21.7", - "bs58 0.5.0", - "cargo-near", + "base64 0.22.1", + "bs58 0.5.1", + "cargo-near-build", "chrono", "fs2", "json-patch", "libc", + "near-abi-client", "near-account-id", "near-crypto", "near-gas", @@ -3375,24 +3748,51 @@ dependencies = [ "near-primitives", "near-sandbox-utils", "near-token", - "rand 0.8.5", + "rand", "reqwest", "serde", "serde_json", - "sha2 0.10.8", - "tempfile", - "thiserror", - "tokio", - "tokio-retry", - "tracing", - "url", + "sha2 0.10.8", + "tempfile", + "thiserror", + "tokio", + "tokio-retry", + "tracing", + "url", +] + +[[package]] +name = "near_schemafy_core" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d7a1f809a319578773329389529dbf8c8f0abfbb05a429b37f437105f7caf6" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "near_schemafy_lib" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39ccae55df51adaa1a4e567b7a79ab4380826a695121cebf41f518076d8c3dd" +dependencies = [ + "Inflector", + "near_schemafy_core", + "proc-macro2", + "quote", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", + "uriparse", ] [[package]] name = "new_debug_unreachable" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nom" @@ -3429,15 +3829,15 @@ dependencies = [ [[package]] name = "num" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ - "num-bigint 0.4.4", + "num-bigint 0.4.6", "num-complex", "num-integer", "num-iter", - "num-rational 0.4.1", + "num-rational 0.4.2", "num-traits", ] @@ -3454,20 +3854,19 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", ] [[package]] name = "num-complex" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] @@ -3489,9 +3888,9 @@ dependencies = [ [[package]] name = "num-iter" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", @@ -3513,21 +3912,20 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", - "num-bigint 0.4.4", + "num-bigint 0.4.6", "num-integer", "num-traits", ] [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -3538,7 +3936,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.6", + "hermit-abi 0.3.9", "libc", ] @@ -3549,36 +3947,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "crc32fast", - "hashbrown 0.14.3", - "indexmap 2.2.3", + "hashbrown 0.14.5", + "indexmap 2.6.0", + "memchr", +] + +[[package]] +name = "object" +version = "0.36.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "oorandom" -version = "11.1.3" +version = "11.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" +checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "cfg-if 1.0.0", "foreign-types", "libc", @@ -3595,7 +4002,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -3606,9 +4013,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.101" +version = "0.9.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" dependencies = [ "cc", "libc", @@ -3618,57 +4025,89 @@ dependencies = [ [[package]] name = "opentelemetry" -version = "0.17.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6105e89802af13fdf48c49d7646d3b533a70e536d818aae7e78ba0433d01acb8" +checksum = "900d57987be3f2aeb70d385fff9b27fb74c5723cc9a52d904d4f9c807a0667bf" dependencies = [ - "async-trait", - "crossbeam-channel", - "futures-channel", - "futures-executor", - "futures-util", + "futures-core", + "futures-sink", "js-sys", - "lazy_static", - "percent-encoding", - "pin-project", - "rand 0.8.5", + "once_cell", + "pin-project-lite", "thiserror", - "tokio", - "tokio-stream", + "urlencoding", ] [[package]] name = "opentelemetry-otlp" -version = "0.10.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1a6ca9de4c8b00aa7f1a153bd76cb263287155cec642680d79d98706f3d28a" +checksum = "1a016b8d9495c639af2145ac22387dcb88e44118e45320d9238fbf4e7889abcb" dependencies = [ "async-trait", - "futures", - "futures-util", - "http", + "futures-core", + "http 0.2.12", "opentelemetry", + "opentelemetry-proto", + "opentelemetry-semantic-conventions", + "opentelemetry_sdk", "prost", "thiserror", "tokio", "tonic", - "tonic-build", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8fddc9b68f5b80dae9d6f510b88e02396f006ad48cac349411fbecc80caae4" +dependencies = [ + "opentelemetry", + "opentelemetry_sdk", + "prost", + "tonic", ] [[package]] name = "opentelemetry-semantic-conventions" -version = "0.9.0" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9ab5bd6c42fb9349dcf28af2ba9a0667f697f9bdcca045d39f2cec5543e2910" + +[[package]] +name = "opentelemetry_sdk" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "985cc35d832d412224b2cffe2f9194b1b89b6aa5d0bef76d080dce09d90e62bd" +checksum = "9e90c7113be649e31e9a0f8b5ee24ed7a16923b322c3c5ab6367469c049d6b7e" dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "once_cell", "opentelemetry", + "ordered-float", + "percent-encoding", + "rand", + "thiserror", + "tokio", + "tokio-stream", ] [[package]] -name = "os_str_bytes" -version = "6.6.1" +name = "ordered-float" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +checksum = "44d501f1a72f71d3c063a6bbc8f7271fa73aa09fe5d6283b6571e2ed176a2537" +dependencies = [ + "borsh 1.5.1", + "num-traits", + "rand", + "serde", +] [[package]] name = "overload" @@ -3678,9 +4117,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parity-scale-codec" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ "arrayvec", "bitvec", @@ -3692,11 +4131,11 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -3716,9 +4155,9 @@ checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core", @@ -3726,15 +4165,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -3744,15 +4183,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" dependencies = [ "base64ct", - "rand_core 0.6.4", + "rand_core", "subtle", ] [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -3789,16 +4228,6 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "petgraph" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" -dependencies = [ - "fixedbitset", - "indexmap 2.2.3", -] - [[package]] name = "phf" version = "0.11.2" @@ -3828,29 +4257,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -3860,9 +4289,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "plain" @@ -3870,17 +4299,11 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" -[[package]] -name = "platforms" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" - [[package]] name = "plotters" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" +checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" dependencies = [ "num-traits", "plotters-backend", @@ -3891,24 +4314,24 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" +checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" [[package]] name = "plotters-svg" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" +checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" dependencies = [ "plotters-backend", ] [[package]] name = "postgres" -version = "0.19.7" +version = "0.19.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7915b33ed60abc46040cbcaa25ffa1c7ec240668e0477c4f3070786f5916d451" +checksum = "95c918733159f4d55d2ceb262950f00b0aebd6af4aa97b5a47bb0655120475ed" dependencies = [ "bytes", "fallible-iterator 0.2.0", @@ -3920,27 +4343,27 @@ dependencies = [ [[package]] name = "postgres-protocol" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520" +checksum = "acda0ebdebc28befa84bee35e651e4c5f09073d668c7aed4cf7e23c3cda84b23" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "byteorder", "bytes", "fallible-iterator 0.2.0", "hmac 0.12.1", "md-5", "memchr", - "rand 0.8.5", + "rand", "sha2 0.10.8", "stringprep", ] [[package]] name = "postgres-types" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c" +checksum = "f66ea23a2d0e5734297357705193335e0a957696f34bed2f2faefacb2fec336f" dependencies = [ "bytes", "fallible-iterator 0.2.0", @@ -3955,9 +4378,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "precomputed-hash" @@ -3973,12 +4399,22 @@ checksum = "aa06bd51638b6e76ac9ba9b6afb4164fa647bd2916d722f2623fbb6d1ed8bdba" [[package]] name = "prettyplease" -version = "0.2.16" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "prettyplease" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -4000,7 +4436,7 @@ dependencies = [ "fixed-hash 0.8.0", "impl-codec", "impl-rlp", - "impl-serde", + "impl-serde 0.4.0", "scale-info", "uint", ] @@ -4016,30 +4452,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit 0.19.15", -] - -[[package]] -name = "proc-macro-crate" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" -dependencies = [ - "toml_edit 0.20.7", -] - -[[package]] -name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.21.1", + "toml_edit", ] [[package]] @@ -4068,18 +4485,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a" dependencies = [ "unicode-ident", ] [[package]] name = "prometheus" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ "cfg-if 1.0.0", "fnv", @@ -4092,55 +4509,25 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ "bytes", "prost-derive", ] -[[package]] -name = "prost-build" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" -dependencies = [ - "bytes", - "heck 0.3.3", - "itertools", - "lazy_static", - "log", - "multimap", - "petgraph", - "prost", - "prost-types", - "regex", - "tempfile", - "which", -] - [[package]] name = "prost-derive" -version = "0.9.0" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools", + "itertools 0.12.1", "proc-macro2", "quote", - "syn 1.0.109", -] - -[[package]] -name = "prost-types" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" -dependencies = [ - "bytes", - "prost", + "syn 2.0.79", ] [[package]] @@ -4151,9 +4538,9 @@ checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" [[package]] name = "psm" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" dependencies = [ "cc", ] @@ -4191,9 +4578,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -4204,19 +4591,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -4224,18 +4598,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "rand_chacha", + "rand_core", + "serde", ] [[package]] @@ -4245,16 +4610,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", + "rand_core", ] [[package]] @@ -4263,23 +4619,15 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.12", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", + "getrandom", + "serde", ] [[package]] name = "rayon" -version = "1.8.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -4297,33 +4645,24 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", ] [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.12", + "getrandom", "libredox", "thiserror", ] -[[package]] -name = "reed-solomon-erasure" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" -dependencies = [ - "smallvec", -] - [[package]] name = "regalloc2" version = "0.9.3" @@ -4339,14 +4678,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.5", - "regex-syntax 0.8.2", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -4360,13 +4699,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.5", ] [[package]] @@ -4377,20 +4716,20 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "region" -version = "3.0.0" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" +checksum = "e6b6ebd13bc009aef9cd476c1310d49ac354d36e240cf1bd753290f3dc7199a7" dependencies = [ "bitflags 1.3.2", "libc", - "mach", - "winapi", + "mach2", + "windows-sys 0.52.0", ] [[package]] @@ -4404,20 +4743,23 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.24" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" +checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bytes", "encoding_rs", "futures-core", "futures-util", - "h2", - "http", - "http-body", - "hyper", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-rustls", "hyper-tls", + "hyper-util", "ipnet", "js-sys", "log", @@ -4430,7 +4772,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.1", "system-configuration", "tokio", "tokio-native-tls", @@ -4439,7 +4781,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg", + "windows-registry", ] [[package]] @@ -4450,9 +4792,9 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if 1.0.0", - "getrandom 0.2.12", + "getrandom", "libc", - "spin 0.9.8", + "spin", "untrusted", "windows-sys 0.52.0", ] @@ -4468,9 +4810,9 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.7.44" +version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" +checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" dependencies = [ "bitvec", "bytecheck", @@ -4481,14 +4823,14 @@ dependencies = [ "rkyv_derive", "seahash", "tinyvec", - "uuid 1.7.0", + "uuid 1.10.0", ] [[package]] name = "rkyv_derive" -version = "0.7.44" +version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" +checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" dependencies = [ "proc-macro2", "quote", @@ -4529,9 +4871,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -4547,20 +4889,20 @@ checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", @@ -4569,11 +4911,12 @@ dependencies = [ [[package]] name = "rustls" -version = "0.22.4" +version = "0.23.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +checksum = "415d9944693cb90382053259f89fbb077ea730ad7273047ec63b19bc9b160ba8" dependencies = [ "log", + "once_cell", "ring", "rustls-pki-types", "rustls-webpki", @@ -4583,24 +4926,24 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.21.7", + "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.3.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7" +checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55" [[package]] name = "rustls-webpki" -version = "0.102.2" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring", "rustls-pki-types", @@ -4609,15 +4952,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "same-file" @@ -4630,9 +4973,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "bitvec", "cfg-if 1.0.0", @@ -4643,11 +4986,11 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -4655,18 +4998,18 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "schemars" -version = "0.8.16" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" dependencies = [ "dyn-clone", "schemars_derive", @@ -4676,14 +5019,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.16" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 1.0.109", + "syn 2.0.79", ] [[package]] @@ -4715,7 +5058,7 @@ checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -4730,7 +5073,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" dependencies = [ - "rand 0.8.5", + "rand", "secp256k1-sys", ] @@ -4745,11 +5088,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -4758,9 +5101,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", @@ -4768,64 +5111,65 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.197" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "serde_derive_internals" -version = "0.26.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.79", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "serde_repr" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -4842,15 +5186,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.6.1" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.3", + "indexmap 2.6.0", "serde", "serde_derive", "serde_json", @@ -4860,23 +5204,23 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.6.1" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "serde_yaml" -version = "0.9.32" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.6.0", "itoa", "ryu", "serde", @@ -4945,9 +5289,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -4960,9 +5304,9 @@ checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" [[package]] name = "simdutf8" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "siphasher" @@ -4987,9 +5331,9 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smart-default" @@ -5004,20 +5348,14 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -5058,26 +5396,20 @@ dependencies = [ [[package]] name = "stringprep" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" dependencies = [ - "finl_unicode", "unicode-bidi", "unicode-normalization", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + "unicode-properties", +] [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" @@ -5090,11 +5422,11 @@ dependencies = [ [[package]] name = "strum" -version = "0.26.1" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ - "strum_macros 0.26.1", + "strum_macros 0.26.4", ] [[package]] @@ -5112,22 +5444,22 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.26.1" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "symbolic-common" @@ -5184,9 +5516,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.50" +version = "2.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" +checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" dependencies = [ "proc-macro2", "quote", @@ -5202,7 +5534,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -5211,22 +5543,31 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] + [[package]] name = "system-configuration" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" dependencies = [ "core-foundation-sys", "libc", @@ -5240,9 +5581,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.40" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +checksum = "4ff6c40d3aedb5e06b57c6f669ad17ab063dd1e63d977c6a88e7f4dfa4f04020" dependencies = [ "filetime", "libc", @@ -5251,29 +5592,21 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.14" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.10.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if 1.0.0", "fastrand", + "once_cell", "rustix", - "windows-sys 0.52.0", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", + "windows-sys 0.59.0", ] [[package]] @@ -5294,7 +5627,7 @@ dependencies = [ "cfg-if 1.0.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -5305,34 +5638,28 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", "test-case-core", ] -[[package]] -name = "textwrap" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" - [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -5345,11 +5672,20 @@ dependencies = [ "once_cell", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" -version = "0.3.34" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -5368,9 +5704,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -5397,9 +5733,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -5412,21 +5748,20 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -5441,13 +5776,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -5462,9 +5797,9 @@ dependencies = [ [[package]] name = "tokio-postgres" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8" +checksum = "3b5d3742945bc7d7f210693b0c58ae542c6fd47b17adbbda0885f3dcb34a6bdb" dependencies = [ "async-trait", "byteorder", @@ -5479,10 +5814,10 @@ dependencies = [ "pin-project-lite", "postgres-protocol", "postgres-types", - "rand 0.8.5", + "rand", "socket2", "tokio", - "tokio-util 0.7.10", + "tokio-util", "whoami", ] @@ -5493,47 +5828,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" dependencies = [ "pin-project", - "rand 0.8.5", + "rand", "tokio", ] [[package]] -name = "tokio-stream" -version = "0.1.14" +name = "tokio-rustls" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "futures-core", - "pin-project-lite", + "rustls", + "rustls-pki-types", "tokio", ] [[package]] -name = "tokio-util" -version = "0.6.10" +name = "tokio-stream" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ - "bytes", "futures-core", - "futures-sink", - "log", "pin-project-lite", "tokio", ] [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -5547,84 +5878,46 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" - -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.2.3", - "toml_datetime", - "winnow", -] - -[[package]] -name = "toml_edit" -version = "0.20.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" -dependencies = [ - "indexmap 2.2.3", - "toml_datetime", - "winnow", -] +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_edit" -version = "0.21.1" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.6.0", "toml_datetime", "winnow", ] [[package]] name = "tonic" -version = "0.6.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" dependencies = [ "async-stream", "async-trait", - "base64 0.13.1", + "axum", + "base64 0.21.7", "bytes", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", "hyper-timeout", "percent-encoding", "pin-project", "prost", - "prost-derive", "tokio", "tokio-stream", - "tokio-util 0.6.10", "tower", "tower-layer", "tower-service", "tracing", - "tracing-futures", -] - -[[package]] -name = "tonic-build" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" -dependencies = [ - "proc-macro2", - "prost-build", - "quote", - "syn 1.0.109", ] [[package]] @@ -5638,10 +5931,10 @@ dependencies = [ "indexmap 1.9.3", "pin-project", "pin-project-lite", - "rand 0.8.5", + "rand", "slab", "tokio", - "tokio-util 0.7.10", + "tokio-util", "tower-layer", "tower-service", "tracing", @@ -5649,15 +5942,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -5665,7 +5958,6 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -5691,7 +5983,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -5704,27 +5996,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "tracing-log" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -5738,16 +6009,20 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.17.4" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbbe89715c1dbbb790059e2565353978564924ee85017b5fff365c872ff6721f" +checksum = "a9be14ba1bbe4ab79e9229f7f89fab8d120b865859f10527f31c033e599d2284" dependencies = [ + "js-sys", "once_cell", "opentelemetry", + "opentelemetry_sdk", + "smallvec", "tracing", "tracing-core", - "tracing-log 0.1.4", + "tracing-log", "tracing-subscriber", + "web-time", ] [[package]] @@ -5765,26 +6040,16 @@ dependencies = [ "thread_local", "tracing", "tracing-core", - "tracing-log 0.2.0", -] - -[[package]] -name = "treediff" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5" -dependencies = [ - "serde_json", + "tracing-log", ] [[package]] -name = "triehash" -version = "0.8.4" +name = "trie-root" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" +checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" dependencies = [ "hash-db", - "rlp", ] [[package]] @@ -5813,36 +6078,36 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] [[package]] -name = "unicode-segmentation" -version = "1.11.0" +name = "unicode-properties" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" [[package]] name = "unsafe-libyaml" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "untrusted" @@ -5852,26 +6117,35 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.9.6" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35" +checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "flate2", "log", "once_cell", "rustls", "rustls-pki-types", - "rustls-webpki", "url", "webpki-roots", ] +[[package]] +name = "uriparse" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff" +dependencies = [ + "fnv", + "lazy_static", +] + [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -5879,11 +6153,17 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" @@ -5893,9 +6173,9 @@ checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" [[package]] name = "uuid" -version = "1.7.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" [[package]] name = "valuable" @@ -5911,15 +6191,15 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -5927,9 +6207,9 @@ dependencies = [ [[package]] name = "walrus" -version = "0.20.3" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c03529cd0c4400a2449f640d2f27cd1b48c3065226d15e26d98e4429ab0adb7" +checksum = "d68aa3c7b80be75c8458fc087453e5a31a226cfffede2e9b932393b2ea1c624a" dependencies = [ "anyhow", "gimli 0.26.2", @@ -5937,20 +6217,20 @@ dependencies = [ "leb128", "log", "walrus-macro", - "wasm-encoder 0.29.0", - "wasmparser 0.80.2", + "wasm-encoder 0.212.0", + "wasmparser 0.212.0", ] [[package]] name = "walrus-macro" -version = "0.19.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e5bd22c71e77d60140b0bd5be56155a37e5bd14e24f5f87298040d0cc40d7" +checksum = "439ad39ff894c43c9649fa724cdde9a6fc50b855d517ef071a93e5df82fe51d3" dependencies = [ - "heck 0.3.3", + "heck 0.5.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.79", ] [[package]] @@ -5962,12 +6242,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -5982,34 +6256,35 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if 1.0.0", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -6019,9 +6294,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6029,22 +6304,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasm-encoder" @@ -6057,18 +6332,18 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.29.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18c41dbd92eaebf3612a39be316540b8377c871cb9bde6b064af962984912881" +checksum = "9ca90ba1b5b0a70d3d49473c5579951f3bddc78d47b59256d2f9d4922b150aca" dependencies = [ "leb128", ] [[package]] name = "wasm-encoder" -version = "0.35.0" +version = "0.212.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca90ba1b5b0a70d3d49473c5579951f3bddc78d47b59256d2f9d4922b150aca" +checksum = "501940df4418b8929eb6d52f1aade1fdd15a5b86c92453cb696e3c906bd3fc33" dependencies = [ "leb128", ] @@ -6096,8 +6371,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac4af0e438015585eb27b2c6f6869c58c540bfe27408b686b1778470bf301050" dependencies = [ "byteorder", - "dynasm", - "dynasmrt", + "dynasm 1.2.3", + "dynasmrt 1.2.3", "lazy_static", "memoffset 0.6.5", "more-asserts", @@ -6185,15 +6460,19 @@ checksum = "52144d4c78e5cf8b055ceab8e5fa22814ce4315d6002ad32cfd914f37c12fd65" [[package]] name = "wasmparser" -version = "0.80.2" +version = "0.83.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449167e2832691a1bff24cde28d2804e90e09586a448c8e76984792c44334a6b" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" [[package]] name = "wasmparser" -version = "0.83.0" +version = "0.99.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" +checksum = "9ef3b717afc67f848f412d4f02c127dd3e35a0eecd58c684580414df4fde01d3" +dependencies = [ + "indexmap 1.9.3", + "url", +] [[package]] name = "wasmparser" @@ -6211,8 +6490,22 @@ version = "0.115.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e06c0641a4add879ba71ccb3a1e4278fd546f76f1eafb21d8f7b07733b547cd5" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.6.0", + "semver", +] + +[[package]] +name = "wasmparser" +version = "0.212.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d28bc49ba1e5c5b61ffa7a2eace10820443c4b7d1c0b144109261d14570fdf8" +dependencies = [ + "ahash 0.8.11", + "bitflags 2.6.0", + "hashbrown 0.14.5", + "indexmap 2.6.0", "semver", + "serde", ] [[package]] @@ -6236,10 +6529,10 @@ dependencies = [ "bumpalo", "cfg-if 1.0.0", "fxprof-processed-profile", - "indexmap 2.2.3", + "indexmap 2.6.0", "libc", "log", - "object", + "object 0.32.2", "once_cell", "paste", "psm", @@ -6281,7 +6574,7 @@ dependencies = [ "cranelift-wasm", "gimli 0.28.1", "log", - "object", + "object 0.32.2", "target-lexicon", "thiserror", "wasmparser 0.115.0", @@ -6301,7 +6594,7 @@ dependencies = [ "cranelift-control", "cranelift-native", "gimli 0.28.1", - "object", + "object 0.32.2", "target-lexicon", "wasmtime-environ", ] @@ -6315,9 +6608,9 @@ dependencies = [ "anyhow", "cranelift-entity", "gimli 0.28.1", - "indexmap 2.2.3", + "indexmap 2.6.0", "log", - "object", + "object 0.32.2", "serde", "serde_derive", "target-lexicon", @@ -6332,14 +6625,14 @@ version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f0f6586c61125fbfc13c3108c3dd565d21f314dd5bac823b9a5b7ab576d21f1" dependencies = [ - "addr2line", + "addr2line 0.21.0", "anyhow", "bincode", "cfg-if 1.0.0", "cpp_demangle", "gimli 0.28.1", "log", - "object", + "object 0.32.2", "rustc-demangle", "rustix", "serde", @@ -6381,14 +6674,14 @@ dependencies = [ "anyhow", "cc", "cfg-if 1.0.0", - "indexmap 2.2.3", + "indexmap 2.6.0", "libc", "log", "mach", "memfd", - "memoffset 0.9.0", + "memoffset 0.9.1", "paste", - "rand 0.8.5", + "rand", "rustix", "sptr", "wasm-encoder 0.35.0", @@ -6421,7 +6714,7 @@ checksum = "09b5575a75e711ca6c36bb9ad647c93541cdc8e34218031acba5da3f35919dd3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] @@ -6432,9 +6725,19 @@ checksum = "9dafab2db172a53e23940e0fa3078c202f567ee5f13f4b42f66b694fab43c658" [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -6442,9 +6745,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.1" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" dependencies = [ "rustls-pki-types", ] @@ -6461,23 +6764,11 @@ dependencies = [ "winapi", ] -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix", -] - [[package]] name = "whoami" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" +checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" dependencies = [ "redox_syscall", "wasite", @@ -6502,11 +6793,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -6521,7 +6812,37 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.3", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", ] [[package]] @@ -6539,7 +6860,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.3", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -6559,17 +6889,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.3" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.3", - "windows_aarch64_msvc 0.52.3", - "windows_i686_gnu 0.52.3", - "windows_i686_msvc 0.52.3", - "windows_x86_64_gnu 0.52.3", - "windows_x86_64_gnullvm 0.52.3", - "windows_x86_64_msvc 0.52.3", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -6580,9 +6911,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.3" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -6592,9 +6923,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.3" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -6604,9 +6935,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.3" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -6616,9 +6953,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.3" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -6628,9 +6965,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.3" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -6640,9 +6977,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.3" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -6652,29 +6989,19 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.3" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.5.40" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if 1.0.0", - "windows-sys 0.48.0", -] - [[package]] name = "wyz" version = "0.5.1" @@ -6697,35 +7024,50 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.19" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" +checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26" [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.79", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "zeropool-bn" @@ -6737,7 +7079,7 @@ dependencies = [ "byteorder", "crunchy", "lazy_static", - "rand 0.8.5", + "rand", "rustc-hex", ] @@ -6770,7 +7112,7 @@ dependencies = [ "pbkdf2", "sha1", "time", - "zstd", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] @@ -6779,7 +7121,16 @@ version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ - "zstd-safe", + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" +dependencies = [ + "zstd-safe 7.2.1", ] [[package]] @@ -6792,11 +7143,20 @@ dependencies = [ "zstd-sys", ] +[[package]] +name = "zstd-safe" +version = "7.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +dependencies = [ + "zstd-sys", +] + [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index fca0f0c85..7f80c916b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ engine-standalone-storage = { path = "engine-standalone-storage" } engine-standalone-tracing = { path = "engine-standalone-tracing", default-features = false, features = ["impl-serde"] } anyhow = "1" -base64 = { version = "0.21", default-features = false, features = ["alloc"] } +base64 = { version = "0.22", default-features = false, features = ["alloc"] } bitflags = { version = "1", default-features = false } bn = { version = "0.5", package = "zeropool-bn", default-features = false } borsh = { version = "1", default-features = false, features = ["derive"] } @@ -31,31 +31,31 @@ byte-slice-cast = { version = "1", default-features = false } criterion = "0.5" digest = "0.10" ethabi = { version = "18", default-features = false } -evm = { git = "https://github.com/aurora-is-near/sputnikvm.git", tag = "v0.39.1", default-features = false } -evm-core = { git = "https://github.com/aurora-is-near/sputnikvm.git", tag = "v0.39.1", default-features = false, features = ["std"] } -evm-gasometer = { git = "https://github.com/aurora-is-near/sputnikvm.git", tag = "v0.39.1", default-features = false, features = ["std", "tracing"] } -evm-runtime = { git = "https://github.com/aurora-is-near/sputnikvm.git", tag = "v0.39.1", default-features = false, features = ["std", "tracing"] } +evm = { git = "https://github.com/aurora-is-near/sputnikvm.git", tag = "v0.45.4-aurora", default-features = false } +evm-core = { git = "https://github.com/aurora-is-near/sputnikvm.git", tag = "v0.45.4-aurora", default-features = false, features = ["std"] } +evm-gasometer = { git = "https://github.com/aurora-is-near/sputnikvm.git", tag = "v0.45.4-aurora", default-features = false, features = ["std", "tracing"] } +evm-runtime = { git = "https://github.com/aurora-is-near/sputnikvm.git", tag = "v0.45.4-aurora", default-features = false, features = ["std", "tracing"] } fixed-hash = { version = "0.8", default-features = false } function_name = "0.3" -git2 = "0.18" +git2 = "0.19" hex = { version = "0.4", default-features = false, features = ["alloc"] } ibig = { version = "0.3", default-features = false, features = ["num-traits"] } -impl-serde = { version = "0.4", default-features = false } +impl-serde = { version = "0.5", default-features = false } lazy_static = "1" libsecp256k1 = { version = "0.7", default-features = false } -near-crypto = "0.20" -near-gas = "0.2" -near-parameters = "0.20" -near-primitives = "0.20" -near-primitives-core = "0.20" +near-crypto = "0.26" +near-gas = "0.3" +near-parameters = "0.26" +near-primitives = "0.26" +near-primitives-core = "0.26" near-sdk = "5" -near-vm-runner = { version = "0.20", features = ["wasmtime_vm", "wasmer2_vm"] } -near-workspaces = "0.10" +near-vm-runner = { version = "0.26", features = ["wasmtime_vm", "wasmer2_vm", "near_vm"] } +near-workspaces = "0.14" num = { version = "0.4", default-features = false, features = ["alloc"] } postgres = "0.19" primitive-types = { version = "0.12", default-features = false, features = ["rlp", "serde_no_std"] } rand = "0.8" -reqwest = "0.11" +reqwest = "0.12" ripemd = { version = "0.1", default-features = false } rlp = { version = "0.5", default-features = false } rocksdb = { version = "0.21", default-features = false } @@ -67,7 +67,7 @@ strum = { version = "0.26", features = ["derive"] } tempfile = "3" tokio = { version = "1", default-features = false, features = ["macros"] } test-case = "3.1" -walrus = "0.20" +walrus = "0.22" wee_alloc = { version = "0.4", default-features = false } [workspace] diff --git a/Makefile.toml b/Makefile.toml index 55e849b9d..a399a8ee6 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -375,7 +375,7 @@ script = ''' AURORA_ETH_CONNECTOR_DIR="engine-tests-connector/etc/aurora-eth-connector/" AURORA_ETH_CONNECTOR_ETC="engine-tests-connector/etc/" AURORA_ETH_CONNECTOR_REPO_NAME="aurora-eth-connector" -AURORA_ETH_CONNECTOR_REPO="https://github.com/aurora-is-near/"$AURORA_ETH_CONNECTOR_REPO_NAME +AURORA_ETH_CONNECTOR_REPO="https://github.com/Near-One/$AURORA_ETH_CONNECTOR_REPO_NAME" if [ -d $AURORA_ETH_CONNECTOR_DIR ]; then cd $AURORA_ETH_CONNECTOR_DIR echo "Pull Aurora Eth-Connector repo" @@ -387,7 +387,10 @@ else git clone --depth 1 $AURORA_ETH_CONNECTOR_REPO cd $AURORA_ETH_CONNECTOR_REPO_NAME fi -cargo make --profile mainnet build-test +RUST_VERSION=$(cat rust-toolchain | grep channel | cut -d'"' -f 2) +rustup toolchain add $RUST_VERSION +rustup target add wasm32-unknown-unknown --toolchain $RUST_VERSION +cargo +$RUST_VERSION make --profile mainnet build-test ''' [tasks.test-flow] diff --git a/README.md b/README.md index d95093c52..8d987b00b 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,6 @@ shasum -a 256 bin/aurora-.wasm #### Running unit & integration tests To run tests, there are a few cargo make tasks we can run: -- `test`: tests the whole cargo workspace and ETH contracts. Requires a `--profile` argument. - `test-workspace`: tests only the cargo workspace. - `test-contracts`: tests only the contracts. - `test`: tests the whole cargo workspace, ETH contracts and runs modexp benchmarks. Requires a `--profile` argument. @@ -127,7 +126,7 @@ The following tasks are available to run lints and checks: For example, the following command will run the checks. `profile` is not required here: -``` +```sh cargo make check ``` @@ -146,7 +145,7 @@ Additionally, there is also but not included in the `clean` task: For example, the following command will clean everything. `profile` is not required: -``` +```sh cargo make clean ``` diff --git a/VERSION b/VERSION index 0f44168a4..7c69a55db 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.6.4 +3.7.0 diff --git a/engine-hashchain/src/hashchain.rs b/engine-hashchain/src/hashchain.rs index b5133bc77..b1191e79c 100644 --- a/engine-hashchain/src/hashchain.rs +++ b/engine-hashchain/src/hashchain.rs @@ -57,10 +57,9 @@ impl Hashchain { } /// Moves to the indicated block height if it is bigger than the current block height: - /// -Updates the previous block hashchain computing the hash. - /// -Updates the current block height. - /// -Clears the transactions. - /// -Clears the transactions. + /// - Updates the previous block hashchain computing the hash. + /// - Updates the current block height. + /// - Clears the transactions. /// Returns an error in other case. pub fn move_to_block( &mut self, diff --git a/engine-precompiles/src/lib.rs b/engine-precompiles/src/lib.rs index b626acc20..454ccd203 100644 --- a/engine-precompiles/src/lib.rs +++ b/engine-precompiles/src/lib.rs @@ -59,7 +59,7 @@ pub struct PrecompileOutput { impl PrecompileOutput { #[must_use] - pub fn without_logs(cost: EthGas, output: Vec) -> Self { + pub const fn without_logs(cost: EthGas, output: Vec) -> Self { Self { cost, output, diff --git a/engine-precompiles/src/xcc.rs b/engine-precompiles/src/xcc.rs index 6bcead2d6..9deb62595 100644 --- a/engine-precompiles/src/xcc.rs +++ b/engine-precompiles/src/xcc.rs @@ -33,7 +33,7 @@ pub mod costs { pub const CROSS_CONTRACT_CALL_BASE: EthGas = EthGas::new(343_650); /// Additional EVM gas cost per bytes of input given. /// See `CROSS_CONTRACT_CALL_BASE` for estimation methodology. - pub const CROSS_CONTRACT_CALL_BYTE: EthGas = EthGas::new(3); + pub const CROSS_CONTRACT_CALL_BYTE: EthGas = EthGas::new(4); /// EVM gas cost per NEAR gas attached to the created promise. /// This value is derived from the gas report `https://hackmd.io/@birchmd/Sy4piXQ29` /// The units on this quantity are `NEAR Gas / EVM Gas`. diff --git a/engine-sdk/src/caching.rs b/engine-sdk/src/caching.rs index d2baa6c6a..bedf60954 100644 --- a/engine-sdk/src/caching.rs +++ b/engine-sdk/src/caching.rs @@ -10,4 +10,8 @@ impl FullCache { pub fn get_or_insert_with V>(&mut self, k: K, f: F) -> &mut V { self.inner.entry(k).or_insert_with(f) } + + pub fn contains_key(&self, k: &K) -> bool { + self.inner.contains_key(k) + } } diff --git a/engine-standalone-storage/src/json_snapshot/types.rs b/engine-standalone-storage/src/json_snapshot/types.rs index 7fb855807..9e5c3a272 100644 --- a/engine-standalone-storage/src/json_snapshot/types.rs +++ b/engine-standalone-storage/src/json_snapshot/types.rs @@ -22,7 +22,7 @@ pub struct JsonSnapshotResult { /// Base 64 encoding of the block hash pub block_hash: String, pub block_height: u64, - /// See https://github.com/near/nearcore/blob/2bc63c60afe202e7c78a67176a4e267b8c0fb48f/core/primitives/src/views.rs#L201-L202. + /// See . pub proof: Vec, pub values: Vec, } @@ -31,7 +31,7 @@ pub struct JsonSnapshotResult { pub struct JsonSnapshotValue { /// Base 64 encoding of the key pub key: String, - /// See https://github.com/near/nearcore/blob/2bc63c60afe202e7c78a67176a4e267b8c0fb48f/core/primitives/src/views.rs#L201-L202. + /// See . pub proof: Vec, /// Base 64 encoding of the value pub value: String, diff --git a/engine-standalone-storage/src/sync/types.rs b/engine-standalone-storage/src/sync/types.rs index dadb917e1..7a12ca69d 100644 --- a/engine-standalone-storage/src/sync/types.rs +++ b/engine-standalone-storage/src/sync/types.rs @@ -60,8 +60,8 @@ pub struct TransactionMessage { /// This quantity is used together with the block random seed /// to generate the random value available to the transaction. /// nearcore references: - /// - https://github.com/near/nearcore/blob/00ca2f3f73e2a547ba881f76ecc59450dbbef6e2/core/primitives/src/utils.rs#L261 - /// - https://github.com/near/nearcore/blob/00ca2f3f73e2a547ba881f76ecc59450dbbef6e2/core/primitives/src/utils.rs#L295 + /// - + /// - pub action_hash: H256, } @@ -108,13 +108,13 @@ pub enum TransactionKind { /// Bytes here will be parsed into `aurora_engine::proof::Proof` Deposit(Vec), /// This can change balances on aurora in the case that `receiver_id == aurora`. - /// Example: https://explorer.mainnet.near.org/transactions/DH6iNvXCt5n5GZBZPV1A6sLmMf1EsKcxXE4uqk1cShzj + /// Example: FtTransferCall(parameters::TransferCallCallArgs), /// FinishDeposit-type receipts are created by calls to `deposit` FinishDeposit(parameters::FinishDepositCallArgs), - /// ResolveTransfer-type receipts are created by calls to ft_on_transfer + /// ResolveTransfer-type receipts are created by calls to `ft_on_transfer` ResolveTransfer(parameters::ResolveTransferCallArgs, types::PromiseResult), - /// ft_transfer (related to eth-connector) + /// `ft_transfer` (related to eth-connector) FtTransfer(parameters::TransferCallArgs), /// Function to take ETH out of Aurora Withdraw(aurora_engine_types::parameters::WithdrawCallArgs), @@ -132,7 +132,7 @@ pub enum TransactionKind { SetPausedFlags(parameters::PauseEthConnectorCallArgs), /// Ad entry mapping from address to relayer NEAR account RegisterRelayer(Address), - /// Callback called by ExitToNear precompile, also can refund on fail + /// Callback called by `ExitToNear` precompile, also can refund on fail ExitToNear(Option), /// Update eth-connector config SetConnectorData(parameters::SetContractDataCallArgs), diff --git a/engine-standalone-tracing/src/types/mod.rs b/engine-standalone-tracing/src/types/mod.rs index 65a5c9c18..d2c58dde8 100644 --- a/engine-standalone-tracing/src/types/mod.rs +++ b/engine-standalone-tracing/src/types/mod.rs @@ -263,7 +263,7 @@ pub struct TransactionTrace { impl TransactionTrace { /// Constructs a new `TransactionTrace` with a given gas, return, and logs. #[must_use] - pub fn new(gas: EthGas, failed: bool, return_value: Vec, struct_logs: Logs) -> Self { + pub const fn new(gas: EthGas, failed: bool, return_value: Vec, struct_logs: Logs) -> Self { Self { gas, failed, diff --git a/engine-tests-connector/src/connector.rs b/engine-tests-connector/src/connector.rs index fc7205194..6b1ac4b71 100644 --- a/engine-tests-connector/src/connector.rs +++ b/engine-tests-connector/src/connector.rs @@ -792,7 +792,7 @@ async fn test_deposit_pausability_eth_connector() -> anyhow::Result<()> { let res = contract .engine_contract .call("deposit") - .args_borsh(&contract.get_proof(PROOF_DATA_ETH)) + .args_borsh(contract.get_proof(PROOF_DATA_ETH)) .max_gas() .transact() .await?; @@ -803,7 +803,7 @@ async fn test_deposit_pausability_eth_connector() -> anyhow::Result<()> { let res = user_acc .call(contract.eth_connector_contract.id(), "deposit") - .args_borsh(&contract.get_proof(PROOF_DATA_NEAR)) + .args_borsh(contract.get_proof(PROOF_DATA_NEAR)) .max_gas() .transact() .await?; @@ -839,7 +839,7 @@ async fn test_deposit_pausability() -> anyhow::Result<()> { let res = contract .engine_contract .call("deposit") - .args_borsh(&contract.get_proof(PROOF_DATA_ETH)) + .args_borsh(contract.get_proof(PROOF_DATA_ETH)) .max_gas() .transact() .await?; @@ -859,7 +859,7 @@ async fn test_deposit_pausability() -> anyhow::Result<()> { let res = contract .engine_contract .call("deposit") - .args_borsh(&contract.get_proof(PROOF_DATA_ETH)) + .args_borsh(contract.get_proof(PROOF_DATA_ETH)) .max_gas() .transact() .await?; diff --git a/engine-tests/src/benches/nft_pagination.rs b/engine-tests/src/benches/nft_pagination.rs index ab4e9d92c..4c675c227 100644 --- a/engine-tests/src/benches/nft_pagination.rs +++ b/engine-tests/src/benches/nft_pagination.rs @@ -167,8 +167,7 @@ fn initialize_evm() -> (utils::AuroraRunner, utils::Signer, Address) { let dest_address = utils::address_from_secret_key(&SecretKey::random(&mut rng)); let mut signer = utils::Signer::new(source_account); signer.nonce = INITIAL_NONCE; - - runner.wasm_config.limit_config.max_gas_burnt = u64::MAX; + runner.max_gas_burnt(u64::MAX); (runner, signer, dest_address) } diff --git a/engine-tests/src/prelude.rs b/engine-tests/src/prelude.rs index 223b999ff..66b7a97fb 100644 --- a/engine-tests/src/prelude.rs +++ b/engine-tests/src/prelude.rs @@ -1,6 +1,4 @@ mod v0 { - #[cfg(feature = "meta-call")] - pub use aurora_engine::meta_parsing; pub use aurora_engine::parameters; pub use aurora_engine_sdk as sdk; pub use aurora_engine_transactions as transactions; diff --git a/engine-tests/src/tests/erc20.rs b/engine-tests/src/tests/erc20.rs index b1516c7e8..340f111e8 100644 --- a/engine-tests/src/tests/erc20.rs +++ b/engine-tests/src/tests/erc20.rs @@ -114,13 +114,13 @@ fn profile_erc20_get_balance() { .unwrap(); assert!(status.is_ok()); - // call costs less than 2 Tgas - utils::assert_gas_bound(profile.all_gas(), 2); - // at least 70% of the cost is spent on wasm computation (as opposed to host functions) + // call costs less than 3 Tgas + utils::assert_gas_bound(profile.all_gas(), 3); + // at least 80% of the cost is spent on wasm computation (as opposed to host functions) let wasm_fraction = (100 * profile.wasm_gas()) / profile.all_gas(); assert!( - (20..=30).contains(&wasm_fraction), - "{wasm_fraction}% is not between 20% and 30%", + (10..=20).contains(&wasm_fraction), + "{wasm_fraction}% is not between 10% and 20%", ); } diff --git a/engine-tests/src/tests/erc20_connector.rs b/engine-tests/src/tests/erc20_connector.rs index 721b127b1..c3663cb8b 100644 --- a/engine-tests/src/tests/erc20_connector.rs +++ b/engine-tests/src/tests/erc20_connector.rs @@ -540,6 +540,12 @@ pub mod workspace { .map(|o| o.tokens_burnt.as_yoctonear()) .sum(); + // We need to skip at least 1 block before checking ft_owner's balance, because the refund + // receipt is executed in the next(skipped) block, because the transaction broadcasts with + // default `wait_until` parameter, which is [ExecutedOptimistic](https://github.com/near/nearcore/blob/master/core/primitives/src/views.rs#L1743) + // since nearcore 1.39.0. + aurora.node.skip_blocks(1).await.unwrap(); + // Check that the wnear tokens are properly unwrapped and transferred to `ft_owner` assert_eq!( aurora.node.get_balance(&ft_owner.id()).await.unwrap(), @@ -590,6 +596,12 @@ pub mod workspace { .map(|o| o.tokens_burnt.as_yoctonear()) .sum(); + // We need to skip at least 1 block before checking ft_owner's balance, because the refund + // receipt is executed in the next(skipped) block, because the transaction broadcasts with + // default `wait_until` parameter, which is [ExecutedOptimistic](https://github.com/near/nearcore/blob/master/core/primitives/src/views.rs#L1743) + // since nearcore 1.39.0. + aurora.node.skip_blocks(1).await.unwrap(); + // Check that there were no near tokens transferred to `ft_owner` assert_eq!( aurora.node.get_balance(&ft_owner.id()).await.unwrap(), diff --git a/engine-tests/src/tests/mod.rs b/engine-tests/src/tests/mod.rs index 0822702b2..cb960e295 100644 --- a/engine-tests/src/tests/mod.rs +++ b/engine-tests/src/tests/mod.rs @@ -7,8 +7,6 @@ mod erc20_connector; mod erc20_mirror; mod ghsa_3p69_m8gg_fwmf; mod hashchain; -#[cfg(feature = "meta-call")] -mod meta_parsing; pub mod modexp; mod multisender; mod one_inch; diff --git a/engine-tests/src/tests/modexp.rs b/engine-tests/src/tests/modexp.rs index 80c738548..cc87f4dbd 100644 --- a/engine-tests/src/tests/modexp.rs +++ b/engine-tests/src/tests/modexp.rs @@ -321,8 +321,8 @@ impl Default for ModExpBenchContext { // Standalone not relevant here because this is not an Aurora Engine instance inner.standalone_runner = None; - inner.wasm_config.limit_config.max_gas_burnt = u64::MAX; - inner.code = ContractCode::new(bench_contract_bytes, None); + inner.max_gas_burnt(u64::MAX); + inner.set_code(ContractCode::new(bench_contract_bytes, None)); Self { inner } } diff --git a/engine-tests/src/tests/multisender.rs b/engine-tests/src/tests/multisender.rs index efb143167..ef6731853 100644 --- a/engine-tests/src/tests/multisender.rs +++ b/engine-tests/src/tests/multisender.rs @@ -122,7 +122,7 @@ fn send_eth_data(amounts: &[(Address, U256)]) -> Vec { fn initialize() -> (utils::AuroraRunner, utils::Signer, Address) { let mut runner = utils::deploy_runner(); - runner.wasm_config.limit_config.max_gas_burnt = u64::MAX; + runner.max_gas_burnt(u64::MAX); let mut rng = rand::thread_rng(); let source_account = SecretKey::random(&mut rng); diff --git a/engine-tests/src/tests/one_inch.rs b/engine-tests/src/tests/one_inch.rs index e1ce72a66..53b9423ac 100644 --- a/engine-tests/src/tests/one_inch.rs +++ b/engine-tests/src/tests/one_inch.rs @@ -26,7 +26,7 @@ fn test_1inch_liquidity_protocol() { let (result, profile, pool_factory) = helper.create_pool_factory(&deployer_address); assert!(result.gas_used >= 2_800_000); // more than 2.8M EVM gas used - assert_gas_bound(profile.all_gas(), 9); // less than 9 NEAR Tgas used + assert_gas_bound(profile.all_gas(), 11); // less than 11 NEAR Tgas used // create some ERC-20 tokens to have a liquidity pool for let signer_address = utils::address_from_secret_key(&helper.signer.secret_key); @@ -38,7 +38,7 @@ fn test_1inch_liquidity_protocol() { let (result, profile, pool) = helper.create_pool(&pool_factory, token_a.0.address, token_b.0.address); assert!(result.gas_used >= 4_500_000); // more than 4.5M EVM gas used - assert_gas_bound(profile.all_gas(), 18); + assert_gas_bound(profile.all_gas(), 21); // Approve giving ERC-20 tokens to the pool helper.approve_erc20_tokens(&token_a, pool.address()); @@ -72,7 +72,7 @@ fn test_1inch_liquidity_protocol() { }, ); assert!(result.gas_used >= 210_000); // more than 210k EVM gas used - assert_gas_bound(profile.all_gas(), 24); + assert_gas_bound(profile.all_gas(), 25); let (result, profile) = helper.pool_withdraw( &pool, @@ -83,7 +83,7 @@ fn test_1inch_liquidity_protocol() { }, ); assert!(result.gas_used >= 150_000); // more than 150k EVM gas used - assert_gas_bound(profile.all_gas(), 20); + assert_gas_bound(profile.all_gas(), 21); } #[test] @@ -99,12 +99,12 @@ fn test_1_inch_limit_order_deploy() { // more than 3.5 million Ethereum gas used assert!(result.gas_used > 3_500_000); - // less than 11 NEAR TGas used - assert_gas_bound(profile.all_gas(), 11); + // less than 12 NEAR TGas used + assert_gas_bound(profile.all_gas(), 12); // at least 45% of which is from wasm execution let wasm_fraction = 100 * profile.wasm_gas() / profile.all_gas(); assert!( - (45..=55).contains(&wasm_fraction), + (40..=50).contains(&wasm_fraction), "{wasm_fraction}% is not between 45% and 55%", ); } diff --git a/engine-tests/src/tests/promise_results_precompile.rs b/engine-tests/src/tests/promise_results_precompile.rs index 6d6bc34ae..8b79f3d82 100644 --- a/engine-tests/src/tests/promise_results_precompile.rs +++ b/engine-tests/src/tests/promise_results_precompile.rs @@ -27,7 +27,7 @@ fn test_promise_results_precompile() { data: Vec::new(), }; - runner.promise_results = promise_results.clone(); + runner.promise_results.clone_from(&promise_results); let result = runner .submit_transaction(&signer.secret_key, transaction) .unwrap(); @@ -119,14 +119,15 @@ fn test_promise_result_gas_cost() { let total_gas1 = y1 + baseline.all_gas(); let total_gas2 = y2 + baseline.all_gas(); + assert!( - utils::within_x_percent(15, evm1, total_gas1 / NEAR_GAS_PER_EVM), + utils::within_x_percent(36, evm1, total_gas1 / NEAR_GAS_PER_EVM), "Incorrect EVM gas used. Expected: {} Actual: {}", evm1, total_gas1 / NEAR_GAS_PER_EVM ); assert!( - utils::within_x_percent(15, evm2, total_gas2 / NEAR_GAS_PER_EVM), + utils::within_x_percent(36, evm2, total_gas2 / NEAR_GAS_PER_EVM), "Incorrect EVM gas used. Expected: {} Actual: {}", evm2, total_gas2 / NEAR_GAS_PER_EVM diff --git a/engine-tests/src/tests/repro.rs b/engine-tests/src/tests/repro.rs index a834a9f4b..5dd1aad47 100644 --- a/engine-tests/src/tests/repro.rs +++ b/engine-tests/src/tests/repro.rs @@ -26,7 +26,7 @@ fn repro_GdASJ3KESs() { block_timestamp: 1_645_717_564_644_206_730, input_path: "src/tests/res/input_GdASJ3KESs.hex", evm_gas_used: 706_713, - near_gas_used: 116, + near_gas_used: 115, }); } @@ -51,7 +51,7 @@ fn repro_8ru7VEA() { block_timestamp: 1_648_829_935_343_349_589, input_path: "src/tests/res/input_8ru7VEA.hex", evm_gas_used: 1_732_181, - near_gas_used: 210, + near_gas_used: 206, }); } @@ -71,7 +71,10 @@ fn repro_FRcorNv() { block_timestamp: 1_650_960_438_774_745_116, input_path: "src/tests/res/input_FRcorNv.hex", evm_gas_used: 1_239_721, - near_gas_used: 170, + #[cfg(not(feature = "ext-connector"))] + near_gas_used: 168, + #[cfg(feature = "ext-connector")] + near_gas_used: 167, }); } @@ -88,7 +91,7 @@ fn repro_5bEgfRQ() { block_timestamp: 1_651_073_772_931_594_646, input_path: "src/tests/res/input_5bEgfRQ.hex", evm_gas_used: 6_414_105, - near_gas_used: 655, + near_gas_used: 650, }); } @@ -106,7 +109,7 @@ fn repro_D98vwmi() { block_timestamp: 1_651_753_443_421_003_245, input_path: "src/tests/res/input_D98vwmi.hex", evm_gas_used: 1_035_348, - near_gas_used: 172, + near_gas_used: 169, }); } @@ -125,7 +128,7 @@ fn repro_Emufid2() { block_timestamp: 1_662_118_048_636_713_538, input_path: "src/tests/res/input_Emufid2.hex", evm_gas_used: 1_156_364, - near_gas_used: 296, + near_gas_used: 294, }); } @@ -145,7 +148,7 @@ fn repro_common(context: &ReproContext) { standalone_runner: None, // Turn off standalone here, validated separately below ..Default::default() }; - runner.wasm_config.limit_config.max_gas_burnt = 3_000_000_000_000_000; + runner.max_gas_burnt(3_000_000_000_000_000); runner.context.storage_usage = 1_000_000_000; runner.consume_json_snapshot(snapshot.clone()); runner.context.block_height = *block_height; diff --git a/engine-tests/src/tests/res/transaction_status.borsh b/engine-tests/src/tests/res/transaction_status.borsh new file mode 100644 index 0000000000000000000000000000000000000000..24b6a0e1a2663c91a470a9b6d67b0f6f1d9fb9a9 GIT binary patch literal 42 ocmWe(fC5Gk&BV;Y%Er#Y$;HjX%fQDkASlEN6iqEE$}bWI02j#v0ssI2 literal 0 HcmV?d00001 diff --git a/engine-tests/src/tests/sanity.rs b/engine-tests/src/tests/sanity.rs index 7f8f2149e..3c584dc81 100644 --- a/engine-tests/src/tests/sanity.rs +++ b/engine-tests/src/tests/sanity.rs @@ -180,10 +180,8 @@ fn test_total_supply_accounting() { }) .unwrap(); #[cfg(not(feature = "ext-connector"))] - assert_eq!( - get_total_supply(&mut runner), - INITIAL_BALANCE - TRANSFER_AMOUNT - ); + // For CANCUN hard fork `total_supply` can't change + assert_eq!(get_total_supply(&mut runner), INITIAL_BALANCE); } #[test] @@ -410,7 +408,7 @@ fn test_is_contract() { #[test] fn test_solidity_pure_bench() { let (mut runner, mut signer, _) = initialize_transfer(); - runner.wasm_config.limit_config.max_gas_burnt = u64::MAX; + runner.max_gas_burnt(u64::MAX); let constructor = utils::solidity::ContractConstructor::force_compile( "src/tests/res", @@ -445,7 +443,7 @@ fn test_solidity_pure_bench() { ); let near_gas = profile.all_gas(); assert!( - near_gas > 1500 * 1_000_000_000_000, + near_gas > 1400 * 1_000_000_000_000, "Expected 1500 NEAR Tgas to be used, but only consumed {}", near_gas / 1_000_000_000_000, ); @@ -456,18 +454,23 @@ fn test_solidity_pure_bench() { base_path.join("target/wasm32-unknown-unknown/release/benchmark_contract.wasm"); utils::rust::compile(base_path); let contract_bytes = std::fs::read(output_path).unwrap(); - let code = ContractCode::new(contract_bytes, None); + runner.set_code(ContractCode::new(contract_bytes, None)); let mut context = runner.context.clone(); context.input = loop_limit.to_le_bytes().to_vec(); - let outcome = near_vm_runner::run( - &code, + + let contract = near_vm_runner::prepare( + &runner.ext.underlying, + runner.wasm_config.clone(), + Some(&runner.cache), + context.make_gas_counter(runner.wasm_config.as_ref()), "cpu_ram_soak_test", + ); + + let outcome = near_vm_runner::run( + contract, &mut runner.ext, - context, - &runner.wasm_config, - &runner.fees_config, - &[], - Some(&runner.cache), + &context, + runner.fees_config.clone(), ) .unwrap(); let profile = utils::ExecutionProfile::new(&outcome); @@ -687,7 +690,7 @@ fn test_num_wasm_functions() { // See https://github.com/near/nearcore/issues/4814 for context let runner = utils::deploy_runner(); let module = walrus::ModuleConfig::default() - .parse(runner.code.code()) + .parse(runner.ext.underlying.code.unwrap().code()) .unwrap(); let expected_number = 1600; let actual_number = module.funcs.iter().count(); @@ -1069,7 +1072,8 @@ fn test_block_hash_contract() { }) .unwrap(); - utils::panic_on_fail(result.status); + let res = utils::panic_on_fail(result.status); + assert!(res.is_none(), "Status: {res:?}"); } #[cfg(not(feature = "ext-connector"))] @@ -1247,6 +1251,7 @@ mod workspace { Some(utils::AuroraRunner::default().chain_id), &signer.secret_key, ); + let result = aurora .submit(rlp::encode(&signed_tx).to_vec()) .transact() diff --git a/engine-tests/src/tests/self_destruct_state.rs b/engine-tests/src/tests/self_destruct_state.rs index 480f51f62..df2972fc3 100644 --- a/engine-tests/src/tests/self_destruct_state.rs +++ b/engine-tests/src/tests/self_destruct_state.rs @@ -5,6 +5,8 @@ use crate::utils::solidity::self_destruct::{ /// Check that account state should be properly removed after calling selfdestruct #[test] +// For CANCUN hard fork SELFDESCTRUCT disabled +#[ignore] fn test_self_destruct_reset_state() { let mut signer = utils::Signer::random(); let mut runner = utils::deploy_runner(); @@ -29,7 +31,7 @@ fn test_self_destruct_reset_state() { assert_eq!(counter_value, Some(1)); sd.finish(&mut runner); let counter_value = sd.counter(&mut runner, &mut signer); - assert!(counter_value.is_none()); + assert!(counter_value.is_some()); let sd_contract_addr1 = sd_factory.deploy(&mut runner, &mut signer); assert_eq!(sd_contract_addr, sd_contract_addr1); diff --git a/engine-tests/src/tests/standalone/call_tracer.rs b/engine-tests/src/tests/standalone/call_tracer.rs index 8fc026965..e3f54798d 100644 --- a/engine-tests/src/tests/standalone/call_tracer.rs +++ b/engine-tests/src/tests/standalone/call_tracer.rs @@ -2,6 +2,7 @@ use crate::prelude::{H160, H256}; use crate::utils::solidity::erc20::{ERC20Constructor, ERC20}; use crate::utils::{self, standalone, Signer}; use aurora_engine_modexp::AuroraModExp; +use aurora_engine_types::parameters::engine::TransactionStatus; use aurora_engine_types::{ parameters::{CrossContractCallArgs, PromiseArgs, PromiseCreateArgs}, storage, @@ -296,10 +297,10 @@ fn test_contract_create_too_large() { let standalone_result = sputnik::traced_call(&mut listener, || { runner.submit_transaction(&signer.secret_key, tx) }); - assert!( - standalone_result.is_err(), - "Expected contract too large error" - ); + assert!(matches!( + standalone_result.unwrap().status, + TransactionStatus::CreateContractLimit + )); } #[allow(clippy::too_many_lines)] diff --git a/engine-tests/src/tests/standalone/tracing.rs b/engine-tests/src/tests/standalone/tracing.rs index d9051cfc4..487f18bb4 100644 --- a/engine-tests/src/tests/standalone/tracing.rs +++ b/engine-tests/src/tests/standalone/tracing.rs @@ -1,3 +1,4 @@ +// For the future: #![allow(clippy::doc_lazy_continuation)] use aurora_engine_sdk::env::Env; use aurora_engine_types::types::{Address, Wei}; use aurora_engine_types::{H256, U256}; diff --git a/engine-tests/src/tests/standard_precompiles.rs b/engine-tests/src/tests/standard_precompiles.rs index 069d21b9e..5c995e8b6 100644 --- a/engine-tests/src/tests/standard_precompiles.rs +++ b/engine-tests/src/tests/standard_precompiles.rs @@ -24,61 +24,62 @@ fn test_standard_precompiles() { .submit_with_signer(&mut signer, |nonce| contract.call_method("test_all", nonce)) .unwrap(); - utils::panic_on_fail(outcome.status); + let res = utils::panic_on_fail(outcome.status); + assert!(res.is_none(), "Status: {res:?}"); } #[test] fn profile_ecrecover() { let profile = precompile_execution_profile("test_ecrecover"); - utils::assert_gas_bound(profile.all_gas(), 5); + utils::assert_gas_bound(profile.all_gas(), 7); } #[test] fn profile_sha256() { let profile = precompile_execution_profile("test_sha256"); - utils::assert_gas_bound(profile.all_gas(), 5); + utils::assert_gas_bound(profile.all_gas(), 6); } #[test] fn profile_ripemd160() { let profile = precompile_execution_profile("test_ripemd160"); - utils::assert_gas_bound(profile.all_gas(), 5); + utils::assert_gas_bound(profile.all_gas(), 6); } #[test] fn profile_identity() { let profile = precompile_execution_profile("test_identity"); - utils::assert_gas_bound(profile.all_gas(), 5); + utils::assert_gas_bound(profile.all_gas(), 6); } #[test] fn profile_modexp() { let profile = precompile_execution_profile("test_modexp"); - utils::assert_gas_bound(profile.all_gas(), 7); + utils::assert_gas_bound(profile.all_gas(), 8); } #[test] fn profile_ecadd() { let profile = precompile_execution_profile("test_ecadd"); - utils::assert_gas_bound(profile.all_gas(), 5); + utils::assert_gas_bound(profile.all_gas(), 6); } #[test] fn profile_ecmul() { let profile = precompile_execution_profile("test_ecmul"); - utils::assert_gas_bound(profile.all_gas(), 6); + utils::assert_gas_bound(profile.all_gas(), 7); } #[test] fn profile_ecpair() { let profile = precompile_execution_profile("test_ecpair"); - utils::assert_gas_bound(profile.all_gas(), 115); + utils::assert_gas_bound(profile.all_gas(), 116); } #[test] fn profile_blake2f() { let profile = precompile_execution_profile("test_blake2f"); - utils::assert_gas_bound(profile.all_gas(), 5); + utils::assert_gas_bound(profile.all_gas(), 6); } fn initialize() -> (AuroraRunner, Signer, PrecompilesContract) { diff --git a/engine-tests/src/tests/uniswap.rs b/engine-tests/src/tests/uniswap.rs index ffae3ab1c..c24463539 100644 --- a/engine-tests/src/tests/uniswap.rs +++ b/engine-tests/src/tests/uniswap.rs @@ -12,6 +12,7 @@ use aurora_engine_types::types::Wei; use aurora_engine_types::H160; use libsecp256k1::SecretKey; use rand::SeedableRng; +use std::sync::Arc; const INITIAL_BALANCE: u64 = 1000; const INITIAL_NONCE: u64 = 0; @@ -38,7 +39,7 @@ fn test_uniswap_input_multihop() { let (_amount_out, _evm_gas, profile) = context.exact_input(&tokens, INPUT_AMOUNT.into()); - assert_eq!(109, profile.all_gas() / 1_000_000_000_000); + assert_eq!(108, profile.all_gas() / 1_000_000_000_000); } #[test] @@ -49,7 +50,7 @@ fn test_uniswap_exact_output() { let (_result, profile) = context.add_equal_liquidity(LIQUIDITY_AMOUNT.into(), &token_a, &token_b); - utils::assert_gas_bound(profile.all_gas(), 31); + utils::assert_gas_bound(profile.all_gas(), 32); let wasm_fraction = 100 * profile.wasm_gas() / profile.all_gas(); assert!( (40..=50).contains(&wasm_fraction), @@ -58,7 +59,7 @@ fn test_uniswap_exact_output() { let (_amount_in, profile) = context.exact_output_single(&token_a, &token_b, OUTPUT_AMOUNT.into()); - utils::assert_gas_bound(profile.all_gas(), 16); + utils::assert_gas_bound(profile.all_gas(), 17); let wasm_fraction = 100 * profile.wasm_gas() / profile.all_gas(); assert!( (40..=50).contains(&wasm_fraction), @@ -148,7 +149,9 @@ impl UniswapTestContext { } pub fn no_gas(&mut self) { - self.runner.wasm_config.regular_op_cost = 0; + Arc::get_mut(&mut self.runner.wasm_config) + .unwrap() + .regular_op_cost = 0; } pub fn create_tokens(&mut self, n: usize, mint_amount: U256) -> Vec { diff --git a/engine-tests/src/tests/xcc.rs b/engine-tests/src/tests/xcc.rs index 13eea0813..32500f2b1 100644 --- a/engine-tests/src/tests/xcc.rs +++ b/engine-tests/src/tests/xcc.rs @@ -284,10 +284,8 @@ fn test_xcc_exec_gas() { } fn deploy_router() -> AuroraRunner { - let mut router = AuroraRunner { - code: ContractCode::new(contract_bytes(), None), - ..Default::default() - }; + let mut router = AuroraRunner::default(); + router.set_code(ContractCode::new(contract_bytes(), None)); // Standalone not relevant here because this is not an Aurora Engine instance router.standalone_runner = None; @@ -1054,7 +1052,7 @@ pub mod workspace { .unwrap(); anyhow::bail!("TX has been reverted with message: {revert_message}"); } - _ => anyhow::bail!("Wrong status of the transaction"), + other => anyhow::bail!("Wrong status of the transaction {other:?}"), } } diff --git a/engine-tests/src/utils/mocked_external.rs b/engine-tests/src/utils/mocked_external.rs index f93348842..2a76346be 100644 --- a/engine-tests/src/utils/mocked_external.rs +++ b/engine-tests/src/utils/mocked_external.rs @@ -93,6 +93,10 @@ impl near_vm_runner::logic::External for MockedExternalWithTrie { } } + fn get_recorded_storage_size(&self) -> usize { + self.underlying.get_recorded_storage_size() + } + fn validator_stake(&self, account_id: &AccountId) -> Result, VMLogicError> { self.underlying.validator_stake(account_id) } @@ -101,12 +105,28 @@ impl near_vm_runner::logic::External for MockedExternalWithTrie { self.underlying.validator_total_stake() } - fn create_receipt( + fn create_action_receipt( &mut self, receipt_indices: Vec, receiver_id: AccountId, ) -> Result { - self.underlying.create_receipt(receipt_indices, receiver_id) + self.underlying + .create_action_receipt(receipt_indices, receiver_id) + } + + fn create_promise_yield_receipt( + &mut self, + receiver_id: AccountId, + ) -> Result<(ReceiptIndex, CryptoHash), VMLogicError> { + self.underlying.create_promise_yield_receipt(receiver_id) + } + + fn submit_promise_resume_data( + &mut self, + data_id: CryptoHash, + data: Vec, + ) -> Result { + self.underlying.submit_promise_resume_data(data_id, data) } fn append_action_create_account( diff --git a/engine-tests/src/utils/mod.rs b/engine-tests/src/utils/mod.rs index 45d3c1e55..a1c1ec6b5 100644 --- a/engine-tests/src/utils/mod.rs +++ b/engine-tests/src/utils/mod.rs @@ -13,7 +13,6 @@ use aurora_engine_types::parameters::silo::FixedGasArgs; use aurora_engine_types::types::{EthGas, PromiseResult}; use evm::ExitFatal; use libsecp256k1::{self, Message, PublicKey, SecretKey}; -use near_parameters::vm::VMKind; use near_parameters::{RuntimeConfigStore, RuntimeFeesConfig}; use near_primitives::version::PROTOCOL_VERSION; use near_primitives_core::config::ViewConfig; @@ -21,9 +20,10 @@ use near_vm_runner::logic::errors::FunctionCallError; use near_vm_runner::logic::mocks::mock_external::MockedExternal; use near_vm_runner::logic::types::ReturnData; use near_vm_runner::logic::{Config, HostError, VMContext, VMOutcome}; -use near_vm_runner::{ContractCode, MockCompiledContractCache, ProfileDataV3}; +use near_vm_runner::{ContractCode, MockContractRuntimeCache, ProfileDataV3}; use rlp::RlpStream; use std::borrow::Cow; +use std::sync::Arc; #[cfg(not(feature = "ext-connector"))] use crate::prelude::parameters::InitCallArgs; @@ -82,13 +82,11 @@ impl Signer { pub struct AuroraRunner { pub aurora_account_id: String, pub chain_id: u64, - pub code: ContractCode, - pub cache: MockCompiledContractCache, + pub cache: MockContractRuntimeCache, pub ext: mocked_external::MockedExternalWithTrie, pub context: VMContext, - pub wasm_config: Config, - pub fees_config: RuntimeFeesConfig, - pub current_protocol_version: u32, + pub wasm_config: Arc, + pub fees_config: Arc, pub previous_logs: Vec, // Use the standalone in parallel if set. This allows checking both // implementations give the same results. @@ -140,15 +138,19 @@ impl<'a> OneShotAuroraRunner<'a> { input, ); - let outcome = near_vm_runner::run( - &self.base.code, + let contract = near_vm_runner::prepare( + &self.ext.underlying, + self.base.wasm_config.clone(), + Some(&self.base.cache), + self.context.make_gas_counter(&self.base.wasm_config), method_name, + ); + + let outcome = near_vm_runner::run( + contract, &mut self.ext, - self.context.clone(), - &self.base.wasm_config, - &self.base.fees_config, - &[], - Some(&self.base.cache), + &self.context, + self.base.fees_config.clone(), ) .unwrap(); @@ -216,15 +218,22 @@ impl AuroraRunner { } }) .collect(); - let outcome = near_vm_runner::run( - &self.code, + + self.context.promise_results = vm_promise_results.into(); + + let contract = near_vm_runner::prepare( + &self.ext.underlying, + self.wasm_config.clone(), + Some(&self.cache), + self.context.make_gas_counter(&self.wasm_config), method_name, + ); + + let outcome = near_vm_runner::run( + contract, &mut self.ext, - self.context.clone(), - &self.wasm_config, - &self.fees_config, - &vm_promise_results, - Some(&self.cache), + &self.context, + self.fees_config.clone(), ) .unwrap(); @@ -233,7 +242,7 @@ impl AuroraRunner { } self.context.storage_usage = outcome.storage_usage; - self.previous_logs = outcome.logs.clone(); + self.previous_logs.clone_from(&outcome.logs); if let Some(standalone_runner) = &mut self.standalone_runner { standalone_runner.submit_raw( @@ -509,7 +518,7 @@ impl AuroraRunner { self.getter_method_call("get_code", address) } - pub fn get_fixed_gas(&mut self) -> Option { + pub fn get_fixed_gas(&self) -> Option { let outcome = self .one_shot() .call("get_fixed_gas", "getter", vec![]) @@ -621,6 +630,17 @@ impl AuroraRunner { pub const fn get_default_chain_id() -> u64 { DEFAULT_CHAIN_ID } + + pub fn max_gas_burnt(&mut self, max_gas_burnt: u64) { + Arc::get_mut(&mut self.wasm_config) + .unwrap() + .limit_config + .max_gas_burnt = max_gas_burnt; + } + + pub fn set_code(&mut self, code: ContractCode) { + self.ext.underlying.code = Some(Arc::new(code)); + } } impl Default for AuroraRunner { @@ -629,29 +649,25 @@ impl Default for AuroraRunner { // Fetch config (mainly costs) for the latest protocol version. let runtime_config_store = RuntimeConfigStore::test(); let runtime_config = runtime_config_store.get_config(PROTOCOL_VERSION); - let mut wasm_config = runtime_config.wasm_config.clone(); - - if cfg!(not(target_arch = "x86_64")) { - wasm_config.vm_kind = VMKind::Wasmtime; - } else { - wasm_config.vm_kind = VMKind::Wasmer2; - } - + let wasm_config = runtime_config.wasm_config.clone(); let origin_account_id: near_primitives::types::AccountId = DEFAULT_AURORA_ACCOUNT_ID.parse().unwrap(); + let mut mocked_external = MockedExternal::default(); + + mocked_external.code = Some(Arc::new(ContractCode::new(evm_wasm_bytes, None))); Self { aurora_account_id: DEFAULT_AURORA_ACCOUNT_ID.to_string(), chain_id: DEFAULT_CHAIN_ID, - code: ContractCode::new(evm_wasm_bytes, None), - cache: MockCompiledContractCache::default(), - ext: mocked_external::MockedExternalWithTrie::new(MockedExternal::default()), + cache: MockContractRuntimeCache::default(), + ext: mocked_external::MockedExternalWithTrie::new(mocked_external), context: VMContext { current_account_id: origin_account_id.clone(), signer_account_id: origin_account_id.clone(), signer_account_pk: vec![], predecessor_account_id: origin_account_id, input: vec![], + promise_results: Arc::new([]), block_height: 0, block_timestamp: 0, epoch_height: 0, @@ -665,8 +681,7 @@ impl Default for AuroraRunner { view_config: None, }, wasm_config, - fees_config: RuntimeFeesConfig::test(), - current_protocol_version: u32::MAX, + fees_config: Arc::new(RuntimeFeesConfig::test()), previous_logs: Vec::new(), standalone_runner: Some(standalone::StandaloneRunner::default()), promise_results: Vec::new(), @@ -681,7 +696,6 @@ impl Default for AuroraRunner { pub struct ExecutionProfile { pub host_breakdown: ProfileDataV3, total_gas_cost: u64, - pub logs: Vec, } impl ExecutionProfile { @@ -689,7 +703,6 @@ impl ExecutionProfile { Self { host_breakdown: outcome.profile.clone(), total_gas_cost: outcome.burnt_gas, - logs: outcome.logs.clone(), } } @@ -1004,10 +1017,12 @@ pub fn unwrap_revert_slice(result: &SubmitResult) -> &[u8] { } } -pub fn panic_on_fail(status: TransactionStatus) { +pub fn panic_on_fail(status: TransactionStatus) -> Option { match status { - TransactionStatus::Succeed(_) => (), - TransactionStatus::Revert(message) => panic!("{}", String::from_utf8_lossy(&message)), + TransactionStatus::Succeed(_) => None, + TransactionStatus::Revert(message) => { + Some(format!("Revert: {}", String::from_utf8_lossy(&message))) + } other => panic!("{}", String::from_utf8_lossy(other.as_ref())), } } @@ -1031,8 +1046,7 @@ pub fn assert_gas_bound(total_gas: u64, tgas_bound: u64) { /// this simpler formula to avoid floating point arithmetic. pub const fn within_x_percent(x: u64, a: u64, b: u64) -> bool { let (larger, smaller) = if a < b { (b, a) } else { (a, b) }; - - (100 / x) * (larger - smaller) <= larger + 100 * (larger - smaller) <= larger * x } fn into_engine_error(gas_used: u64, aborted: &FunctionCallError) -> EngineError { diff --git a/engine-tests/src/utils/solidity/exit_precompile.rs b/engine-tests/src/utils/solidity/exit_precompile.rs index 11f24ecbf..fb642cca3 100644 --- a/engine-tests/src/utils/solidity/exit_precompile.rs +++ b/engine-tests/src/utils/solidity/exit_precompile.rs @@ -93,7 +93,7 @@ impl Tester { fn submit_result_to_success_or_revert(result: SubmitResult) -> Result { match result.status { aurora_engine::parameters::TransactionStatus::Succeed(_) => Ok(result), - aurora_engine::parameters::TransactionStatus::Revert(bytes) => Err(Revert(bytes)), + aurora_engine::parameters::TransactionStatus::Revert(_bytes) => Err(Revert), other => panic!("Unexpected status {other:?}"), } } @@ -222,4 +222,4 @@ impl Tester { } #[derive(Debug)] -pub struct Revert(Vec); +pub struct Revert; diff --git a/engine-tests/src/utils/solidity/mod.rs b/engine-tests/src/utils/solidity/mod.rs index ebcd0ee2d..2146c399e 100644 --- a/engine-tests/src/utils/solidity/mod.rs +++ b/engine-tests/src/utils/solidity/mod.rs @@ -67,15 +67,12 @@ impl ContractConstructor { let bin_file = format!("{contract_name}.bin"); let abi_file = format!("{contract_name}.abi"); let hex_path = artifacts_base_path.as_ref().join(bin_file); - let hex_rep = fs::read_to_string(&hex_path).map_or_else( - |_| { - // An error occurred opening the file, maybe the contract hasn't been compiled? - compile(sources_root, contract_file, &artifacts_base_path); - // If another error occurs, then we can't handle it so we just unwrap. - fs::read_to_string(hex_path).unwrap() - }, - |hex| hex, - ); + let hex_rep = fs::read_to_string(&hex_path).unwrap_or_else(|_| { + // An error occurred opening the file, maybe the contract hasn't been compiled? + compile(sources_root, contract_file, &artifacts_base_path); + // If another error occurs, then we can't handle it so we just unwrap. + fs::read_to_string(hex_path).unwrap() + }); let code = hex::decode(hex_rep).unwrap(); let abi_path = artifacts_base_path.as_ref().join(abi_file); let file = fs::File::open(abi_path).unwrap(); @@ -191,7 +188,7 @@ where &source_mount_arg, "-v", &output_mount_arg, - "ethereum/solc:0.8.24", // TODO: 0.8.25 introduces support of the Dencun hard fork. + "ethereum/solc:stable", "--allow-paths", "/contracts/", "-o", diff --git a/engine-tests/src/utils/solidity/uniswap.rs b/engine-tests/src/utils/solidity/uniswap.rs index f5b6546f0..ee8e8c9ff 100644 --- a/engine-tests/src/utils/solidity/uniswap.rs +++ b/engine-tests/src/utils/solidity/uniswap.rs @@ -399,7 +399,7 @@ fn uniswap_root_path() -> PathBuf { fn download_uniswap_artifacts() { DOWNLOAD_ONCE.call_once(|| { let output = Command::new("/usr/bin/env") - .current_dir(&uniswap_root_path()) + .current_dir(uniswap_root_path()) .args(["yarn", "install"]) .output() .unwrap(); diff --git a/engine-tests/src/utils/standalone/mod.rs b/engine-tests/src/utils/standalone/mod.rs index 5a07ca70a..438a51688 100644 --- a/engine-tests/src/utils/standalone/mod.rs +++ b/engine-tests/src/utils/standalone/mod.rs @@ -276,7 +276,7 @@ impl StandaloneRunner { &self.cumulative_diff } - pub fn get_balance(&mut self, address: &Address) -> Wei { + pub fn get_balance(&self, address: &Address) -> Wei { self.storage .with_engine_access(self.env.block_height + 1, 0, &[], |io| { engine::get_balance(&io, address) @@ -284,7 +284,7 @@ impl StandaloneRunner { .result } - pub fn get_nonce(&mut self, address: &Address) -> U256 { + pub fn get_nonce(&self, address: &Address) -> U256 { self.storage .with_engine_access(self.env.block_height + 1, 0, &[], |io| { engine::get_nonce(&io, address) @@ -292,7 +292,7 @@ impl StandaloneRunner { .result } - pub fn get_code(&mut self, address: &Address) -> Vec { + pub fn get_code(&self, address: &Address) -> Vec { self.storage .with_engine_access(self.env.block_height + 1, 0, &[], |io| { engine::get_code(&io, address) diff --git a/engine-transactions/src/eip_4844.rs b/engine-transactions/src/eip_4844.rs new file mode 100644 index 000000000..687f82a3e --- /dev/null +++ b/engine-transactions/src/eip_4844.rs @@ -0,0 +1,3 @@ +/// Type indicator (per EIP-4844) for shard blob transactions +/// [EIP-4844 Specification](https://eips.ethereum.org/EIPS/eip-4844#specification) +pub const TYPE_BYTE: u8 = 0x03; diff --git a/engine-transactions/src/lib.rs b/engine-transactions/src/lib.rs index 690b930c1..6ebd93286 100644 --- a/engine-transactions/src/lib.rs +++ b/engine-transactions/src/lib.rs @@ -16,6 +16,7 @@ use rlp::{Decodable, DecoderError, Rlp}; pub mod backwards_compatibility; pub mod eip_1559; pub mod eip_2930; +pub mod eip_4844; pub mod legacy; /// Typed Transaction Envelope (see `https://eips.ethereum.org/EIPS/eip-2718`) @@ -40,6 +41,8 @@ impl TryFrom<&[u8]> for EthTransactionKind { Ok(Self::Eip1559(eip_1559::SignedTransaction1559::decode( &Rlp::new(&bytes[1..]), )?)) + } else if bytes[0] == eip_4844::TYPE_BYTE { + Err(Error::UnsupportedTransactionEip4844) } else if bytes[0] <= 0x7f { Err(Error::UnknownTransactionType) } else if bytes[0] == 0xff { @@ -212,6 +215,7 @@ pub enum Error { IntegerConversion, #[cfg_attr(feature = "serde", serde(serialize_with = "decoder_err_to_str"))] RlpDecodeError(DecoderError), + UnsupportedTransactionEip4844, } #[cfg(feature = "serde")] @@ -231,6 +235,7 @@ impl Error { Self::GasOverflow => "ERR_GAS_OVERFLOW", Self::IntegerConversion => "ERR_INTEGER_CONVERSION", Self::RlpDecodeError(_) => "ERR_TX_RLP_DECODE", + Self::UnsupportedTransactionEip4844 => "ERR_UNSUPPORTED_TX_EIP4844", } } } diff --git a/engine-types/Cargo.toml b/engine-types/Cargo.toml index f0f29aa26..04d06b52f 100644 --- a/engine-types/Cargo.toml +++ b/engine-types/Cargo.toml @@ -26,7 +26,7 @@ rand.workspace = true [features] default = ["std"] std = ["borsh/std", "hex/std", "primitive-types/std", "primitive-types/serde", "serde/std", "serde_json/std", "rlp/std"] -# `primitive-types/std` is excluded because its `std` implementation includes a transitive +# `primitive-types/std` is excluded because it's `std` implementation includes a transitive # dependency on `getrandom` which uses OS call to obtain entropy. Such calls are not # available in Wasm, therefore we cannot use the `std` implementation of `primitive-types` # in other Rust contracts. diff --git a/engine-types/src/parameters/connector.rs b/engine-types/src/parameters/connector.rs index 2fdcadf9a..fde84feb2 100644 --- a/engine-types/src/parameters/connector.rs +++ b/engine-types/src/parameters/connector.rs @@ -252,9 +252,9 @@ impl rlp::Encodable for LogEntry { /// Borsh-encoded parameters for `mirror_erc20_token` function. #[derive(BorshSerialize, BorshDeserialize, Debug, Eq, PartialEq, Clone)] pub struct MirrorErc20TokenArgs { - /// AccountId of the main Aurora contract which has previously deployed ERC-20. + /// `AccountId` of the main Aurora contract which has previously deployed ERC-20. pub contract_id: AccountId, - /// AccountId of the bridged NEP-141 token. + /// `AccountId` of the bridged NEP-141 token. pub nep141: AccountId, } diff --git a/engine-types/src/parameters/engine.rs b/engine-types/src/parameters/engine.rs index 500b5a959..f614458dd 100644 --- a/engine-types/src/parameters/engine.rs +++ b/engine-types/src/parameters/engine.rs @@ -177,16 +177,53 @@ pub struct ResultLog { pub data: Vec, } -/// The status of a transaction. +/// The status of a transaction representing EVM error kinds. +/// !!! THE ORDER OF VARIANTS MUSTN'T BE CHANGED FOR SAVING BACKWARD COMPATIBILITY !!! +/// !!! NEW VARIANTS SHOULD BE ADDED IN THE END OF THE ENUM ONLY !!! #[derive(Debug, Clone, BorshSerialize, BorshDeserialize, PartialEq, Eq)] #[cfg_attr(feature = "impl-serde", derive(Serialize, Deserialize))] pub enum TransactionStatus { + /// The transaction succeeded. Succeed(Vec), + /// The transaction reverted. Revert(Vec), + /// Execution runs out of gas. OutOfGas, + /// Not enough fund to start the execution. OutOfFund, + /// An opcode accesses external information, but the request is off offset limit. OutOfOffset, + /// Call stack is too deep. CallTooDeep, + /// Trying to pop from an empty stack. + StackUnderflow, + /// Trying to push into a stack over stack limit. + StackOverflow, + /// Jump destination is invalid. + InvalidJump, + /// An opcode accesses memory region, but the region is invalid. + InvalidRange, + /// Encountered the designated invalid opcode. + DesignatedInvalid, + /// Create opcode encountered collision. + CreateCollision, + /// Create init code exceeds limit. + CreateContractLimit, + /// Invalid opcode during execution or starting byte is 0xef. See [EIP-3541](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3541.md). + InvalidCode(u8), + /// PC underflow (unused). + #[allow(clippy::upper_case_acronyms)] + PCUnderflow, + /// Attempt to create an empty account (unused). + CreateEmpty, + /// Nonce reached maximum value of 2^64-1 + MaxNonce, + /// `usize` casting overflow + UsizeOverflow, + /// Other normal errors. + Other(crate::Cow<'static, str>), + /// Contract contains forbidden opcode 0xEF + CreateContractStartingWithEF, } impl TransactionStatus { @@ -201,11 +238,8 @@ impl TransactionStatus { } #[must_use] - pub fn is_fail(&self) -> bool { - *self == Self::OutOfGas - || *self == Self::OutOfFund - || *self == Self::OutOfOffset - || *self == Self::CallTooDeep + pub const fn is_fail(&self) -> bool { + !matches!(*self, Self::Succeed(_) | Self::Revert(_)) } } @@ -218,6 +252,20 @@ impl AsRef<[u8]> for TransactionStatus { Self::OutOfGas => errors::ERR_OUT_OF_GAS, Self::OutOfOffset => errors::ERR_OUT_OF_OFFSET, Self::CallTooDeep => errors::ERR_CALL_TOO_DEEP, + Self::StackUnderflow => errors::ERR_STACK_UNDERFLOW, + Self::StackOverflow => errors::ERR_STACK_OVERFLOW, + Self::InvalidJump => errors::ERR_INVALID_JUMP, + Self::InvalidRange => errors::ERR_INVALID_RANGE, + Self::DesignatedInvalid => errors::ERR_DESIGNATED_INVALID, + Self::CreateCollision => errors::ERR_CREATE_COLLISION, + Self::CreateContractLimit => errors::ERR_CREATE_CONTRACT_LIMIT, + Self::InvalidCode(_) => errors::ERR_INVALID_CODE, + Self::PCUnderflow => errors::ERR_PC_UNDERFLOW, + Self::CreateEmpty => errors::ERR_CREATE_EMPTY, + Self::MaxNonce => errors::ERR_MAX_NONCE, + Self::UsizeOverflow => errors::ERR_USIZE_OVERFLOW, + Self::CreateContractStartingWithEF => errors::ERR_CREATE_CONTRACT_STARTING_WITH_EF, + Self::Other(e) => e.as_bytes(), } } } @@ -237,12 +285,12 @@ impl SubmitResult { /// Must be incremented when making breaking changes to the `SubmitResult` ABI. /// The current value of 7 is chosen because previously a `TransactionStatus` object /// was first in the serialization, which is an enum with less than 7 variants. - /// Therefore, no previous `SubmitResult` would have began with a leading 7 byte, + /// Therefore, no previous `SubmitResult` would have begun with a leading 7 byte, /// and this can be used to distinguish the new ABI (with version byte) from the old. const VERSION: u8 = 7; #[must_use] - pub fn new(status: TransactionStatus, gas_used: u64, logs: Vec) -> Self { + pub const fn new(status: TransactionStatus, gas_used: u64, logs: Vec) -> Self { Self { version: Self::VERSION, status, @@ -372,12 +420,25 @@ mod chain_id_deserialize { pub mod errors { use crate::{account_id::ParseAccountError, String, ToString}; - pub const ERR_REVERT: &[u8; 10] = b"ERR_REVERT"; - pub const ERR_NOT_ALLOWED: &[u8; 15] = b"ERR_NOT_ALLOWED"; - pub const ERR_OUT_OF_FUNDS: &[u8; 16] = b"ERR_OUT_OF_FUNDS"; - pub const ERR_CALL_TOO_DEEP: &[u8; 17] = b"ERR_CALL_TOO_DEEP"; - pub const ERR_OUT_OF_OFFSET: &[u8; 17] = b"ERR_OUT_OF_OFFSET"; - pub const ERR_OUT_OF_GAS: &[u8; 14] = b"ERR_OUT_OF_GAS"; + pub const ERR_REVERT: &[u8] = b"ERR_REVERT"; + pub const ERR_NOT_ALLOWED: &[u8] = b"ERR_NOT_ALLOWED"; + pub const ERR_OUT_OF_FUNDS: &[u8] = b"ERR_OUT_OF_FUNDS"; + pub const ERR_CALL_TOO_DEEP: &[u8] = b"ERR_CALL_TOO_DEEP"; + pub const ERR_OUT_OF_OFFSET: &[u8] = b"ERR_OUT_OF_OFFSET"; + pub const ERR_OUT_OF_GAS: &[u8] = b"ERR_OUT_OF_GAS"; + pub const ERR_STACK_UNDERFLOW: &[u8] = b"STACK_UNDERFLOW"; + pub const ERR_STACK_OVERFLOW: &[u8] = b"STACK_OVERFLOW"; + pub const ERR_INVALID_JUMP: &[u8] = b"INVALID_JUMP"; + pub const ERR_INVALID_RANGE: &[u8] = b"INVALID_RANGE"; + pub const ERR_DESIGNATED_INVALID: &[u8] = b"DESIGNATED_INVALID"; + pub const ERR_CREATE_COLLISION: &[u8] = b"CREATE_COLLISION"; + pub const ERR_CREATE_CONTRACT_LIMIT: &[u8] = b"CREATE_CONTRACT_LIMIT"; + pub const ERR_INVALID_CODE: &[u8] = b"INVALID_CODE"; + pub const ERR_PC_UNDERFLOW: &[u8] = b"PC_UNDERFLOW"; + pub const ERR_CREATE_EMPTY: &[u8] = b"CREATE_EMPTY"; + pub const ERR_MAX_NONCE: &[u8] = b"MAX_NONCE"; + pub const ERR_USIZE_OVERFLOW: &[u8] = b"USIZE_OVERFLOW"; + pub const ERR_CREATE_CONTRACT_STARTING_WITH_EF: &[u8] = b"ERR_CREATE_CONTRACT_STARTING_WITH_EF"; #[derive(Debug)] pub enum ParseArgsError { @@ -511,4 +572,50 @@ mod tests { let arguments = NewCallArgs::deserialize(&serde_json::to_vec(&outdated).unwrap()); assert!(arguments.is_err()); } + + #[test] + fn test_serialization_transaction_status_regression() { + let bytes = + std::fs::read("../engine-tests/src/tests/res/transaction_status.borsh").unwrap(); + let actual = Vec::::try_from_slice(&bytes).unwrap(); + let expected = transaction_status_variants(); + + assert_eq!(actual, expected); + } + + #[allow(dead_code)] + fn generate_borsh_bytes() { + let variants = transaction_status_variants(); + + std::fs::write( + "../engine-tests/src/tests/res/transaction_status.borsh", + borsh::to_vec(&variants).unwrap(), + ) + .unwrap(); + } + + fn transaction_status_variants() -> Vec { + vec![ + TransactionStatus::Succeed(Vec::new()), + TransactionStatus::Revert(Vec::new()), + TransactionStatus::OutOfGas, + TransactionStatus::OutOfFund, + TransactionStatus::OutOfOffset, + TransactionStatus::CallTooDeep, + TransactionStatus::StackUnderflow, + TransactionStatus::StackOverflow, + TransactionStatus::InvalidJump, + TransactionStatus::InvalidRange, + TransactionStatus::DesignatedInvalid, + TransactionStatus::CreateCollision, + TransactionStatus::CreateContractLimit, + TransactionStatus::InvalidCode(0), + TransactionStatus::PCUnderflow, + TransactionStatus::CreateEmpty, + TransactionStatus::MaxNonce, + TransactionStatus::UsizeOverflow, + TransactionStatus::Other("error".into()), + TransactionStatus::CreateContractStartingWithEF, + ] + } } diff --git a/engine-types/src/types/mod.rs b/engine-types/src/types/mod.rs index dd85987be..dd61cde50 100644 --- a/engine-types/src/types/mod.rs +++ b/engine-types/src/types/mod.rs @@ -1,4 +1,4 @@ -use crate::{str, vec, String, Vec, U256}; +use crate::{str, vec, Vec, U256}; use borsh::{BorshDeserialize, BorshSerialize}; pub mod address; @@ -96,19 +96,6 @@ pub struct FtResolveTransferResult { pub refund_amount: Balance, } -const HEX_ALPHABET: &[u8; 16] = b"0123456789abcdef"; - -#[allow(dead_code)] -#[must_use] -pub fn bytes_to_hex(v: &[u8]) -> String { - let mut result = String::new(); - for x in v { - result.push(char::from(HEX_ALPHABET[usize::from(x / 16)])); - result.push(char::from(HEX_ALPHABET[usize::from(x % 16)])); - } - result -} - #[derive(Default)] pub struct Stack { stack: Vec, @@ -157,14 +144,6 @@ pub fn str_from_slice(inp: &[u8]) -> &str { mod tests { use super::*; - #[test] - fn test_hex() { - assert_eq!( - bytes_to_hex(&[0u8, 1u8, 255u8, 16u8]), - "0001ff10".to_string() - ); - } - /// Build view of the stack. Intervals between None values are scopes. fn view_stack(stack: &Stack) -> Vec> { let mut res = vec![]; diff --git a/engine-workspace/src/node.rs b/engine-workspace/src/node.rs index 00584cf82..3ea6aed99 100644 --- a/engine-workspace/src/node.rs +++ b/engine-workspace/src/node.rs @@ -40,6 +40,13 @@ impl Node { .map_err(Into::into) } + pub async fn skip_blocks(&self, num_blocks: u64) -> anyhow::Result<()> { + self.worker + .fast_forward(num_blocks) + .await + .map_err(Into::into) + } + async fn create_root_account( worker: &Worker, root_acc_name: &str, diff --git a/engine/Cargo.toml b/engine/Cargo.toml index fe57caa2a..184adec5f 100644 --- a/engine/Cargo.toml +++ b/engine/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "aurora-engine" -version = "3.6.4" +version = "3.7.0" authors.workspace = true edition.workspace = true homepage.workspace = true diff --git a/engine/src/contract_methods/connector/mod.rs b/engine/src/contract_methods/connector/mod.rs index 5ee7773f0..07fb3c767 100644 --- a/engine/src/contract_methods/connector/mod.rs +++ b/engine/src/contract_methods/connector/mod.rs @@ -45,7 +45,9 @@ pub const ERR_NOT_ENOUGH_BALANCE_FOR_FEE: &str = "ERR_NOT_ENOUGH_BALANCE_FOR_FEE /// Indicate zero attached balance for promise call pub const ZERO_ATTACHED_BALANCE: Yocto = Yocto::new(0); /// Amount of attached gas for read-only promises. -const READ_PROMISE_ATTACHED_GAS: NearGas = NearGas::new(5_000_000_000_000); +const READ_PROMISE_ATTACHED_GAS: NearGas = NearGas::new(6_000_000_000_000); +/// Amount of attached gas for the `mirror_erc20_token_callback`. +const MIRROR_ERC20_TOKEN_CALLBACK_ATTACHED_GAS: NearGas = NearGas::new(10_000_000_000_000); /// Create new eth-connector; pub fn new_eth_connector(io: I, env: &E) -> Result<(), ContractError> { @@ -465,7 +467,9 @@ pub fn mirror_erc20_token( let args = MirrorErc20TokenArgs::try_from_slice(&input) .map_err(|_| crate::errors::ERR_BORSH_DESERIALIZE)?; - let promise = vec![ + // We can't use a batch of actions here, since we need to get responses from both + // view transactions in the `mirror_erc20_token_callback` callback. + let promises = vec![ PromiseCreateArgs { target_account_id: args.contract_id.clone(), method: "get_erc20_from_nep141".to_string(), @@ -491,12 +495,12 @@ pub fn mirror_erc20_token( method: "mirror_erc20_token_callback".to_string(), args: input, attached_balance: Yocto::new(0), - attached_gas: READ_PROMISE_ATTACHED_GAS, + attached_gas: MIRROR_ERC20_TOKEN_CALLBACK_ATTACHED_GAS, }; // Safe because these promises are read-only calls to the main engine contract // and this transaction could be executed by the owner of the contract only. let promise_id = unsafe { - let promise_id = handler.promise_create_and_combine(&promise); + let promise_id = handler.promise_create_and_combine(&promises); handler.promise_attach_callback(promise_id, &callback) }; diff --git a/engine/src/contract_methods/xcc.rs b/engine/src/contract_methods/xcc.rs index 1614af59c..91bef1d47 100644 --- a/engine/src/contract_methods/xcc.rs +++ b/engine/src/contract_methods/xcc.rs @@ -129,12 +129,19 @@ pub fn fund_xcc_sub_account( with_hashchain(io, env, function_name!(), |io| { let state = state::get_state(&io)?; require_running(&state)?; - // This method can only be called by the owner because it allows specifying the - // account ID of the wNEAR account. This information must be accurate for the - // sub-account to work properly, therefore this method can only be called by - // a trusted user. - require_owner_only(&state, &env.predecessor_account_id())?; + let args: xcc::FundXccArgs = io.read_input_borsh()?; + + // If a specific wNEAR account is specified then this transaction must + // come from a trusted user. The wNEAR account must be accurate for the + // XCC sub-account to work properly. + // This method can be public when `args.wnear_account_id.is_none()` + // because then the Engine figures out the correct wNEAR account on + // its own. + if args.wnear_account_id.is_some() { + require_owner_only(&state, &env.predecessor_account_id())?; + } + xcc::fund_xcc_sub_account(&io, handler, env, args)?; Ok(()) }) diff --git a/engine/src/engine.rs b/engine/src/engine.rs index 362f0173d..438500414 100644 --- a/engine/src/engine.rs +++ b/engine/src/engine.rs @@ -5,7 +5,7 @@ use aurora_engine_types::public_key::PublicKey; use aurora_engine_types::PhantomData; use core::mem; use evm::backend::{Apply, ApplyBackend, Backend, Basic, Log}; -use evm::executor; +use evm::{executor, Opcode}; use evm::{Config, CreateScheme, ExitError, ExitFatal, ExitReason}; use crate::map::BijectionMap; @@ -104,6 +104,7 @@ pub enum EngineErrorKind { NotOwner, NonExistedKey, Erc20FromNep141, + RejectCallerWithCode, } impl EngineErrorKind { @@ -143,6 +144,7 @@ impl EngineErrorKind { Self::NotOwner => errors::ERR_NOT_OWNER, Self::NonExistedKey => errors::ERR_FUNCTION_CALL_KEY_NOT_FOUND, Self::Erc20FromNep141 => errors::ERR_GETTING_ERC20_FROM_NEP141, + Self::RejectCallerWithCode => errors::ERR_REJECT_CALL_WITH_CODE, Self::EvmFatal(_) | Self::EvmError(_) => unreachable!(), // unused misc } } @@ -175,6 +177,11 @@ trait ExitIntoResult { } impl ExitIntoResult for ExitReason { + /// We should be aligned to Ethereum's gas charging: + /// - `Success` | `Revert` + /// - `ExitError` - Execution errors should charge gas from users + /// - `ExitFatal` - shouldn't charge user gas + /// NOTE: Transactions validation errors should not charge user gas fn into_result(self, data: Vec) -> Result { match self { Self::Succeed(_) => Ok(TransactionStatus::Succeed(data)), @@ -182,7 +189,27 @@ impl ExitIntoResult for ExitReason { Self::Error(ExitError::OutOfOffset) => Ok(TransactionStatus::OutOfOffset), Self::Error(ExitError::OutOfFund) => Ok(TransactionStatus::OutOfFund), Self::Error(ExitError::OutOfGas) => Ok(TransactionStatus::OutOfGas), - Self::Error(e) => Err(e.into()), + Self::Error(ExitError::CallTooDeep) => Ok(TransactionStatus::CallTooDeep), + Self::Error(ExitError::StackUnderflow) => Ok(TransactionStatus::StackUnderflow), + Self::Error(ExitError::StackOverflow) => Ok(TransactionStatus::StackOverflow), + Self::Error(ExitError::InvalidJump) => Ok(TransactionStatus::InvalidJump), + Self::Error(ExitError::InvalidRange) => Ok(TransactionStatus::InvalidRange), + Self::Error(ExitError::DesignatedInvalid) => Ok(TransactionStatus::DesignatedInvalid), + Self::Error(ExitError::CreateCollision) => Ok(TransactionStatus::CreateCollision), + Self::Error(ExitError::CreateContractLimit) => { + Ok(TransactionStatus::CreateContractLimit) + } + Self::Error(ExitError::InvalidCode(opcode)) => { + Ok(TransactionStatus::InvalidCode(opcode.0)) + } + Self::Error(ExitError::PCUnderflow) => Ok(TransactionStatus::PCUnderflow), + Self::Error(ExitError::CreateEmpty) => Ok(TransactionStatus::CreateEmpty), + Self::Error(ExitError::MaxNonce) => Ok(TransactionStatus::MaxNonce), + Self::Error(ExitError::UsizeOverflow) => Ok(TransactionStatus::UsizeOverflow), + Self::Error(ExitError::CreateContractStartingWithEF) => { + Ok(TransactionStatus::CreateContractStartingWithEF) + } + Self::Error(ExitError::Other(msg)) => Ok(TransactionStatus::Other(msg)), Self::Fatal(e) => Err(e.into()), } } @@ -204,7 +231,7 @@ impl AsRef<[u8]> for BalanceOverflow { pub enum GasPaymentError { /// Overflow adding ETH to an account balance (should never happen) BalanceOverflow(BalanceOverflow), - /// Overflow in gas * gas_price calculation + /// Overflow in `gas * gas_price` calculation EthAmountOverflow, /// Not enough balance for account to cover the gas cost OutOfFund, @@ -396,7 +423,7 @@ pub struct Engine<'env, I: IO, E: Env, M = AuroraModExp> { modexp_algorithm: PhantomData, } -pub(crate) const CONFIG: &Config = &Config::shanghai(); +pub(crate) const CONFIG: &Config = &Config::cancun(); impl<'env, I: IO + Copy, E: Env, M: ModExpAlgorithm> Engine<'env, I, E, M> { pub fn new( @@ -783,41 +810,10 @@ impl<'env, I: IO + Copy, E: Env, M: ModExpAlgorithm> Engine<'env, I, E, M> { Vec::new(), // TODO: are there values we should put here? handler, ) - .and_then(|submit_result| match submit_result.status { - TransactionStatus::Succeed(_) => Ok(submit_result), - TransactionStatus::Revert(bytes) => { - let error_message = crate::prelude::format!( - "Reverted with message: {}", - crate::prelude::String::from_utf8_lossy(&bytes) - ); - Err(EngineError { - kind: EngineErrorKind::EvmError(ExitError::Other( - crate::prelude::Cow::from(error_message), - )), - gas_used: submit_result.gas_used, - }) - } - TransactionStatus::OutOfFund => Err(EngineError { - kind: EngineErrorKind::EvmError(ExitError::OutOfFund), - gas_used: submit_result.gas_used, - }), - TransactionStatus::OutOfOffset => Err(EngineError { - kind: EngineErrorKind::EvmError(ExitError::OutOfOffset), - gas_used: submit_result.gas_used, - }), - TransactionStatus::OutOfGas => Err(EngineError { - kind: EngineErrorKind::EvmError(ExitError::OutOfGas), - gas_used: submit_result.gas_used, - }), - TransactionStatus::CallTooDeep => Err(EngineError { - kind: EngineErrorKind::EvmError(ExitError::CallTooDeep), - gas_used: submit_result.gas_used, - }), - }) - .map_err(|e| { - sdk::log!("{:?}", e); + .and_then(submit_result_or_err) + .inspect_err(|_e| { + sdk::log!("{:?}", _e); self.io.return_output(output_on_fail); - e })?; // Everything succeed so return "0" @@ -1032,6 +1028,8 @@ pub fn submit_with_alt_modexp< tx.try_into() .map_err(|_e| EngineErrorKind::InvalidSignature)? }; + // Retrieve the signer of the transaction: + let sender = transaction.address; let fixed_gas = silo::get_fixed_gas(&io); @@ -1045,9 +1043,6 @@ pub fn submit_with_alt_modexp< } } - // Retrieve the signer of the transaction: - let sender = transaction.address; - sdk::log!("signer_address {:?}", sender); check_nonce(&io, &sender, &transaction.nonce)?; @@ -1075,6 +1070,10 @@ pub fn submit_with_alt_modexp< let mut engine: Engine<_, _, M> = Engine::new_with_state(state, sender, current_account_id, io, env); + // EIP-3607 + if !engine.code(sender.raw()).is_empty() { + return Err(EngineErrorKind::RejectCallerWithCode.into()); + } let max_gas_price = args.max_gas_price.map(Into::into); let prepaid_amount = match engine.charge_gas(&sender, &transaction, max_gas_price, fixed_gas) { Ok(gas_result) => gas_result, @@ -1539,10 +1538,16 @@ pub fn get_storage(io: &I, address: &Address, key: &H256, generation: u32 .unwrap_or_default() } +pub fn storage_has_key(io: &I, address: &Address, key: &H256, generation: u32) -> bool { + io.storage_has_key(storage_to_key(address, key, generation).as_ref()) +} + +/// EIP-7610: balance, nonce, code, storage should be empty pub fn is_account_empty(io: &I, address: &Address) -> bool { get_balance(io, address).is_zero() && get_nonce(io, address).is_zero() && get_code_size(io, address) == 0 + && !storage_has_key(io, address, &H256::zero(), get_generation(io, address)) } /// Increments storage generation for a given address. @@ -1910,6 +1915,29 @@ impl<'env, I: IO + Copy, E: Env, M: ModExpAlgorithm> Backend for Engine<'env, I, result } + /// Check if the storage of the address is empty. + /// Related to EIP-7610: non-empty storage + fn is_empty_storage(&self, address: H160) -> bool { + // As we can't read all storage data for account we assuming that if storage exists + // `index = 0` always true + let index = H256::zero(); + // First we're checking cache to not produce read-storage operation + let address = Address::new(address); + if self + .contract_storage_cache + .borrow() + .contains_key(&(address, index)) + { + return false; + } + let generation = *self + .generation_cache + .borrow_mut() + .entry(address) + .or_insert_with(|| get_generation(&self.io, &address)); + !storage_has_key(&self.io, &address, &index, generation) + } + /// Get original storage value of address at index, if available. /// /// Since `SputnikVM` collects storage changes in memory until the transaction is over, @@ -1918,6 +1946,14 @@ impl<'env, I: IO + Copy, E: Env, M: ModExpAlgorithm> Backend for Engine<'env, I, fn original_storage(&self, address: H160, index: H256) -> Option { Some(self.storage(address, index)) } + + fn get_blob_hash(&self, _index: usize) -> Option { + None + } + + fn blob_gas_price(&self) -> Option { + None + } } impl<'env, J: IO + Copy, E: Env, M: ModExpAlgorithm> ApplyBackend for Engine<'env, J, E, M> { @@ -2046,6 +2082,92 @@ impl<'env, J: IO + Copy, E: Env, M: ModExpAlgorithm> ApplyBackend for Engine<'en } } +fn submit_result_or_err(submit_result: SubmitResult) -> Result { + match submit_result.status { + TransactionStatus::Succeed(_) => Ok(submit_result), + TransactionStatus::Revert(bytes) => { + let error_message = crate::prelude::format!( + "Reverted with message: {}", + crate::prelude::String::from_utf8_lossy(&bytes) + ); + Err(engine_error( + ExitError::Other(error_message.into()), + submit_result.gas_used, + )) + } + TransactionStatus::OutOfFund => { + Err(engine_error(ExitError::OutOfFund, submit_result.gas_used)) + } + TransactionStatus::OutOfOffset => { + Err(engine_error(ExitError::OutOfOffset, submit_result.gas_used)) + } + TransactionStatus::OutOfGas => { + Err(engine_error(ExitError::OutOfGas, submit_result.gas_used)) + } + TransactionStatus::CallTooDeep => { + Err(engine_error(ExitError::CallTooDeep, submit_result.gas_used)) + } + TransactionStatus::StackUnderflow => Err(engine_error( + ExitError::StackUnderflow, + submit_result.gas_used, + )), + TransactionStatus::StackOverflow => Err(engine_error( + ExitError::StackOverflow, + submit_result.gas_used, + )), + TransactionStatus::InvalidJump => { + Err(engine_error(ExitError::InvalidJump, submit_result.gas_used)) + } + TransactionStatus::InvalidRange => Err(engine_error( + ExitError::InvalidRange, + submit_result.gas_used, + )), + TransactionStatus::DesignatedInvalid => Err(engine_error( + ExitError::DesignatedInvalid, + submit_result.gas_used, + )), + TransactionStatus::CreateCollision => Err(engine_error( + ExitError::CreateCollision, + submit_result.gas_used, + )), + TransactionStatus::CreateContractLimit => Err(engine_error( + ExitError::CreateContractLimit, + submit_result.gas_used, + )), + TransactionStatus::InvalidCode(code) => Err(engine_error( + ExitError::InvalidCode(Opcode(code)), + submit_result.gas_used, + )), + TransactionStatus::PCUnderflow => { + Err(engine_error(ExitError::PCUnderflow, submit_result.gas_used)) + } + TransactionStatus::CreateEmpty => { + Err(engine_error(ExitError::CreateEmpty, submit_result.gas_used)) + } + TransactionStatus::MaxNonce => { + Err(engine_error(ExitError::MaxNonce, submit_result.gas_used)) + } + TransactionStatus::UsizeOverflow => Err(engine_error( + ExitError::UsizeOverflow, + submit_result.gas_used, + )), + TransactionStatus::CreateContractStartingWithEF => Err(engine_error( + ExitError::CreateContractStartingWithEF, + submit_result.gas_used, + )), + TransactionStatus::Other(e) => { + Err(engine_error(ExitError::Other(e), submit_result.gas_used)) + } + } +} + +const fn engine_error(exit_error: ExitError, gas_used: u64) -> EngineError { + EngineError { + kind: EngineErrorKind::EvmError(exit_error), + gas_used, + } +} + #[cfg(test)] mod tests { use super::*; @@ -2532,6 +2654,46 @@ mod tests { assert_eq!(expected_value, actual_value); } + #[test] + fn test_storage_is_empty_with_cache() { + let origin = Address::zero(); + let current_account_id = AccountId::default(); + let env = Fixed::default(); + let storage = RefCell::new(Storage::default()); + let mut io = StoragePointer(&storage); + let engine: Engine<_, _> = + Engine::new_with_state(EngineState::default(), origin, current_account_id, io, &env); + + let expected_value = H256::from_low_u64_le(64); + let index = H256::zero(); + // Check that storage is empty + assert!(engine.is_empty_storage(origin.raw())); + let generation = get_generation(&io, &origin); + set_storage(&mut io, &origin, &index, &expected_value, generation); + // It will read without cache + assert!(!engine.is_empty_storage(origin.raw())); + // Cache should be empty + let cache_val = engine + .contract_storage_cache + .borrow() + .contains_key(&(origin, index)); + assert!(!cache_val); + // Check the storage value and hit the cache + let actual_value = engine.storage(origin.raw(), index); + assert_eq!(expected_value, actual_value); + // Cache should exist + let cache_val = engine + .contract_storage_cache + .borrow() + .contains_key(&(origin, index)); + assert!(cache_val); + remove_storage(&mut io, &origin, &index, generation); + // Value should still be in the cache + let actual_value = engine.storage(origin.raw(), index); + assert_eq!(expected_value, actual_value); + assert!(!engine.is_empty_storage(origin.raw())); + } + #[test] fn test_loading_engine_from_storage_loads_stored_state() { let origin = Address::zero(); diff --git a/engine/src/errors.rs b/engine/src/errors.rs index 5737ee481..47f846a85 100644 --- a/engine/src/errors.rs +++ b/engine/src/errors.rs @@ -109,3 +109,4 @@ pub const ERR_ALLOWED_IN_SILO_MODE_ONLY: &[u8] = b"ERR_ALLOWED_IN_SILO_MODE_ONLY pub const ERR_INVALID_NEP141_ACCOUNT_ID: &[u8] = b"ERR_INVALID_NEP141_ACCOUNT_ID"; pub const ERR_NEP141_NOT_FOUND: &[u8] = b"ERR_NEP141_NOT_FOUND"; pub const ERR_NEP141_TOKEN_ALREADY_REGISTERED: &[u8] = b"ERR_NEP141_TOKEN_ALREADY_REGISTERED"; +pub const ERR_REJECT_CALL_WITH_CODE: &[u8] = b"ERR_REJECT_CALL_WITH_CODE"; diff --git a/engine/src/lib.rs b/engine/src/lib.rs index 1660d3748..7b8338d17 100644 --- a/engine/src/lib.rs +++ b/engine/src/lib.rs @@ -65,7 +65,6 @@ pub unsafe fn on_panic(info: &::core::panic::PanicInfo) -> ! { prelude::sdk::panic_utf8(log.to_string().as_bytes()); } } - ::core::arch::wasm32::unreachable(); } diff --git a/engine/src/pausables.rs b/engine/src/pausables.rs index ea7f0367e..fb3334b38 100644 --- a/engine/src/pausables.rs +++ b/engine/src/pausables.rs @@ -85,7 +85,7 @@ pub trait PausedPrecompilesManager { #[derive(BorshSerialize, BorshDeserialize, Debug, Default, Clone)] #[borsh(crate = "aurora_engine_types::borsh")] pub struct EngineAuthorizer { - /// List of [AccountId]s with the permission to pause precompiles. + /// List of [`AccountId`]s with the permission to pause precompiles. pub acl: BTreeSet, } @@ -138,7 +138,7 @@ impl EnginePrecompilesPauser { impl Authorizer for EngineAuthorizer { fn is_authorized(&self, account: &AccountId) -> bool { - self.acl.get(account).is_some() + self.acl.contains(account) } } diff --git a/engine/src/xcc.rs b/engine/src/xcc.rs index b584e6e60..ee2397c43 100644 --- a/engine/src/xcc.rs +++ b/engine/src/xcc.rs @@ -47,7 +47,7 @@ pub struct RouterCode<'a>(pub Cow<'a, [u8]>); impl<'a> RouterCode<'a> { #[must_use] - pub fn new(bytes: Vec) -> Self { + pub const fn new(bytes: Vec) -> Self { Self(Cow::Owned(bytes)) } diff --git a/etc/eth-contracts/README.md b/etc/eth-contracts/README.md new file mode 100644 index 000000000..928a6e70f --- /dev/null +++ b/etc/eth-contracts/README.md @@ -0,0 +1,61 @@ +# Contract Verification Guide + +This guide explains how to verify your smart contract on Blockscout using Hardhat, starting from installing `@nomicfoundation/hardhat-verify` and `dotenv`. + +## Steps + +### 1. Install Required Packages + +First, install the necessary packages: + +```bash +npm install --save-dev @nomicfoundation/hardhat-verify dotenv +``` + +- **`@nomicfoundation/hardhat-verify`**: Plugin for verifying contracts. +- **`dotenv`**: For managing environment variables securely. + +### 2. Create a `.env` File + +Create a `.env` file under `/etc/eth-contracts` directory to store environment variables. This is already added to `.gitignore` to prevent sensitive data from being committed. + +```bash +CHAIN_ID=1313161555 +NETWORK_NAME=testnet +RPC_URL=https://testnet.aurora.dev +API_URL=https://explorer.testnet.aurora.dev/api +BROWSER_URL=https://explorer.testnet.aurora.dev +PRIVATE_KEY=your_private_key_here # Required for deployment +``` + +**Note:** + +- Replace `your_private_key_here` with your actual private key(required only for deployment). + + +### 3. Compile Your Contract + +Compile your smart contract using Hardhat. + +```bash +npx hardhat compile +``` + +### 4. Verify Your Contract + +After compiling, verify your contract using the Hardhat verification plugin. + +```bash +npx hardhat verify --network testnet DEPLOYED_CONTRACT_ADDRESS "Constructor Argument 1" "Constructor Argument 2" +``` + +**Replace:** + +- `DEPLOYED_CONTRACT_ADDRESS` with your contract's address. +- `"Constructor Argument 1"`, `"Constructor Argument 2"` with any constructor arguments required by your contract. + +**Example:** + +```bash +npx hardhat verify --network testnet 0x4988a896b1227218e4A686fdE5EabdcAbd91571f "Empty" "EMPTY" "0" "0xbdab39a000332777a778afe92e83a6c630bd9a38" +``` \ No newline at end of file diff --git a/etc/eth-contracts/hardhat.config.js b/etc/eth-contracts/hardhat.config.js index aeb3b08c3..d841ce026 100644 --- a/etc/eth-contracts/hardhat.config.js +++ b/etc/eth-contracts/hardhat.config.js @@ -1,6 +1,15 @@ +require('dotenv').config(); require('@nomiclabs/hardhat-waffle'); require('solidity-coverage'); require('./tasks/storage'); +require('@nomicfoundation/hardhat-verify'); + +const chainId = process.env.CHAIN_ID || '1313161555'; +const networkName = process.env.NETWORK_NAME || 'testnet'; +const rpcUrl = process.env.RPC_URL || 'https://testnet.aurora.dev'; +const apiURL = process.env.API_URL || 'https://explorer.testnet.aurora.dev/api'; +const browserURL = process.env.BROWSER_URL || 'https://explorer.testnet.aurora.dev'; +const privateKey = process.env.PRIVATE_KEY || ''; /** * @type import('hardhat/config').HardhatUserConfig @@ -21,4 +30,29 @@ module.exports = { }, }, }, + networks: { + [networkName]: { + url: rpcUrl, + chainId: parseInt(chainId), + accounts: privateKey ? [privateKey] : [], + }, + }, + etherscan: { + apiKey: { + [networkName]: 'empty', + }, + customChains: [ + { + network: networkName, + chainId: parseInt(chainId), + urls: { + apiURL: apiURL, + browserURL: browserURL, + }, + }, + ], + }, + sourcify: { + enabled: false, + }, }; diff --git a/etc/eth-contracts/package.json b/etc/eth-contracts/package.json index 9ec3d69f1..0c122d9d6 100644 --- a/etc/eth-contracts/package.json +++ b/etc/eth-contracts/package.json @@ -6,9 +6,11 @@ "@openzeppelin/contracts": "^4.7.3" }, "devDependencies": { + "@nomicfoundation/hardhat-verify": "^2.0.10", "@nomiclabs/hardhat-ethers": "^2.0.6", "@nomiclabs/hardhat-waffle": "^2.0.3", "chai": "^4.3.6", + "dotenv": "^16.4.5", "eslint": "^8.18.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", diff --git a/etc/eth-contracts/yarn.lock b/etc/eth-contracts/yarn.lock index 43bfb384a..dc61226a5 100644 --- a/etc/eth-contracts/yarn.lock +++ b/etc/eth-contracts/yarn.lock @@ -276,6 +276,17 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/rlp" "^5.6.1" +"@ethersproject/address@^5.0.2": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.1.0.tgz#3854fd7ebcb6af7597de66f847c3345dae735b58" @@ -351,6 +362,15 @@ "@ethersproject/logger" "^5.1.0" bn.js "^4.4.0" +"@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + "@ethersproject/bytes@5.4.0", "@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" @@ -372,6 +392,13 @@ dependencies: "@ethersproject/logger" "^5.1.0" +"@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + "@ethersproject/constants@5.4.0", "@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" @@ -565,6 +592,14 @@ "@ethersproject/bytes" "^5.1.0" js-sha3 "0.5.7" +"@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + "@ethersproject/logger@5.4.0", "@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.0.tgz#f39adadf62ad610c420bcd156fd41270e91b3ca9" @@ -580,6 +615,11 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.1.0.tgz#4cdeeefac029373349d5818f39c31b82cc6d9bbf" integrity sha512-wtUaD1lBX10HBXjjKV9VHCBnTdUaKQnQ2XSET1ezglqLdPdllNOIlLfhyCRqXm5xwcjExVI5ETokOYfjPtaAlw== +"@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + "@ethersproject/networks@5.4.1", "@ethersproject/networks@^5.4.0": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.1.tgz#2ce83b8e42aa85216e5d277a7952d97b6ce8d852" @@ -729,6 +769,14 @@ "@ethersproject/bytes" "^5.1.0" "@ethersproject/logger" "^5.1.0" +"@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2@5.4.0", "@ethersproject/sha2@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371" @@ -1190,6 +1238,21 @@ mcl-wasm "^0.7.1" rustbn.js "~0.2.0" +"@nomicfoundation/hardhat-verify@^2.0.10": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.10.tgz#e9bae0949c17d5cc77bb5f97c273263048c69550" + integrity sha512-3zoTZGQhpeOm6piJDdsGb6euzZAd7N5Tk0zPQvGnfKQ0+AoxKz/7i4if12goi8IDTuUGElAUuZyQB8PMQoXA5g== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@ethersproject/address" "^5.0.2" + cbor "^8.1.0" + chalk "^2.4.2" + debug "^4.1.1" + lodash.clonedeep "^4.5.0" + semver "^6.3.0" + table "^6.8.0" + undici "^5.14.0" + "@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.0.tgz#83a7367342bd053a76d04bbcf4f373fef07cf760" @@ -1776,6 +1839,16 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.6.1, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" @@ -1999,6 +2072,11 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + async-eventemitter@^0.2.2, async-eventemitter@^0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" @@ -2701,10 +2779,10 @@ bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@1.20.2: - version "1.20.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== +body-parser@1.20.3: + version "1.20.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" + integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== dependencies: bytes "3.1.2" content-type "~1.0.5" @@ -2714,7 +2792,7 @@ body-parser@1.20.2: http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.11.0" + qs "6.13.0" raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -3020,6 +3098,17 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -3096,6 +3185,13 @@ catering@^2.1.0, catering@^2.1.1: resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== +cbor@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" + integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== + dependencies: + nofilter "^3.1.0" + chai@^4.3.6: version "4.3.6" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" @@ -3851,6 +3947,15 @@ deferred-leveldown@~4.0.0: abstract-leveldown "~5.0.0" inherits "^2.0.3" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -3996,6 +4101,11 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" +dotenv@^16.4.5: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + dotignore@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" @@ -4077,6 +4187,11 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + encoding-down@5.0.4, encoding-down@~5.0.0: version "5.0.4" resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-5.0.4.tgz#1e477da8e9e9d0f7c8293d320044f8b2cd8e9614" @@ -4188,6 +4303,18 @@ es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19 string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-shim-unscopables@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" @@ -5186,36 +5313,36 @@ expand-brackets@^2.1.4: to-regex "^3.0.1" express@^4.14.0: - version "4.19.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" - integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + version "4.21.0" + resolved "https://registry.yarnpkg.com/express/-/express-4.21.0.tgz#d57cb706d49623d4ac27833f1cbc466b668eb915" + integrity sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.2" + body-parser "1.20.3" content-disposition "0.5.4" content-type "~1.0.4" cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.2.0" + finalhandler "1.3.1" fresh "0.5.2" http-errors "2.0.0" - merge-descriptors "1.0.1" + merge-descriptors "1.0.3" methods "~1.1.2" on-finished "2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.7" + path-to-regexp "0.1.10" proxy-addr "~2.0.7" - qs "6.11.0" + qs "6.13.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" + send "0.19.0" + serve-static "1.16.2" setprototypeof "1.2.0" statuses "2.0.1" type-is "~1.6.18" @@ -5321,6 +5448,11 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-uri@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" + integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + fastq@^1.6.0: version "1.11.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" @@ -5395,13 +5527,13 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== +finalhandler@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" + integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== dependencies: debug "2.6.9" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" on-finished "2.4.1" parseurl "~1.3.3" @@ -5661,6 +5793,11 @@ function-bind@^1.1.1, function-bind@~1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" @@ -5751,6 +5888,17 @@ get-intrinsic@^1.1.0: has "^1.0.3" has-symbols "^1.0.3" +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-port@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" @@ -5939,6 +6087,13 @@ globby@^10.0.1: merge2 "^1.2.3" slash "^3.0.0" +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + got@9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -6118,6 +6273,18 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + has-symbol-support-x@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" @@ -6210,6 +6377,13 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + he@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -7024,6 +7198,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -7377,6 +7556,11 @@ lodash.assign@^4.0.3, lodash.assign@^4.0.6: resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -7387,6 +7571,11 @@ lodash.toarray@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + lodash@4.17.20: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" @@ -7577,10 +7766,10 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== merge2@^1.2.3, merge2@^1.3.0: version "1.4.1" @@ -8054,6 +8243,11 @@ node-gyp-build@^4.3.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== +nofilter@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" + integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== + nopt@3.x: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -8125,6 +8319,11 @@ object-inspect@^1.12.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + object-inspect@^1.9.0: version "1.10.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.2.tgz#b6385a3e2b7cae0b5eafcf90cddf85d128767f30" @@ -8543,10 +8742,10 @@ path-parse@^1.0.6, path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-to-regexp@0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b" + integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w== path-type@^1.0.0: version "1.1.0" @@ -8816,12 +9015,12 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== +qs@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== dependencies: - side-channel "^1.0.4" + side-channel "^1.0.6" qs@6.7.0: version "6.7.0" @@ -9198,7 +9397,7 @@ require-from-string@^1.1.0: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" integrity sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg= -require-from-string@^2.0.0: +require-from-string@^2.0.0, require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== @@ -9496,10 +9695,10 @@ semver@~5.4.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== +send@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== dependencies: debug "2.6.9" depd "2.0.0" @@ -9531,15 +9730,15 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== dependencies: - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.18.0" + send "0.19.0" servify@^0.1.12: version "0.1.12" @@ -9557,6 +9756,18 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" @@ -9650,6 +9861,16 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" +side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -9698,6 +9919,15 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + snake-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" @@ -10022,7 +10252,7 @@ string-width@^4.1.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string-width@^4.2.0: +string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -10270,6 +10500,17 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" +table@^6.8.0: + version "6.8.2" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" + integrity sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + tape@^4.6.3: version "4.13.3" resolved "https://registry.yarnpkg.com/tape/-/tape-4.13.3.tgz#51b3d91c83668c7a45b1a594b607dee0a0b46278" diff --git a/etc/tests/uniswap/yarn.lock b/etc/tests/uniswap/yarn.lock index d3edb84aa..9a75e56ef 100644 --- a/etc/tests/uniswap/yarn.lock +++ b/etc/tests/uniswap/yarn.lock @@ -53,11 +53,11 @@ binary-extensions@^2.0.0: integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" chokidar@^3.4.3: version "3.5.2" @@ -74,10 +74,10 @@ chokidar@^3.4.3: optionalDependencies: fsevents "~2.3.2" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" diff --git a/etc/xcc-router/Cargo.lock b/etc/xcc-router/Cargo.lock index 7973f7cb4..e5d477e79 100644 --- a/etc/xcc-router/Cargo.lock +++ b/etc/xcc-router/Cargo.lock @@ -209,7 +209,7 @@ dependencies = [ name = "aurora-engine-types" version = "1.0.0" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "borsh", "bs58 0.5.0", "hex", @@ -252,6 +252,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "bitflags" version = "1.3.2" diff --git a/rust-toolchain b/rust-toolchain index 3d82f8d97..0fd16e1bb 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2023-12-15" +channel = "nightly-2024-05-02" targets = ["wasm32-unknown-unknown"] diff --git a/scripts/build-neard-sandbox.sh b/scripts/build-neard-sandbox.sh new file mode 100755 index 000000000..3db7bf215 --- /dev/null +++ b/scripts/build-neard-sandbox.sh @@ -0,0 +1,10 @@ +NETWORK=`echo "${1:-mainnet}" | cut -d '-' -f 1` +TAG=`curl -s https://rpc.${NETWORK}.near.org/status | jq -r .version.build` + +git clone https://github.com/near/nearcore -b $TAG +cd nearcore +make sandbox +mv $(find target -name neard-sandbox) ../ +cd .. +rm -rf nearcore +echo "NEAR_SANDBOX_BIN_PATH=${PWD}/neard-sandbox" >> $GITHUB_ENV