diff --git a/.catalog-info.yaml b/.catalog-info.yaml index 9be2d1a5..a37841b6 100644 --- a/.catalog-info.yaml +++ b/.catalog-info.yaml @@ -12,6 +12,6 @@ spec: - ./near/omni-types/.catalog-info.yaml - ./near/omni-bridge/.catalog-info.yaml - ./near/omni-token/.catalog-info.yaml - - ./evm/bridge-token-factory/.catalog-info.yaml + - ./evm/.catalog-info.yaml - ./omni-relayer/.catalog-info.yaml - ./solana/bridge_token_factory/.catalog-info.yaml diff --git a/.github/workflows/build-contracts.yaml b/.github/workflows/build-contracts.yaml index 31ae9307..fd2e9978 100644 --- a/.github/workflows/build-contracts.yaml +++ b/.github/workflows/build-contracts.yaml @@ -31,7 +31,7 @@ jobs: if: matrix.platform == 'near' || matrix.platform == 'solana' uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.80.0 + toolchain: 1.84.0 target: wasm32-unknown-unknown - name: Install NEAR CLI RS diff --git a/.github/workflows/check-wasm.yaml b/.github/workflows/check-wasm.yaml deleted file mode 100644 index d06fb8e7..00000000 --- a/.github/workflows/check-wasm.yaml +++ /dev/null @@ -1,25 +0,0 @@ -on: - push: - branches: [ main, develop ] - pull_request: - -name: Check WASM files -jobs: - test: - runs-on: ubuntu-latest - name: Check wasm files - steps: - - name: Clone the repository - uses: actions/checkout@v3 - - - name: Build NEAR contracts - run: | - cd near - ./build.sh - git status - changed_files=$(git status --porcelain --untracked-files=no | wc -l) - if [ $changed_files -gt 0 ]; then - echo 'contract changed, please rebuild contract' - exit 1 - fi - timeout-minutes: 40 diff --git a/.github/workflows/rust.yaml b/.github/workflows/rust.yaml index 94533273..8ee1e9c0 100644 --- a/.github/workflows/rust.yaml +++ b/.github/workflows/rust.yaml @@ -12,6 +12,10 @@ on: - 'near/**' - 'omni-relayer/**' +env: + SCCACHE_GHA_ENABLED: "true" + RUSTC_WRAPPER: "sccache" + jobs: lint: runs-on: ubuntu-latest @@ -25,18 +29,17 @@ jobs: - name: Setup Rust toolchain uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.80.0 + toolchain: 1.84.0 components: clippy, rustfmt target: wasm32-unknown-unknown - - name: Cache Rust dependencies - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - cache-all-crates: true - shared-key: "lint-${{ matrix.component }}" - workspaces: ${{ matrix.component }} + - name: Run sccache-cache + uses: mozilla-actions/sccache-action@v0.0.7 + - name: Install cargo-near + run: | + curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh + - name: Run clippy run: make clippy-${{ matrix.component }} @@ -52,27 +55,20 @@ jobs: - name: Setup Rust toolchain uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.80.0 + toolchain: 1.84.0 target: wasm32-unknown-unknown - - name: Cache Rust dependencies - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - cache-all-crates: true - shared-key: "build-test" - workspaces: near + - name: Run sccache-cache + uses: mozilla-actions/sccache-action@v0.0.7 + + - name: Install cargo-near + run: | + curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh - name: Install nextest uses: taiki-e/install-action@v2 with: tool: nextest - - name: Build token contract - run: make rust-build-near - - - name: Build tests - run: cargo build --manifest-path ./near/Cargo.toml --tests --all-features - - - name: Run tests - run: cargo nextest run --manifest-path ./near/Cargo.toml + - name: Rust tests + run: make rust-run-tests diff --git a/.github/workflows/update-contracts.yaml b/.github/workflows/update-contracts.yaml new file mode 100644 index 00000000..3761c649 --- /dev/null +++ b/.github/workflows/update-contracts.yaml @@ -0,0 +1,39 @@ +on: + push: + tags: + - '*' + + workflow_dispatch: + +name: Update Contracts +jobs: + update-contracts: + runs-on: ubuntu-latest + name: Update Contracts + permissions: + contents: write + steps: + - name: Clone the repository + uses: actions/checkout@v3 + + - name: Install cargo-near + run: | + curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh + + - name: Build NEAR contracts + run: | + make rust-build-near + timeout-minutes: 60 + + - name: Archive built WASM files + run: | + mkdir -p artifacts + find ./near/target/near -name "*.wasm" -exec cp {} artifacts/ \; + zip -j contracts.zip artifacts/*.wasm + shell: bash + + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ github.ref_name }} + files: contracts.zip diff --git a/.gitignore b/.gitignore index e1f10c6f..9c20955f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,3 @@ **/.env .history node_modules -near/res/mock_token.wasm -near/res/mock_prover.wasm -near/res/omni_tests.wasm \ No newline at end of file diff --git a/Makefile b/Makefile index 47df9207..20d7fc12 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,26 @@ .PHONY: rust-lint rust-lint-near rust-lint-omni-relayer +MAKEFILE_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) + +OUT_DIR ?= $(MAKEFILE_DIR)/near/target/near + LINT_OPTIONS = -D warnings -D clippy::pedantic -A clippy::missing_errors_doc -A clippy::must_use_candidate -A clippy::module_name_repetitions -RUSTFLAGS = -C link-arg=-s -NEAR_MANIFEST = ./near/Cargo.toml -OMNI_RELAYER_MANIFEST = ./omni-relayer/Cargo.toml +NEAR_MANIFEST := $(MAKEFILE_DIR)/near/Cargo.toml +OMNI_BRIDGE_MANIFEST := $(MAKEFILE_DIR)/near/omni-bridge/Cargo.toml +OMNI_TOKEN_MANIFEST := $(MAKEFILE_DIR)/near/omni-token/Cargo.toml +TOKEN_DEPLOYER := $(MAKEFILE_DIR)/near/token-deployer/Cargo.toml +OMNI_PROVER_MANIFEST := $(MAKEFILE_DIR)/near/omni-prover/omni-prover/Cargo.toml +EVM_PROVER_MANIFEST := $(MAKEFILE_DIR)/near/omni-prover/evm-prover/Cargo.toml +WORMHOLE_OMNI_PROVER_PROXY_MANIFEST := $(MAKEFILE_DIR)/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml +MOCK_PROVER_MANIFEST := $(MAKEFILE_DIR)/near/mock/mock-prover/Cargo.toml +MOCK_TOKEN_MANIFEST := $(MAKEFILE_DIR)/near/mock/mock-token/Cargo.toml + +OMNI_RELAYER_MANIFEST := $(MAKEFILE_DIR)/omni-relayer/Cargo.toml clippy: clippy-near clippy-omni-relayer -clippy-near: rust-build-token +clippy-near: cargo clippy --manifest-path $(NEAR_MANIFEST) -- $(LINT_OPTIONS) fmt-near: @@ -20,11 +32,31 @@ fmt-omni-relayer: clippy-omni-relayer: cargo clippy --manifest-path $(OMNI_RELAYER_MANIFEST) -- $(LINT_OPTIONS) -rust-build-token: - RUSTFLAGS='$(RUSTFLAGS)' cargo build --target wasm32-unknown-unknown --release --manifest-path $(NEAR_MANIFEST) --package omni-token - -rust-build-near: rust-build-token - RUSTFLAGS='$(RUSTFLAGS)' cargo build --target wasm32-unknown-unknown --release --manifest-path $(NEAR_MANIFEST) - -test-near: rust-build-near +rust-build-omni-bridge: + cargo near build reproducible-wasm --manifest-path $(OMNI_BRIDGE_MANIFEST) --out-dir $(OUT_DIR) + +rust-build-omni-token: + cargo near build reproducible-wasm --manifest-path $(OMNI_TOKEN_MANIFEST) --out-dir $(OUT_DIR) + +rust-build-token-deployer: + cargo near build reproducible-wasm --manifest-path $(TOKEN_DEPLOYER) --out-dir $(OUT_DIR) + +rust-build-omni-prover: + cargo near build reproducible-wasm --manifest-path $(OMNI_PROVER_MANIFEST) --out-dir $(OUT_DIR) + +rust-build-evm-prover: + cargo near build reproducible-wasm --manifest-path $(EVM_PROVER_MANIFEST) --out-dir $(OUT_DIR) + +rust-build-wormhole-omni-prover-proxy: + cargo near build reproducible-wasm --manifest-path $(WORMHOLE_OMNI_PROVER_PROXY_MANIFEST) --out-dir $(OUT_DIR) + +rust-build-mock-prover: + cargo near build reproducible-wasm --manifest-path $(MOCK_PROVER_MANIFEST) --out-dir $(OUT_DIR) + +rust-build-mock-token: + cargo near build reproducible-wasm --manifest-path $(MOCK_TOKEN_MANIFEST) --out-dir $(OUT_DIR) + +rust-build-near: rust-build-omni-bridge rust-build-omni-token rust-build-token-deployer rust-build-omni-prover rust-build-evm-prover rust-build-wormhole-omni-prover-proxy rust-build-mock-prover rust-build-mock-token + +rust-run-tests: cargo nextest run --manifest-path $(NEAR_MANIFEST) diff --git a/evm/.catalog-info.yaml b/evm/.catalog-info.yaml new file mode 100644 index 00000000..bde10ead --- /dev/null +++ b/evm/.catalog-info.yaml @@ -0,0 +1,13 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: omni-evm-bridge-token-factory + tags: + - ethereum + links: [] + annotations: + aurora.dev/security-tier: "1" +spec: + owner: nearone-team + type: contract + lifecycle: production diff --git a/near/Cargo.lock b/near/Cargo.lock index 0c59d9a2..e73c1340 100644 --- a/near/Cargo.lock +++ b/near/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "Inflector" @@ -12,77 +12,15 @@ dependencies = [ "regex", ] -[[package]] -name = "actix" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de7fa236829ba0841304542f7614c42b80fca007455315c45c785ccfa873a85b" -dependencies = [ - "actix-macros", - "actix-rt", - "actix_derive", - "bitflags 2.6.0", - "bytes", - "crossbeam-channel", - "futures-core", - "futures-sink", - "futures-task", - "futures-util", - "log", - "once_cell", - "parking_lot 0.12.3", - "pin-project-lite", - "smallvec", - "tokio", - "tokio-util", -] - -[[package]] -name = "actix-macros" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" -dependencies = [ - "quote", - "syn 2.0.75", -] - -[[package]] -name = "actix-rt" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" -dependencies = [ - "futures-core", - "tokio", -] - -[[package]] -name = "actix_derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c7db3d5a9718568e4cf4a537cfd7070e6e6ff7481510d0237fb529ac850f6d3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - [[package]] name = "addr2line" -version = "0.21.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.28.1", + "gimli 0.31.1", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.0" @@ -100,29 +38,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if 1.0.0", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -132,11 +47,17 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "alloy-json-abi" -version = "0.8.0" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "299d2a937b6c60968df3dad2a988b0f0e03277b344639a4f7a31bd68e6285e59" +checksum = "24acd2f5ba97c7a320e67217274bc81fe3c3174b8e6144ec875d9d54e760e278" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -146,31 +67,36 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.0" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a767e59c86900dd7c3ce3ecef04f3ace5ac9631ee150beb8b7d22f7fa3bbb2d7" +checksum = "ec878088ec6283ce1e90d280316aadd3d6ce3de06ff63d68953c855e7e447e92" dependencies = [ "alloy-rlp", "bytes", "cfg-if 1.0.0", "const-hex", - "derive_more", - "hex-literal", + "derive_more 1.0.0", + "foldhash", + "hashbrown 0.15.2", + "indexmap 2.7.1", "itoa", "k256", "keccak-asm", + "paste", "proptest", "rand", "ruint", + "rustc-hash", "serde", + "sha3", "tiny-keccak", ] [[package]] name = "alloy-rlp" -version = "0.3.8" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +checksum = "3d6c1d995bff8d011f7cd6c81820d51825e6e06d6db73914c1630ecf544d83d6" dependencies = [ "arrayvec", "bytes", @@ -178,66 +104,66 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.0" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183bcfc0f3291d9c41a3774172ee582fb2ce6eb6569085471d8f225de7bb86fc" +checksum = "8d039d267aa5cbb7732fa6ce1fd9b5e9e29368f580f80ba9d7a8450c794de4b2" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.0" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c4d842beb7a6686d04125603bc57614d5ed78bf95e4753274db3db4ba95214" +checksum = "620ae5eee30ee7216a38027dec34e0585c55099f827f92f50d11e3d2d3a4a954" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.4.0", - "proc-macro-error", + "indexmap 2.7.1", + "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.0" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1306e8d3c9e6e6ecf7a39ffaf7291e73a5f655a2defd366ee92c2efebcdf7fee" +checksum = "ad9f7d057e00f8c5994e4ff4492b76532c51ead39353aa2ed63f8c50c0f4d52e" dependencies = [ "const-hex", "dunce", "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.0" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4691da83dce9c9b4c775dd701c87759f173bd3021cbf2e60cde00c5fe6d7241" +checksum = "74e60b084fe1aef8acecda2743ff2d93c18ff3eb67a2d3b12f62582a1e66ef5e" dependencies = [ "serde", - "winnow 0.6.18", + "winnow 0.6.26", ] [[package]] name = "alloy-sol-types" -version = "0.8.0" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "577e262966e92112edbd15b1b2c0947cc434d6e8311df96d3329793fe8047da9" +checksum = "c1382302752cd751efd275f4d6ef65877ddf61e0e6f5ac84ef4302b79a33a31a" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -261,66 +187,23 @@ dependencies = [ "libc", ] -[[package]] -name = "anstream" -version = "0.6.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - [[package]] name = "anstyle" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" - -[[package]] -name = "anstyle-parse" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.4" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" -dependencies = [ - "anstyle", - "windows-sys 0.52.0", -] +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anyhow" -version = "1.0.87" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" dependencies = [ "derive_arbitrary", ] @@ -455,37 +338,15 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "async-stream" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - [[package]] name = "async-trait" -version = "0.1.82" +version = "0.1.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -496,79 +357,34 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "auto_impl" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[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" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "mime", - "rustversion", - "tower-layer", - "tower-service", -] +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.7.4", + "miniz_oxide", "object", "rustc-demangle", + "windows-targets", ] [[package]] @@ -613,19 +429,6 @@ dependencies = [ "zip 0.6.6", ] -[[package]] -name = "bip39" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" -dependencies = [ - "bitcoin_hashes", - "rand", - "rand_core", - "serde", - "unicode-normalization", -] - [[package]] name = "bit-set" version = "0.5.3" @@ -641,12 +444,6 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" -[[package]] -name = "bitcoin_hashes" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" - [[package]] name = "bitflags" version = "1.3.2" @@ -655,9 +452,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" [[package]] name = "bitvec" @@ -682,27 +479,53 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.9.0" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] [[package]] -name = "block-buffer" -version = "0.10.4" +name = "blst" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" dependencies = [ - "generic-array", + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "bon" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97493a391b4b18ee918675fb8663e53646fd09321c58b46afa04e8ce2499c869" +dependencies = [ + "bon-macros", + "rustversion", +] + +[[package]] +name = "bon-macros" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2af3eac944c12cdf4423eab70d310da0a8e5851a18ffb192c0a5e3f7ae1663" +dependencies = [ + "darling 0.20.10", + "ident_case", + "proc-macro2", + "quote", + "syn 2.0.96", ] [[package]] name = "borsh" -version = "1.5.1" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +checksum = "5430e3be710b68d984d1391c854eb431a9d548640711faa54eecb1df93db91cc" dependencies = [ "borsh-derive", "cfg_aliases", @@ -710,16 +533,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.1" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +checksum = "f8b668d39970baad5356d7c83a86fee3a539e6f93bf6764c97368243e17a0487" dependencies = [ "once_cell", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.75", - "syn_derive", + "syn 2.0.96", ] [[package]] @@ -746,21 +568,11 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "bstr" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "byte-slice-cast" @@ -768,28 +580,6 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" -[[package]] -name = "bytecheck" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" -dependencies = [ - "bytecheck_derive", - "ptr_meta", - "simdutf8", -] - -[[package]] -name = "bytecheck_derive" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "byteorder" version = "1.5.0" @@ -798,9 +588,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" dependencies = [ "serde", ] @@ -845,82 +635,43 @@ dependencies = [ ] [[package]] -name = "cargo-near" -version = "0.8.2" +name = "cargo-near-build" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63b7d99422c06c754d57a42c301f0d3d8a1c8e8d6d62799107bccf83f32e6571" +checksum = "aca179b21abf0131ccd2d18a77d59c9a2862aed4b6594a525cd292af13790d84" dependencies = [ + "bon", "bs58 0.5.1", "camino", "cargo_metadata", - "clap", - "color-eyre", "colored", - "derive_more", "dunce", - "env_logger", - "git2", + "eyre", "hex", - "home", - "inquire", - "interactive-clap", - "interactive-clap-derive", + "humantime", + "indenter", "libloading", - "linked-hash-map", - "log", - "names", "near-abi", - "near-cli-rs", - "nix", - "pathdiff", "rustc_version 0.4.1", "schemars", - "serde", "serde_json", - "sha2 0.10.8", - "shell-words", - "strum 0.24.1", - "strum_macros 0.24.3", + "sha2", "symbolic-debuginfo", "tempfile", - "tmp_env", - "unix_path", - "url", + "tracing", + "wasm-opt", "zstd 0.13.2", ] [[package]] name = "cargo-platform" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] -[[package]] -name = "cargo-util" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc680c90073156fb5280c0c0127b779eef1f6292e41f7d6621acba3041e81c7d" -dependencies = [ - "anyhow", - "core-foundation", - "filetime", - "hex", - "ignore", - "jobserver", - "libc", - "miow", - "same-file", - "sha2 0.10.8", - "shell-escape", - "tempfile", - "tracing", - "walkdir", - "windows-sys 0.52.0", -] - [[package]] name = "cargo_metadata" version = "0.18.1" @@ -929,17 +680,17 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.23", + "semver 1.0.25", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "cc" -version = "1.1.16" +version = "1.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9d013ecb737093c0e86b151a7b837993cf9ec6c502946cfb44bedc392421e0b" +checksum = "e4730490333d58093109dc02c23174c3f4d490998c3fed3cc8e82d57afedb9cf" dependencies = [ "jobserver", "libc", @@ -966,9 +717,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", @@ -976,7 +727,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -991,105 +742,55 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.17" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" +checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" dependencies = [ "clap_builder", - "clap_derive", ] [[package]] name = "clap_builder" -version = "4.5.17" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ - "anstream", "anstyle", "clap_lex", "strsim 0.11.1", ] -[[package]] -name = "clap_derive" -version = "4.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] -name = "color-eyre" -version = "0.6.3" +name = "codespan-reporting" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" dependencies = [ - "backtrace", - "color-spantrace", - "eyre", - "indenter", - "once_cell", - "owo-colors", - "tracing-error", -] - -[[package]] -name = "color-spantrace" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" -dependencies = [ - "once_cell", - "owo-colors", - "tracing-core", - "tracing-error", + "termcolor", + "unicode-width", ] -[[package]] -name = "colorchoice" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" - [[package]] name = "colored" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" -dependencies = [ - "lazy_static", - "windows-sys 0.48.0", -] - -[[package]] -name = "console" -version = "0.15.8" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ - "encode_unicode 0.3.6", "lazy_static", - "libc", - "unicode-width", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "const-hex" -version = "1.12.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -1140,9 +841,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -1156,20 +857,11 @@ dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -1186,40 +878,15 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "crossterm" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" -dependencies = [ - "bitflags 1.3.2", - "crossterm_winapi", - "libc", - "mio 0.8.11", - "parking_lot 0.12.3", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm_winapi" -version = "0.9.1" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" -dependencies = [ - "winapi", -] +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-bigint" @@ -1244,62 +911,89 @@ dependencies = [ ] [[package]] -name = "crypto-mac" -version = "0.9.1" +name = "curve25519-dalek" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "generic-array", + "cfg-if 1.0.0", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rustc_version 0.4.1", "subtle", + "zeroize", ] [[package]] -name = "csv" -version = "1.3.0" +name = "curve25519-dalek-derive" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "csv-core", - "itoa", - "ryu", - "serde", + "proc-macro2", + "quote", + "syn 2.0.96", ] [[package]] -name = "csv-core" -version = "0.1.11" +name = "cxx" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +checksum = "0fc894913dccfed0f84106062c284fa021c3ba70cb1d78797d6f5165d4492e45" dependencies = [ - "memchr", + "cc", + "cxxbridge-cmd", + "cxxbridge-flags", + "cxxbridge-macro", + "foldhash", + "link-cplusplus", ] [[package]] -name = "curve25519-dalek" -version = "4.1.3" +name = "cxx-build" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +checksum = "503b2bfb6b3e8ce7f95d865a67419451832083d3186958290cee6c53e39dfcfe" dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "curve25519-dalek-derive", - "digest 0.10.7", - "fiat-crypto", - "rand_core", - "rustc_version 0.4.1", - "subtle", - "zeroize", + "cc", + "codespan-reporting", + "proc-macro2", + "quote", + "scratch", + "syn 2.0.96", ] [[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" +name = "cxxbridge-cmd" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +checksum = "e0d2cb64a95b4b5a381971482235c4db2e0208302a962acdbe314db03cbbe2fb" +dependencies = [ + "clap", + "codespan-reporting", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.137" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f797b0206463c9c2a68ed605ab28892cca784f1ef066050f4942e3de26ad885" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.137" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79010a2093848e65a3e0f7062d3f02fb2ef27f866416dfe436fccfa73d3bb59" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "rustversion", + "syn 2.0.96", ] [[package]] @@ -1347,7 +1041,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -1369,32 +1063,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.75", -] - -[[package]] -name = "dbus" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" -dependencies = [ - "libc", - "libdbus-sys", - "winapi", -] - -[[package]] -name = "dbus-secret-service" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1caa0c241c01ad8d99a78d553567d38f873dd3ac16eca33a5370d650ab25584e" -dependencies = [ - "dbus", - "futures-util", - "num", - "once_cell", - "openssl", - "rand", + "syn 2.0.96", ] [[package]] @@ -1403,7 +1072,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6ee87af31d84ef885378aebca32be3d682b0e0dc119d5b4860a2c5bb5046730" dependencies = [ - "uuid 0.8.2", + "uuid", ] [[package]] @@ -1439,13 +1108,13 @@ dependencies = [ [[package]] name = "derive_arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -1458,7 +1127,28 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.75", + "syn 2.0.96", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "unicode-xid", ] [[package]] @@ -1476,21 +1166,12 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "const-oid", "crypto-common", "subtle", ] -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys", -] - [[package]] name = "dirs-next" version = "2.0.0" @@ -1502,26 +1183,25 @@ dependencies = [ ] [[package]] -name = "dirs-sys" -version = "0.4.1" +name = "dirs-sys-next" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", - "option-ext", "redox_users", - "windows-sys 0.48.0", + "winapi", ] [[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "displaydoc" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ - "libc", - "redox_users", - "winapi", + "proc-macro2", + "quote", + "syn 2.0.96", ] [[package]] @@ -1538,9 +1218,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35" [[package]] name = "easy-ext" @@ -1548,12 +1228,6 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53aff6fdc1b181225acdcb5b14c47106726fd8e486707315b1b138baed68ee31" -[[package]] -name = "easy-ext" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5d6d6a8504f8caedd7de14576464383900cd3840b7033a7a3dce5ac00121ca" - [[package]] name = "ecdsa" version = "0.16.9" @@ -1586,7 +1260,7 @@ dependencies = [ "curve25519-dalek", "ed25519", "rand_core", - "sha2 0.10.8", + "sha2", "subtle", ] @@ -1625,23 +1299,11 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "encode_unicode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" - [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if 1.0.0", ] @@ -1663,30 +1325,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", -] - -[[package]] -name = "env_filter" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "humantime", - "log", + "syn 2.0.96", ] [[package]] @@ -1697,12 +1336,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1760,9 +1399,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fastrlp" @@ -1775,6 +1414,17 @@ dependencies = [ "bytes", ] +[[package]] +name = "fastrlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + [[package]] name = "ff" version = "0.13.0" @@ -1826,12 +1476,12 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", - "miniz_oxide 0.8.0", + "miniz_oxide", ] [[package]] @@ -1849,6 +1499,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "foreign-types" version = "0.3.2" @@ -1889,76 +1545,43 @@ 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-executor", - "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", ] [[package]] name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[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.75", + "syn 2.0.96", ] [[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-timer" @@ -1968,40 +1591,18 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[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", ] -[[package]] -name = "fuzzy-matcher" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" -dependencies = [ - "thread_local", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -2021,7 +1622,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets", ] [[package]] @@ -2036,43 +1649,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] -name = "git2" -version = "0.19.0" +name = "glob" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" -dependencies = [ - "bitflags 2.6.0", - "libc", - "libgit2-sys", - "log", - "openssl-probe", - "openssl-sys", - "url", -] - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "globset" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" -dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", -] +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "goblin" @@ -2098,36 +1683,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.4.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.4.0", + "http", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -2139,17 +1705,16 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.8", -] [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ - "ahash 0.8.11", + "allocator-api2", + "equivalent", + "foldhash", "serde", ] @@ -2171,12 +1736,6 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" -[[package]] -name = "hermit-abi" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" - [[package]] name = "hex" version = "0.4.3" @@ -2186,22 +1745,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - -[[package]] -name = "hmac" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deae6d9dbb35ec2c502d62b8f7b1c000a0822c3b0794ba36b3149c0a1c840dff" -dependencies = [ - "crypto-mac", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.12.1" @@ -2213,46 +1756,24 @@ dependencies = [ [[package]] name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "http" -version = "0.2.12" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "bytes", - "fnv", - "itoa", + "windows-sys 0.59.0", ] [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -2260,7 +1781,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http", ] [[package]] @@ -2271,22 +1792,16 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" - -[[package]] -name = "httpdate" -version = "1.0.3" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" [[package]] name = "humantime" @@ -2296,40 +1811,16 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.4.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", "itoa", "pin-project-lite", @@ -2340,13 +1831,13 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.4.1", + "http", + "hyper", "hyper-util", "rustls", "rustls-pki-types", @@ -2355,18 +1846,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-timeout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" -dependencies = [ - "hyper 0.14.30", - "pin-project-lite", - "tokio", - "tokio-io-timeout", -] - [[package]] name = "hyper-tls" version = "0.6.0" @@ -2375,7 +1854,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.4.1", + "hyper", "hyper-util", "native-tls", "tokio", @@ -2385,29 +1864,28 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.4.1", + "http", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", - "tower", "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", @@ -2426,6 +1904,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2434,28 +2030,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", ] [[package]] -name = "ignore" -version = "0.4.22" +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "crossbeam-deque", - "globset", - "log", - "memchr", - "regex-automata 0.4.7", - "same-file", - "walkdir", - "winapi-util", + "icu_normalizer", + "icu_properties", ] [[package]] @@ -2487,13 +2078,13 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.96", ] [[package]] @@ -2521,29 +2112,15 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "serde", ] -[[package]] -name = "indicatif" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" -dependencies = [ - "console", - "instant", - "number_prefix", - "portable-atomic", - "unicode-width", - "vt100", -] - [[package]] name = "inout" version = "0.1.3" @@ -2553,90 +2130,11 @@ dependencies = [ "generic-array", ] -[[package]] -name = "inquire" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fddf93031af70e75410a2511ec04d49e758ed2f26dad3404a934e0fb45cc12a" -dependencies = [ - "bitflags 2.6.0", - "crossterm", - "dyn-clone", - "fuzzy-matcher", - "fxhash", - "newline-converter", - "once_cell", - "unicode-segmentation", - "unicode-width", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "interactive-clap" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b1e6acfe2ceaaa893a54c57d445a820d3b0fa4c6187b67b3f69fd07473c726e" -dependencies = [ - "interactive-clap-derive", - "strum 0.24.1", - "strum_macros 0.24.3", -] - -[[package]] -name = "interactive-clap-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab1ce8e6ef82771b125341b0a6bd5eb45888b01235aa61125ecc72cc22be4738" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "ipnet" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" - -[[package]] -name = "is-docker" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" -dependencies = [ - "once_cell", -] - -[[package]] -name = "is-terminal" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" -dependencies = [ - "hermit-abi 0.4.0", - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "is-wsl" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" -dependencies = [ - "is-docker", - "once_cell", -] +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is_executable" @@ -2647,12 +2145,6 @@ 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" @@ -2664,9 +2156,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jobserver" @@ -2685,10 +2177,11 @@ checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5" [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -2701,7 +2194,7 @@ dependencies = [ "jsonptr", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2723,15 +2216,15 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if 1.0.0", "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -2745,27 +2238,14 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422fbc7ff2f2f5bdffeb07718e5a5324dca72b0c9293d50df4026652385e3314" +checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" dependencies = [ "digest 0.10.7", "sha3-asm", ] -[[package]] -name = "keyring" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030a9b84bb2a2f3673d4c8b8236091ed5d8f6b66a56d8085471d8abd5f3c6a80" -dependencies = [ - "byteorder", - "dbus-secret-service", - "openssl", - "security-framework", - "windows-sys 0.59.0", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -2783,49 +2263,25 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" - -[[package]] -name = "libdbus-sys" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" -dependencies = [ - "cc", - "pkg-config", -] - -[[package]] -name = "libgit2-sys" -version = "0.17.0+1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" -dependencies = [ - "cc", - "libc", - "libssh2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", -] +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libloading" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if 1.0.0", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" @@ -2833,51 +2289,31 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "libc", - "redox_syscall 0.5.3", + "redox_syscall", ] [[package]] -name = "libssh2-sys" -version = "0.3.0" +name = "link-cplusplus" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" dependencies = [ "cc", - "libc", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "libz-sys" -version = "1.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", ] [[package]] -name = "linked-hash-map" -version = "0.5.6" +name = "linux-raw-sys" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" -dependencies = [ - "serde", -] +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] -name = "linux-raw-sys" -version = "0.4.14" +name = "litemap" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" @@ -2891,34 +2327,19 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "lru" -version = "0.7.8" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.12.3", + "hashbrown 0.15.2", ] -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -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 = "memchr" version = "2.7.4" @@ -2954,55 +2375,24 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - -[[package]] -name = "miniz_oxide" -version = "0.8.0" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", ] [[package]] name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.48.0", -] - -[[package]] -name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] -[[package]] -name = "miow" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044" -dependencies = [ - "windows-sys 0.48.0", -] - [[package]] name = "mock-prover" version = "0.1.0" @@ -3020,20 +2410,11 @@ dependencies = [ "near-sdk", ] -[[package]] -name = "names" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" -dependencies = [ - "rand", -] - [[package]] name = "native-tls" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +checksum = "0dab59f8e050d5df8e4dd87d9206fb6f65a483e20ac9fda365ade4fab353196c" dependencies = [ "libc", "log", @@ -3054,7 +2435,7 @@ checksum = "7c49593c9e94454a2368a4c0a511bf4bf1413aff4d23f16e1d8f4e64b5215351" dependencies = [ "borsh", "schemars", - "semver 1.0.23", + "semver 1.0.25", "serde", ] @@ -3108,186 +2489,86 @@ dependencies = [ "serde", ] -[[package]] -name = "near-async" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4e11b7dc58cb8371377925ed7df76a384063a228ecba2a4b29e54214ff9416d" -dependencies = [ - "actix", - "derive_more", - "futures", - "near-async-derive", - "near-o11y", - "near-performance-metrics", - "near-time", - "once_cell", - "serde", - "serde_json", - "time", - "tokio", - "tracing", -] - -[[package]] -name = "near-async-derive" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ba6b56963ed6f85d3fa2ad9baf083cbbf1bc9cabcf4818e775f959c29fe948" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - [[package]] name = "near-chain-configs" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ebf8d7673891f3197daa31ede9e83afed95fe1f7024e4b21527efd73f3c66cf" +checksum = "4c1f312b5e1cdb6d6eb8a753de5798fe70fc2aa048b37d9a08a8d63f5623707d" dependencies = [ "anyhow", "bytesize", "chrono", - "derive_more", - "near-async", + "derive_more 0.99.18", "near-config-utils", "near-crypto", "near-parameters", "near-primitives", - "num-rational 0.3.2", - "once_cell", + "near-time", + "num-rational", "serde", "serde_json", - "sha2 0.10.8", - "smart-default 0.6.0", + "sha2", + "smart-default", "time", "tracing", ] -[[package]] -name = "near-cli-rs" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7598f2f9b7267848989195a895b590bbc031facfac3286e0d59ac0a14ca3ede0" -dependencies = [ - "bip39", - "bs58 0.5.1", - "bytesize", - "cargo-util", - "clap", - "color-eyre", - "derive_more", - "dirs", - "easy-ext 1.0.2", - "ed25519-dalek", - "futures", - "hex", - "indenter", - "indicatif", - "inquire", - "interactive-clap", - "interactive-clap-derive", - "keyring", - "linked-hash-map", - "near-abi", - "near-crypto", - "near-gas 0.3.0", - "near-jsonrpc-client", - "near-jsonrpc-primitives", - "near-primitives", - "near-socialdb-client", - "near-token 0.3.0", - "open", - "openssl", - "prettytable", - "reqwest", - "rust_decimal", - "serde", - "serde_json", - "shell-words", - "shellexpand", - "slipped10", - "smart-default 0.7.1", - "strum 0.24.1", - "strum_macros 0.24.3", - "textwrap", - "thiserror", - "tokio", - "toml 0.8.19", - "tracing", - "tracing-indicatif", - "tracing-subscriber", - "url", - "wasmparser 0.211.1", - "zstd 0.13.2", -] - [[package]] name = "near-config-utils" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270955a98d49ff56e4e1286ab5a2e78aa131585eba92bd3c56a8c39f7f1f58e3" +checksum = "bedc768765dd8229a1d960c94f517317f40771a003e78916124784c7d6ea9d74" dependencies = [ "anyhow", "json_comments", - "thiserror", + "thiserror 2.0.11", "tracing", ] [[package]] name = "near-contract-standards" -version = "5.3.0" +version = "5.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c8a6923acd33d2cc0e64ba9bc626746f178bca4490e5742ec9c6d2f6f5a0a9" +checksum = "160c0d0e7764ced84933451e382bd230b495ef462478d42af7b6740b6a827721" dependencies = [ "near-sdk", ] [[package]] name = "near-crypto" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969d525d0e1b255f9cfbff071a66406aba2f3a89f413ac6e78e755e171e27dd1" +checksum = "4374804fdd45ac84c9e7cc3183312c98560c5518d81e6d8e2d92b77587e5a9f3" dependencies = [ "blake2", "borsh", "bs58 0.4.0", "curve25519-dalek", - "derive_more", + "derive_more 0.99.18", "ed25519-dalek", "hex", "near-account-id", "near-config-utils", + "near-schema-checker-lib", "near-stdx", - "once_cell", "primitive-types 0.10.1", + "rand", "secp256k1", "serde", "serde_json", "subtle", - "thiserror", + "thiserror 2.0.11", ] [[package]] name = "near-fmt" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015244b8faaeb1affb40b26018266bb5dd189a27d6c98998466895023fb9af32" +checksum = "f14f36eee2dcb0ecd8febb9f198e0e1fa768c834db9e1982ad2acfcd04b45acf" dependencies = [ "near-primitives-core", ] -[[package]] -name = "near-gas" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" -dependencies = [ - "borsh", - "serde", -] - [[package]] name = "near-gas" version = "0.3.0" @@ -3295,16 +2576,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180edcc7dc2fac41f93570d0c7b759c1b6d492f6ad093d749d644a40b4310a97" dependencies = [ "borsh", - "interactive-clap", "schemars", "serde", ] [[package]] name = "near-jsonrpc-client" -version = "0.11.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e60cee17ae276bfa0d463032231902d866b58ff93f9ff4ff6cd0fdd9efcb9c4" +checksum = "e66a0c4c47f2fbbfa11ea8317fce2288d70d4aa8231e77fd213721ffcc1c334f" dependencies = [ "borsh", "lazy_static", @@ -3316,86 +2596,43 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror", + "thiserror 2.0.11", ] [[package]] name = "near-jsonrpc-primitives" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2164dcfa3a28b833109242d2e7d57979d983414076ca745014669f5a8171de2e" +checksum = "90f445f809d1f227f0f61f38c14271635c0bc9a28a8f74a803a4fb25292d5ea7" dependencies = [ "arbitrary", "near-chain-configs", "near-crypto", "near-primitives", - "near-rpc-error-macro", + "near-schema-checker-lib", "serde", "serde_json", - "thiserror", + "thiserror 2.0.11", "time", ] -[[package]] -name = "near-o11y" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb83e6d4cbdef654bc62e1ca27647419deba7787f62f33f34119ab52f347edf" -dependencies = [ - "actix", - "base64 0.21.7", - "clap", - "near-crypto", - "near-primitives-core", - "once_cell", - "opentelemetry", - "opentelemetry-otlp", - "opentelemetry-semantic-conventions", - "opentelemetry_sdk", - "prometheus", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-appender", - "tracing-opentelemetry", - "tracing-subscriber", -] - [[package]] name = "near-parameters" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57794a59e931eeace65eda1560453e4fe1ff1583b62fa906d0cb11731bc3a1d2" +checksum = "1279baa276725971d5e2b80c524d1aa42d5ad8bccf8901466fd579374cf58a14" dependencies = [ "borsh", "enum-map", "near-account-id", "near-primitives-core", - "num-rational 0.3.2", + "near-schema-checker-lib", + "num-rational", "serde", "serde_repr", "serde_yaml", "strum 0.24.1", - "thiserror", -] - -[[package]] -name = "near-performance-metrics" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f62b33bc0d59782d3cd1af9a7d023393b094f03afb3e83b8d02eee412b8014" -dependencies = [ - "actix", - "bitflags 1.3.2", - "bytes", - "futures", - "libc", - "once_cell", - "tokio", - "tokio-util", - "tracing", + "thiserror 2.0.11", ] [[package]] @@ -3423,19 +2660,20 @@ dependencies = [ [[package]] name = "near-primitives" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97175c346de2dcad949c4a5351b65377d54e6edfc435373bf09d39da9f8fce40" +checksum = "6ab6ecc354e61c40b044c8b553c187383a587a1679d2e594f0b98ca58dbfb6e3" dependencies = [ "arbitrary", "base64 0.21.7", + "bitvec", "borsh", "bytes", "bytesize", "cfg-if 1.0.0", "chrono", - "derive_more", - "easy-ext 0.2.9", + "derive_more 0.99.18", + "easy-ext", "enum-map", "hex", "itertools", @@ -3443,100 +2681,99 @@ dependencies = [ "near-fmt", "near-parameters", "near-primitives-core", - "near-rpc-error-macro", + "near-schema-checker-lib", "near-stdx", "near-time", - "num-rational 0.3.2", - "once_cell", + "num-rational", "ordered-float", "primitive-types 0.10.1", "rand", "rand_chacha", - "reed-solomon-erasure", "serde", "serde_json", "serde_with", "sha3", - "smart-default 0.6.0", + "smart-default", "strum 0.24.1", - "thiserror", + "thiserror 2.0.11", "tracing", "zstd 0.13.2", ] [[package]] name = "near-primitives-core" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4333e0cb2e98c89b434d700bac701a02b1df91a3b29fa1ab6d879727b22cd82" +checksum = "d597af103bb7881d1fb9031fb126cfe6c1acb9c9a6c8296dca45b5b3beb0893d" dependencies = [ "arbitrary", "base64 0.21.7", "borsh", "bs58 0.4.0", - "derive_more", + "derive_more 0.99.18", "enum-map", "near-account-id", - "num-rational 0.3.2", + "near-schema-checker-lib", + "num-rational", "serde", "serde_repr", - "sha2 0.10.8", - "thiserror", + "sha2", + "thiserror 2.0.11", ] [[package]] -name = "near-rpc-error-core" -version = "0.24.1" +name = "near-sandbox-utils" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "072735e35cccb9cde9827793bf08bd9192c23167cf840c287bf65afc968c31e8" +checksum = "51b918c05ec1ac6bf36f5f78e286befa987b17773b9fe4e80958d6350a494c98" dependencies = [ - "quote", - "serde", - "syn 2.0.75", + "anyhow", + "binary-install", + "fs2", + "home", + "tokio", ] [[package]] -name = "near-rpc-error-macro" -version = "0.24.1" +name = "near-schema-checker-core" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caa5a967de9f1480140de15620926b4f5292384e8a3672683e73478594107fa0" -dependencies = [ - "near-rpc-error-core", - "serde", - "syn 2.0.75", -] +checksum = "a48405425eca34de98e680416310df33fdb75768a78481cc75b43172b2748613" [[package]] -name = "near-sandbox-utils" -version = "0.10.0" +name = "near-schema-checker-lib" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "000a28599729f4d584eff6a7e8c5919d7938dceeb2752ea9cdaf408444309a2a" +checksum = "dfb720bf5cc256af687a9eb7a6e05baf3668dc75cfd43098e83ba1b3d3900f08" dependencies = [ - "anyhow", - "binary-install", - "fs2", - "home", - "tokio", + "near-schema-checker-core", + "near-schema-checker-macro", ] +[[package]] +name = "near-schema-checker-macro" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b41a159cbf732acc0279febdde046d9036330a32a951796bce42f9529bce799d" + [[package]] name = "near-sdk" -version = "5.3.0" +version = "5.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d817ec6e678b52ad82d2e05886fb0c379b44beaedf5df6141b2365aadcd7a482" +checksum = "988ce7b12a80883dc8b9a48441355c9b67320692ee460c1f693b5937d8169e3c" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "borsh", "bs58 0.5.1", "near-account-id", "near-crypto", - "near-gas 0.2.5", + "near-gas", "near-parameters", "near-primitives", "near-primitives-core", "near-sdk-macros", "near-sys", - "near-token 0.2.1", + "near-token", "near-vm-runner", "once_cell", "serde", @@ -3546,9 +2783,9 @@ dependencies = [ [[package]] name = "near-sdk-macros" -version = "5.3.0" +version = "5.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2046b1c44f866e46c2ed6944a43c8caab125cc216322ab1f552a02e9c2bcda8a" +checksum = "d080babc80823326f71514e2e7a947d5fec433b93e868bb3899361cecc56f198" dependencies = [ "Inflector", "darling 0.20.10", @@ -3558,31 +2795,14 @@ dependencies = [ "serde_json", "strum 0.26.3", "strum_macros 0.26.4", - "syn 2.0.75", -] - -[[package]] -name = "near-socialdb-client" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfb11a7c0fdd8b22ec806cf1703a0aa65550a7d0dc2237125b7e8436a5e9fcd2" -dependencies = [ - "color-eyre", - "near-crypto", - "near-jsonrpc-client", - "near-jsonrpc-primitives", - "near-primitives", - "near-token 0.3.0", - "serde", - "serde_json", - "url", + "syn 2.0.96", ] [[package]] name = "near-stdx" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1c4937647390c254e530ba8d3e296c192e67ea0364e3d7d4aef64563ffcf6a" +checksum = "7a91674768828a593f4bac4aeca9334c4b56fe19344a2ccf7bd795b2325f0b5e" [[package]] name = "near-sys" @@ -3592,24 +2812,12 @@ checksum = "dbf4ca5c805cb78700e10e43484902d8da05f25788db277999d209568aaf4c8e" [[package]] name = "near-time" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66de5e1e2b748aae827bb5dd80c715037ba7cf074f68ad5241b55bf2aaea793" +checksum = "c92bf9dffb11126e8db9a6a51bcb330c8584d0bab0d6d14c20cf2ff1f16d684d" dependencies = [ - "once_cell", "serde", "time", - "tokio", -] - -[[package]] -name = "near-token" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b497804ec8f603fd11edc3d3b7b19f07c0beb9fe47c8a536eea1867097fd40" -dependencies = [ - "borsh", - "serde", ] [[package]] @@ -3619,16 +2827,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd3e60aa26a74dc514b1b6408fdd06cefe2eb0ff029020956c1c6517594048fd" dependencies = [ "borsh", - "interactive-clap", "serde", ] [[package]] name = "near-vm-runner" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e94f68dde77aa3c94e659edab4c98b14f6dbbeba2aded72ebb6c6456631164" +checksum = "f311723579af3d3cd8e9b5b25efade1b8f5b5e0dd2819ed8ee581e7c7855a76d" dependencies = [ + "blst", "borsh", "bytesize", "ed25519-dalek", @@ -3637,32 +2845,32 @@ dependencies = [ "near-crypto", "near-parameters", "near-primitives-core", + "near-schema-checker-lib", "near-stdx", - "num-rational 0.3.2", - "once_cell", + "num-rational", + "rayon", "ripemd", "rustix", "serde", "serde_repr", - "sha2 0.10.8", + "sha2", "sha3", "strum 0.24.1", "tempfile", - "thiserror", + "thiserror 2.0.11", "tracing", "zeropool-bn", ] [[package]] name = "near-workspaces" -version = "0.12.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b375600c271c3a2e4908bc646bcdb58409f1648dcb345a5d9cb1c69ea1c5eb" +checksum = "7e5804591268264c4e308cc84a54f4c7416da6ad34f8ea5c5a4b1842bc5462de" dependencies = [ "async-trait", "base64 0.22.1", "bs58 0.5.1", - "cargo-near", "chrono", "fs2", "json-patch", @@ -3670,19 +2878,19 @@ dependencies = [ "near-abi-client", "near-account-id", "near-crypto", - "near-gas 0.3.0", + "near-gas", "near-jsonrpc-client", "near-jsonrpc-primitives", "near-primitives", "near-sandbox-utils", - "near-token 0.3.0", + "near-token", "rand", "reqwest", "serde", "serde_json", - "sha2 0.10.8", + "sha2", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-retry", "tracing", @@ -3722,27 +2930,6 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" -[[package]] -name = "newline-converter" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b6b097ecb1cbfed438542d16e84fd7ad9b0c76c8a65b7f9039212a3d14dc7f" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "nix" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" -dependencies = [ - "bitflags 2.6.0", - "cfg-if 1.0.0", - "cfg_aliases", - "libc", -] - [[package]] name = "nom" version = "7.1.3" @@ -3766,30 +2953,6 @@ dependencies = [ "nom", ] -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint 0.4.6", - "num-complex", - "num-integer", - "num-iter", - "num-rational 0.4.2", - "num-traits", -] - [[package]] name = "num-bigint" version = "0.3.3" @@ -3811,15 +2974,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - [[package]] name = "num-conv" version = "0.1.0" @@ -3836,61 +2990,64 @@ dependencies = [ ] [[package]] -name = "num-iter" -version = "0.1.45" +name = "num-rational" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" dependencies = [ "autocfg", + "num-bigint 0.3.3", "num-integer", "num-traits", + "serde", ] [[package]] -name = "num-rational" -version = "0.3.2" +name = "num-traits" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "serde", + "libm", ] [[package]] -name = "num-rational" -version = "0.4.2" +name = "num_cpus" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", + "hermit-abi", + "libc", ] [[package]] -name = "num-traits" -version = "0.2.19" +name = "num_enum" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "autocfg", - "libm", + "num_enum_derive", ] [[package]] -name = "number_prefix" -version = "0.4.0" +name = "num_enum_derive" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.96", +] [[package]] name = "object" -version = "0.32.2" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] @@ -3923,6 +3080,7 @@ name = "omni-tests" version = "0.1.0" dependencies = [ "anyhow", + "cargo-near-build", "near-sdk", "near-workspaces", "omni-types", @@ -3952,7 +3110,9 @@ dependencies = [ "hex", "near-contract-standards", "near-sdk", + "num_enum", "rlp 0.6.1", + "schemars", "serde", "sha3", "strum_macros 0.26.4", @@ -3960,34 +3120,17 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "open" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3" -dependencies = [ - "is-wsl", - "libc", - "pathdiff", -] +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "f5e534d133a060a3c19daec1eb3e98ec6f4685978834f2dbadfe2ec215bab64e" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cfg-if 1.0.0", "foreign-types", "libc", @@ -4004,122 +3147,32 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-src" -version = "300.3.2+3.3.2" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" -dependencies = [ - "cc", -] +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", - "openssl-src", "pkg-config", "vcpkg", ] -[[package]] -name = "opentelemetry" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900d57987be3f2aeb70d385fff9b27fb74c5723cc9a52d904d4f9c807a0667bf" -dependencies = [ - "futures-core", - "futures-sink", - "js-sys", - "once_cell", - "pin-project-lite", - "thiserror", - "urlencoding", -] - -[[package]] -name = "opentelemetry-otlp" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a016b8d9495c639af2145ac22387dcb88e44118e45320d9238fbf4e7889abcb" -dependencies = [ - "async-trait", - "futures-core", - "http 0.2.12", - "opentelemetry", - "opentelemetry-proto", - "opentelemetry-semantic-conventions", - "opentelemetry_sdk", - "prost", - "thiserror", - "tokio", - "tonic", -] - -[[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.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 = "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 = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - [[package]] name = "ordered-float" -version = "4.2.2" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a91171844676f8c7990ce64959210cd2eaef32c2612c50f9fae9f8aaa6065a6" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" dependencies = [ "borsh", "num-traits", @@ -4127,18 +3180,6 @@ dependencies = [ "serde", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "owo-colors" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" - [[package]] name = "parity-scale-codec" version = "3.6.12" @@ -4159,23 +3200,12 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", ] -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - [[package]] name = "parking_lot" version = "0.12.3" @@ -4183,21 +3213,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", + "parking_lot_core", ] [[package]] @@ -4208,9 +3224,9 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.5.3", + "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -4230,15 +3246,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pathdiff" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" -dependencies = [ - "camino", -] - [[package]] name = "pbkdf2" version = "0.11.0" @@ -4246,9 +3253,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ "digest 0.10.7", - "hmac 0.12.1", + "hmac", "password-hash", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -4259,7 +3266,7 @@ checksum = "13f4d162ecaaa1467de5afbe62d597757b674b51da8bb4e587430c5fdb2af7aa" dependencies = [ "fallible-iterator", "scroll 0.10.2", - "uuid 0.8.2", + "uuid", ] [[package]] @@ -4270,12 +3277,12 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror", + "thiserror 2.0.11", "ucd-trie", ] @@ -4290,29 +3297,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -4332,9 +3339,9 @@ dependencies = [ [[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" @@ -4342,12 +3349,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" -[[package]] -name = "portable-atomic" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" - [[package]] name = "powerfmt" version = "0.2.0" @@ -4379,20 +3380,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "prettytable" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46480520d1b77c9a3482d39939fcf96831537a250ec62d4fd8fbdf8e0302e781" -dependencies = [ - "csv", - "encode_unicode 1.0.0", - "is-terminal", - "lazy_static", - "term", - "unicode-width", -] - [[package]] name = "primitive-types" version = "0.10.1" @@ -4432,66 +3419,49 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" dependencies = [ - "toml 0.5.11", + "toml", ] [[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]] -name = "proc-macro-error" -version = "1.0.4" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.109", - "version_check", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "proc-macro-error2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ + "proc-macro-error-attr2", "proc-macro2", "quote", - "version_check", + "syn 2.0.96", ] [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] -[[package]] -name = "prometheus" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" -dependencies = [ - "cfg-if 1.0.0", - "fnv", - "lazy_static", - "memchr", - "parking_lot 0.12.3", - "protobuf", - "thiserror", -] - [[package]] name = "proptest" version = "1.5.0" @@ -4500,67 +3470,18 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags 2.8.0", "lazy_static", "num-traits", "rand", "rand_chacha", "rand_xorshift", - "regex-syntax 0.8.4", + "regex-syntax", "rusty-fork", "tempfile", "unarray", ] -[[package]] -name = "prost" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-derive" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "protobuf" -version = "2.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" - -[[package]] -name = "ptr_meta" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "quick-error" version = "1.2.3" @@ -4569,9 +3490,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.36" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -4610,7 +3531,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", "serde", ] @@ -4624,90 +3545,73 @@ dependencies = [ ] [[package]] -name = "redox_syscall" -version = "0.2.16" +name = "rayon" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ - "bitflags 1.3.2", + "either", + "rayon-core", ] [[package]] -name = "redox_syscall" -version = "0.5.3" +name = "rayon-core" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "bitflags 2.6.0", + "crossbeam-deque", + "crossbeam-utils", ] [[package]] -name = "redox_users" -version = "0.4.6" +name = "redox_syscall" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "getrandom", - "libredox", - "thiserror", + "bitflags 2.8.0", ] [[package]] -name = "reed-solomon-erasure" -version = "6.0.0" +name = "redox_users" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7263373d500d4d4f505d43a2a662d475a894aa94503a1ee28e9188b5f3960d4f" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "libm", - "lru", - "parking_lot 0.11.2", - "smallvec", - "spin", + "getrandom 0.2.15", + "libredox", + "thiserror 1.0.69", ] [[package]] name = "regex" -version = "1.10.6" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "relative-path" @@ -4715,32 +3619,22 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" -[[package]] -name = "rend" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" -dependencies = [ - "bytecheck", -] - [[package]] name = "reqwest" -version = "0.12.7" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" dependencies = [ "base64 0.22.1", "bytes", "encoding_rs", - "futures-channel", "futures-core", "futures-util", - "h2 0.4.6", - "http 1.1.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "http-body-util", - "hyper 1.4.1", + "hyper", "hyper-rustls", "hyper-tls", "hyper-util", @@ -4756,10 +3650,11 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", + "tower", "tower-service", "url", "wasm-bindgen", @@ -4774,7 +3669,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "hmac 0.12.1", + "hmac", "subtle", ] @@ -4786,7 +3681,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if 1.0.0", - "getrandom", + "getrandom 0.2.15", "libc", "spin", "untrusted", @@ -4802,35 +3697,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "rkyv" -version = "0.7.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" -dependencies = [ - "bitvec", - "bytecheck", - "bytes", - "hashbrown 0.12.3", - "ptr_meta", - "rend", - "rkyv_derive", - "seahash", - "tinyvec", - "uuid 1.10.0", -] - -[[package]] -name = "rkyv_derive" -version = "0.7.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "rlp" version = "0.5.2" @@ -4853,45 +3719,48 @@ dependencies = [ [[package]] name = "rstest" -version = "0.18.2" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199" +checksum = "03e905296805ab93e13c1ec3a03f4b6c4f35e9498a3d5fa96dc626d22c03cd89" dependencies = [ - "futures", "futures-timer", + "futures-util", "rstest_macros", "rustc_version 0.4.1", ] [[package]] name = "rstest_macros" -version = "0.18.2" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605" +checksum = "ef0053bbffce09062bee4bcc499b0fbe7a57b879f1efe088d6d8d4c7adcdef9b" dependencies = [ "cfg-if 1.0.0", "glob", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "regex", "relative-path", "rustc_version 0.4.1", - "syn 2.0.75", + "syn 2.0.96", "unicode-ident", ] [[package]] name = "ruint" -version = "1.12.3" +version = "1.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +checksum = "f5ef8fb1dd8de3870cb8400d51b4c2023854bbafd5431a3ac7e7317243e22d2f" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", - "fastrlp", + "fastrlp 0.3.1", + "fastrlp 0.4.0", "num-bigint 0.4.6", + "num-integer", "num-traits", "parity-scale-codec", "primitive-types 0.12.2", @@ -4910,28 +3779,18 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" -[[package]] -name = "rust_decimal" -version = "1.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b082d80e3e3cc52b2ed634388d436fe1f4de6af5786cc2de9ba9737527bdf555" -dependencies = [ - "arrayvec", - "borsh", - "bytes", - "num-traits", - "rand", - "rkyv", - "serde", - "serde_json", -] - [[package]] name = "rustc-demangle" version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" + [[package]] name = "rustc-hex" version = "2.1.0" @@ -4953,27 +3812,27 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.23", + "semver 1.0.25", ] [[package]] name = "rustix" -version = "0.38.36" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "9fb9263ab4eb695e42321db096e3b8fbd715a59b154d5c88d82db2175b681ba7" dependencies = [ "log", "once_cell", @@ -4986,25 +3845,24 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" [[package]] name = "rustls-webpki" -version = "0.102.7" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring", "rustls-pki-types", @@ -5013,9 +3871,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "rusty-fork" @@ -5030,25 +3888,16 @@ dependencies = [ ] [[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] +name = "ryu" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" + +[[package]] name = "schannel" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -5074,7 +3923,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5083,6 +3932,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "scratch" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" + [[package]] name = "scroll" version = "0.10.2" @@ -5106,15 +3961,9 @@ checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] -[[package]] -name = "seahash" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" - [[package]] name = "sec1" version = "0.7.3" @@ -5154,7 +4003,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation", "core-foundation-sys", "libc", @@ -5163,9 +4012,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -5182,40 +4031,40 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" dependencies = [ "serde", ] [[package]] name = "semver-parser" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" dependencies = [ "pest", ] [[package]] name = "serde" -version = "1.0.208" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.208" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5226,14 +4075,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "serde_json" -version = "1.0.125" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" dependencies = [ "itoa", "memchr", @@ -5249,16 +4098,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", -] - -[[package]] -name = "serde_spanned" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" -dependencies = [ - "serde", + "syn 2.0.96", ] [[package]] @@ -5275,15 +4115,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.9.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.4.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -5293,14 +4133,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.9.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5309,7 +4149,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.7.1", "itoa", "ryu", "serde", @@ -5327,19 +4167,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - [[package]] name = "sha2" version = "0.10.8" @@ -5363,71 +4190,20 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d79b758b7cb2085612b11a235055e485605a5103faccdd633f35bd7aee69dd" +checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" dependencies = [ "cc", "cfg-if 1.0.0", ] -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shell-escape" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" - -[[package]] -name = "shell-words" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" - -[[package]] -name = "shellexpand" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" -dependencies = [ - "dirs", -] - [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "signal-hook" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" -dependencies = [ - "libc", - "mio 0.8.11", - "signal-hook", -] - [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -5447,12 +4223,6 @@ dependencies = [ "rand_core", ] -[[package]] -name = "simdutf8" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" - [[package]] name = "siphasher" version = "0.3.11" @@ -5468,17 +4238,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "slipped10" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a45443e66aa5d96db5e02d17db056e1ca970232a4fe73e1f9bc1816d68f4e98" -dependencies = [ - "ed25519-dalek", - "hmac 0.9.0", - "sha2 0.9.9", -] - [[package]] name = "smallvec" version = "1.13.2" @@ -5496,28 +4255,11 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "smart-default" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "smawk" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" - [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -5559,7 +4301,7 @@ checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" dependencies = [ "new_debug_unreachable", "once_cell", - "parking_lot 0.12.3", + "parking_lot", "phf_shared", "precomputed-hash", "serde", @@ -5615,7 +4357,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5633,7 +4375,7 @@ dependencies = [ "debugid", "memmap2", "stable_deref_trait", - "uuid 0.8.2", + "uuid", ] [[package]] @@ -5653,7 +4395,7 @@ dependencies = [ "lazycell", "nom", "nom-supreme", - "parking_lot 0.12.3", + "parking_lot", "pdb", "regex", "scroll 0.11.0", @@ -5661,8 +4403,8 @@ dependencies = [ "serde_json", "smallvec", "symbolic-common", - "thiserror", - "wasmparser 0.83.0", + "thiserror 1.0.69", + "wasmparser", "zip 0.5.13", ] @@ -5679,9 +4421,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.75" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -5690,41 +4432,34 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.0" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284c41c2919303438fcf8dede4036fd1e82d4fc0fbb2b279bd2a1442c909ca92" +checksum = "b84e4d83a0a6704561302b917a932484e1cae2d8c6354c64be8b7bac1c1fe057" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] -name = "syn_derive" -version = "0.1.8" +name = "sync_wrapper" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.75", + "futures-core", ] [[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.1" +name = "synstructure" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "futures-core", + "proc-macro2", + "quote", + "syn 2.0.96", ] [[package]] @@ -5733,7 +4468,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation", "system-configuration-sys", ] @@ -5756,9 +4491,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.41" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" +checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" dependencies = [ "filetime", "libc", @@ -5767,74 +4502,81 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.12.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" dependencies = [ "cfg-if 1.0.0", "fastrand", + "getrandom 0.3.1", "once_cell", "rustix", "windows-sys 0.59.0", ] [[package]] -name = "term" -version = "0.7.0" +name = "termcolor" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ - "dirs-next", - "rustversion", - "winapi", + "winapi-util", ] [[package]] -name = "textwrap" -version = "0.16.1" +name = "thiserror" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "smawk", - "unicode-linebreak", - "unicode-width", + "thiserror-impl 1.0.69", ] [[package]] name = "thiserror" -version = "1.0.63" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.11", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] -name = "thread_local" -version = "1.1.8" +name = "thiserror-impl" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ - "cfg-if 1.0.0", - "once_cell", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[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.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -5853,9 +4595,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -5870,11 +4612,21 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -5885,20 +4637,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -[[package]] -name = "tmp_env" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56eb9e5a28c3c4f0a6aa8ea70a8ad2d6c53e4bf364571ce78f57945b6766843" -dependencies = [ - "rand", -] - [[package]] name = "token-deployer" version = "0.1.0" dependencies = [ "borsh", + "cargo-near-build", "hex", "near-contract-standards", "near-plugins", @@ -5910,15 +4654,15 @@ dependencies = [ [[package]] name = "tokio" -version = "1.40.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", "libc", - "mio 1.0.2", - "parking_lot 0.12.3", + "mio", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -5926,25 +4670,15 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5970,31 +4704,19 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ "rustls", - "rustls-pki-types", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" -dependencies = [ - "futures-core", - "pin-project-lite", "tokio", ] [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -6012,221 +4734,79 @@ dependencies = [ "serde", ] -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.20", -] - [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.4.0", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" -dependencies = [ - "indexmap 2.4.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.18", -] - -[[package]] -name = "tonic" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" -dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64 0.21.7", - "bytes", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.30", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost", - "tokio", - "tokio-stream", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-appender" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" -dependencies = [ - "crossbeam-channel", - "thiserror", - "time", - "tracing-subscriber", -] +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] -name = "tracing-attributes" -version = "0.1.27" +name = "toml_edit" +version = "0.22.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", + "indexmap 2.7.1", + "toml_datetime", + "winnow 0.7.0", ] [[package]] -name = "tracing-core" -version = "0.1.32" +name = "tower" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ - "once_cell", - "valuable", + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", ] [[package]] -name = "tracing-error" -version = "0.2.0" +name = "tower-layer" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" -dependencies = [ - "tracing", - "tracing-subscriber", -] +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] -name = "tracing-indicatif" -version = "0.3.6" +name = "tower-service" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069580424efe11d97c3fef4197fa98c004fa26672cc71ad8770d224e23b1951d" -dependencies = [ - "indicatif", - "tracing", - "tracing-core", - "tracing-subscriber", -] +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] -name = "tracing-log" -version = "0.2.0" +name = "tracing" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "log", - "once_cell", + "pin-project-lite", + "tracing-attributes", "tracing-core", ] [[package]] -name = "tracing-opentelemetry" -version = "0.23.0" +name = "tracing-attributes" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9be14ba1bbe4ab79e9229f7f89fab8d120b865859f10527f31c033e599d2284" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ - "js-sys", - "once_cell", - "opentelemetry", - "opentelemetry_sdk", - "smallvec", - "tracing", - "tracing-core", - "tracing-log", - "tracing-subscriber", - "web-time", + "proc-macro2", + "quote", + "syn 2.0.96", ] [[package]] -name = "tracing-subscriber" -version = "0.3.18" +name = "tracing-core" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ - "matchers", - "nu-ansi-term", "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", ] [[package]] @@ -6243,9 +4823,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -6277,59 +4857,23 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - [[package]] name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-linebreak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" [[package]] name = "unicode-width" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" - -[[package]] -name = "unix_path" -version = "1.0.1" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8e291873ae77c4c8d9c9b34d0bee68a35b048fb39c263a5155e0e353783eaf" -dependencies = [ - "unix_str", -] +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] -name = "unix_str" -version = "1.0.0" +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ace0b4755d0a2959962769239d56267f8a024fef2d9b32666b3dcd0946b0906" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "unsafe-libyaml" @@ -6345,9 +4889,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.10.1" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" +checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" dependencies = [ "base64 0.22.1", "flate2", @@ -6371,9 +4915,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -6382,16 +4926,16 @@ dependencies = [ ] [[package]] -name = "urlencoding" -version = "2.1.3" +name = "utf16_iter" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" [[package]] -name = "utf8parse" -version = "0.2.2" +name = "utf8_iter" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" @@ -6399,17 +4943,11 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -[[package]] -name = "uuid" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" - [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -6423,39 +4961,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "vt100" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de" -dependencies = [ - "itoa", - "log", - "unicode-width", - "vte", -] - -[[package]] -name = "vte" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197" -dependencies = [ - "arrayvec", - "utf8parse", - "vte_generate_state_changes", -] - -[[package]] -name = "vte_generate_state_changes" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e" -dependencies = [ - "proc-macro2", - "quote", -] - [[package]] name = "wait-timeout" version = "0.2.0" @@ -6465,16 +4970,6 @@ dependencies = [ "libc", ] -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "want" version = "0.3.1" @@ -6490,49 +4985,59 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if 1.0.0", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if 1.0.0", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6540,58 +5045,77 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] -name = "wasmparser" -version = "0.83.0" +name = "wasm-opt" +version = "0.116.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" +dependencies = [ + "anyhow", + "libc", + "strum 0.24.1", + "strum_macros 0.24.3", + "tempfile", + "thiserror 1.0.69", + "wasm-opt-cxx-sys", + "wasm-opt-sys", +] [[package]] -name = "wasmparser" -version = "0.211.1" +name = "wasm-opt-cxx-sys" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3189cc8a91f547390e2f043ca3b3e3fe0892f7d581767fd4e4b7f3dc3fe8e561" +checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e" dependencies = [ - "ahash 0.8.11", - "bitflags 2.6.0", - "hashbrown 0.14.5", - "indexmap 2.4.0", - "semver 1.0.23", - "serde", + "anyhow", + "cxx", + "cxx-build", + "wasm-opt-sys", ] [[package]] -name = "web-sys" -version = "0.3.70" +name = "wasm-opt-sys" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe" dependencies = [ - "js-sys", - "wasm-bindgen", + "anyhow", + "cc", + "cxx", + "cxx-build", ] [[package]] -name = "web-time" -version = "1.1.0" +name = "wasmparser" +version = "0.83.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" + +[[package]] +name = "web-sys" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -6599,9 +5123,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.5" +version = "0.26.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" dependencies = [ "rustls-pki-types", ] @@ -6655,7 +5179,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -6666,7 +5190,7 @@ checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ "windows-result", "windows-strings", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -6675,7 +5199,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -6685,16 +5209,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ "windows-result", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", + "windows-targets", ] [[package]] @@ -6703,7 +5218,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -6712,22 +5227,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "windows-targets", ] [[package]] @@ -6736,46 +5236,28 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", "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", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -6788,48 +5270,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -6838,22 +5296,31 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.5.40" +version = "0.6.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.6.18" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "7e49d2d35d3fad69b39b94139037ecfb4f359f08958b9c11e7315ce770462419" dependencies = [ "memchr", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.8.0", +] + [[package]] name = "wormhole-omni-prover-proxy" version = "2.0.0" @@ -6866,6 +5333,18 @@ dependencies = [ "omni-types", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "wyz" version = "0.5.1" @@ -6877,9 +5356,9 @@ dependencies = [ [[package]] name = "xattr" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +checksum = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909" dependencies = [ "libc", "linux-raw-sys", @@ -6888,9 +5367,33 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.21" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "synstructure", +] [[package]] name = "zerocopy" @@ -6910,7 +5413,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "synstructure", ] [[package]] @@ -6930,7 +5454,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -6946,6 +5470,28 @@ dependencies = [ "rustc-hex", ] +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "zip" version = "0.5.13" @@ -6955,7 +5501,7 @@ dependencies = [ "byteorder", "crc32fast", "flate2", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -6971,7 +5517,7 @@ dependencies = [ "crc32fast", "crossbeam-utils", "flate2", - "hmac 0.12.1", + "hmac", "pbkdf2", "sha1", "time", diff --git a/near/Cargo.toml b/near/Cargo.toml index be90c094..7af2ff46 100644 --- a/near/Cargo.toml +++ b/near/Cargo.toml @@ -1,5 +1,6 @@ [workspace.package] authors = ["Karim Alabtakh "] +repository = "https://github.com/Near-One/omni-bridge" [workspace] resolver = "2" @@ -26,19 +27,22 @@ panic = "abort" overflow-checks = true [workspace.dependencies] -near-sdk = "5.2.0" -near-contract-standards = "5.2.0" +cargo-near-build = "0.4.3" +near-sdk = "5.7.0" +near-contract-standards = "5.7.0" hex = "0.4.2" borsh = "1.5.1" serde = { version = "1.0.200", features = ["derive"] } near-plugins = { git = "https://github.com/aurora-is-near/near-plugins", tag = "v0.4.1" } omni-types = { path = "omni-types" } strum_macros = "0.26" -near-workspaces = "0.12.0" +near-workspaces = "0.16.0" +num_enum = "0.7.3" tokio = "1.40" anyhow = "1" +schemars = "0.8" +alloy-sol-types = "0.8" ethereum-types = { version = "0.15.1", default-features = false, features = ["rlp", "serialize"] } rlp = "0.6" sha3 = "0.10.0" -alloy-sol-types = "0.8" -rstest = "0.18.2" +rstest = "0.24.0" diff --git a/near/build.sh b/near/build.sh deleted file mode 100755 index a7c89ad2..00000000 --- a/near/build.sh +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env bash - -# Exit script as soon as a command fails. -set -e - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -DEFAULT_RES_DIR="$DIR/res" -RES_DIR=$DEFAULT_RES_DIR - -show_help() { - echo "Usage: $0 [OPTION] [COMPONENT_DIR]" - echo - echo "Build NEAR smart contracts." - echo - echo "Options:" - echo " -h, --help Display this help message" - echo " -o, --output-dir DIR Specify output directory for WASM files (default: ./res)" - echo - echo "Arguments:" - echo " COMPONENT_DIR Optional. Directory name of the specific component to build" - echo " If not provided, builds all components" - echo - echo "Examples:" - echo " $0 # Build all contracts" - echo " $0 omni-bridge # Build only omni-bridge contract" - echo " $0 token-deployer # Build only token-deployer contract" - echo " $0 -o ../dist # Build all contracts and output to ../dist" - echo -} - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case $1 in - -h|--help) - show_help - exit 0 - ;; - -o|--output-dir) - if [ -z "$2" ]; then - echo "Error: Output directory not specified" - exit 1 - fi - RES_DIR="$2" - shift 2 - ;; - *) - COMPONENT="$1" - shift - ;; - esac -done - -# Determine Docker user flags -if [[ -z "$BUILDKITE" ]] && [[ "$(uname -s)" != "Darwin" ]]; -then - userflag="-u $UID:$UID" -else - userflag="" -fi - -# Determine architecture-specific tag -arch=`uname -m` -if [ "$arch" == "arm64" ] -then - tag=":latest-arm64" -else - tag="" -fi - -if [ -z "$COMPONENT" ]; then - BUILD_CMD="cargo build --workspace --target wasm32-unknown-unknown --release" - echo "Building entire workspace..." -else - if [ ! -d "$DIR/$COMPONENT" ]; then - echo "Error: Directory '$COMPONENT' not found in $DIR" - exit 1 - fi - BUILD_CMD="cargo build --manifest-path $COMPONENT/Cargo.toml --target wasm32-unknown-unknown --release" - echo "Building component: $COMPONENT" -fi - -docker run \ - --rm \ - --mount type=bind,source=$DIR,target=/host \ - --cap-add=SYS_PTRACE --security-opt seccomp=unconfined $userflag \ - -w /host \ - -e RUSTFLAGS='-C link-arg=-s' \ - nearprotocol/contract-builder$tag \ - /bin/bash -c "rustup target add wasm32-unknown-unknown && $BUILD_CMD" - -mkdir -p $RES_DIR - -if [ -z "$COMPONENT" ]; then - find $DIR/target/wasm32-unknown-unknown/release/ -name "*.wasm" -maxdepth 1 -exec cp -f {} $RES_DIR/ \; -else - binary_name=$(basename $COMPONENT | tr '-' '_') - find $DIR/target/wasm32-unknown-unknown/release/ -name "$binary_name.wasm" -maxdepth 1 -exec cp -f {} $RES_DIR/ \; -fi - -echo "Build completed! Contract files are in the $RES_DIR directory:" -ls -l $RES_DIR diff --git a/near/mock/mock-prover/Cargo.toml b/near/mock/mock-prover/Cargo.toml index 13a5ae26..4edcd1fa 100644 --- a/near/mock/mock-prover/Cargo.toml +++ b/near/mock/mock-prover/Cargo.toml @@ -3,6 +3,24 @@ name = "mock-prover" version = "0.1.0" authors = ["Karim Alabtakh "] edition = "2021" +repository.workspace = true + +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/mock/mock-token/Cargo.toml b/near/mock/mock-token/Cargo.toml index 6b04125d..ee8baecc 100644 --- a/near/mock/mock-token/Cargo.toml +++ b/near/mock/mock-token/Cargo.toml @@ -4,6 +4,24 @@ version = "0.1.0" authors = ["Karim Alabtakh "] edition = "2021" publish = false +repository.workspace = true + +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/mock/mock-token/src/lib.rs b/near/mock/mock-token/src/lib.rs index 9d24a28e..aed5cb60 100644 --- a/near/mock/mock-token/src/lib.rs +++ b/near/mock/mock-token/src/lib.rs @@ -14,8 +14,8 @@ use near_sdk::{ env, log, near, require, AccountId, BorshStorageKey, NearToken, PanicOnDefault, PromiseOrValue, }; -#[derive(PanicOnDefault)] #[near(contract_state)] +#[derive(PanicOnDefault)] pub struct Contract { token: FungibleToken, metadata: LazyOption, diff --git a/near/omni-bridge/Cargo.lock b/near/omni-bridge/Cargo.lock deleted file mode 100644 index fd37f2d2..00000000 --- a/near/omni-bridge/Cargo.lock +++ /dev/null @@ -1,883 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitvec" -version = "0.17.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" -dependencies = [ - "either", - "radium", -] - -[[package]] -name = "borsh" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" -dependencies = [ - "borsh-derive", - "cfg_aliases", -] - -[[package]] -name = "borsh-derive" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" -dependencies = [ - "once_cell", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", - "syn_derive", -] - -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "byte-slice-cast" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.4", -] - -[[package]] -name = "darling" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core 0.20.10", - "darling_macro 0.20.10", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_core" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core 0.13.4", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core 0.20.10", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "ethabi" -version = "12.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052a565e3de82944527d6d10a465697e6bb92476b772ca7141080c901f6a63c6" -dependencies = [ - "ethereum-types", - "rustc-hex", - "serde", - "serde_json", - "tiny-keccak 1.5.0", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71a6567e6fd35589fea0c63b94b4cf2e55573e413901bdbe60ab15cf0e25e5df" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-rlp", - "impl-serde", - "tiny-keccak 2.0.2", -] - -[[package]] -name = "ethereum-types" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "473aecff686bd8e7b9db0165cbbb53562376b39bf35b427f0c60446a9e1634b0" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-rlp", - "impl-serde", - "primitive-types", - "uint", -] - -[[package]] -name = "fixed-hash" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11498d382790b7a8f2fd211780bec78619bba81cdad3a283997c0c41f836759c" -dependencies = [ - "byteorder", - "rand", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[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", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "impl-codec" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be51a921b067b0eaca2fad532d9400041561aa922221cc65f95a85641c6bf53" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f7a72f11830b52333f36e3b09a288333888bf54380fd0ac0790a3c31ab0f3c5" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" -dependencies = [ - "serde", -] - -[[package]] -name = "indexmap" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "libc" -version = "0.2.158" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "memory_units" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" - -[[package]] -name = "near-account-id" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35cbb989542587b47205e608324ddd391f0cee1c22b4b64ae49f458334b95907" -dependencies = [ - "borsh", - "serde", -] - -[[package]] -name = "near-contract-standards" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c8a6923acd33d2cc0e64ba9bc626746f178bca4490e5742ec9c6d2f6f5a0a9" -dependencies = [ - "near-sdk", -] - -[[package]] -name = "near-gas" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" -dependencies = [ - "borsh", - "serde", -] - -[[package]] -name = "near-plugins" -version = "0.2.0" -source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.3.0#eff928fda517caf4276b9b58b5a3ece0c48ba5ed" -dependencies = [ - "bitflags", - "near-plugins-derive", - "near-sdk", - "serde", -] - -[[package]] -name = "near-plugins-derive" -version = "0.2.0" -source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.3.0#eff928fda517caf4276b9b58b5a3ece0c48ba5ed" -dependencies = [ - "darling 0.13.4", - "proc-macro-crate 0.1.5", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "near-sdk" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d817ec6e678b52ad82d2e05886fb0c379b44beaedf5df6141b2365aadcd7a482" -dependencies = [ - "base64", - "borsh", - "bs58", - "near-account-id", - "near-gas", - "near-sdk-macros", - "near-sys", - "near-token", - "once_cell", - "serde", - "serde_json", - "wee_alloc", -] - -[[package]] -name = "near-sdk-macros" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2046b1c44f866e46c2ed6944a43c8caab125cc216322ab1f552a02e9c2bcda8a" -dependencies = [ - "Inflector", - "darling 0.20.10", - "proc-macro2", - "quote", - "serde", - "serde_json", - "strum", - "strum_macros", - "syn 2.0.75", -] - -[[package]] -name = "near-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf4ca5c805cb78700e10e43484902d8da05f25788db277999d209568aaf4c8e" - -[[package]] -name = "near-token" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b497804ec8f603fd11edc3d3b7b19f07c0beb9fe47c8a536eea1867097fd40" -dependencies = [ - "borsh", - "serde", -] - -[[package]] -name = "omni-nep141-locker" -version = "0.2.0" -dependencies = [ - "borsh", - "ethabi", - "hex", - "near-contract-standards", - "near-plugins", - "near-sdk", - "serde", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "parity-scale-codec" -version = "1.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b26b16c7687c3075982af47719e481815df30bc544f7a6690763a25ca16e9d" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "serde", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "primitive-types" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd39dcacf71411ba488570da7bbc89b717225e46478b30ba99b92db6b149809" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml", -] - -[[package]] -name = "proc-macro-crate" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" -dependencies = [ - "toml_edit", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom", - "libc", - "rand_chacha", - "rand_core", - "rand_hc", -] - -[[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", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rlp" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1190dcc8c3a512f1eef5d09bb8c84c7f39e1054e174d1795482e18f5272f2e73" -dependencies = [ - "rustc-hex", -] - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "serde" -version = "1.0.208" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.208" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "serde_json" -version = "1.0.125" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.75", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "tiny-keccak" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d8a021c69bb74a44ccedb824a046447e2c84a01df9e5c20779750acb38e11b2" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinyvec" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_datetime" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" - -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow", -] - -[[package]] -name = "uint" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9db035e67dfaf7edd9aebfe8676afcd63eed53c8a4044fed514c8cccf1835177" -dependencies = [ - "byteorder", - "crunchy", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wee_alloc" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "memory_units", - "winapi", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] diff --git a/near/omni-bridge/Cargo.toml b/near/omni-bridge/Cargo.toml index 6f4e7999..ffb2c66a 100644 --- a/near/omni-bridge/Cargo.toml +++ b/near/omni-bridge/Cargo.toml @@ -4,6 +4,24 @@ version = "0.1.0" authors = ["Karim Alabtakh "] edition = "2021" publish = false +repository.workspace = true + +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-bridge/src/lib.rs b/near/omni-bridge/src/lib.rs index 6cc933f8..0f8054fe 100644 --- a/near/omni-bridge/src/lib.rs +++ b/near/omni-bridge/src/lib.rs @@ -394,6 +394,7 @@ impl Contract { fee: &Option, ) -> Promise { let transfer_message = self.get_transfer_message(transfer_id); + if let Some(fee) = &fee { require!(&transfer_message.fee == fee, "Invalid fee"); } @@ -864,7 +865,8 @@ impl Contract { #[payable] pub fn add_deployed_tokens(&mut self, tokens: Vec<(OmniAddress, AccountId)>) { require!( - env::attached_deposit() >= NEP141_DEPOSIT.saturating_mul(tokens.len() as u128), + env::attached_deposit() + >= NEP141_DEPOSIT.saturating_mul(tokens.len().try_into().sdk_expect("ERR_CAST")), "ERR_NOT_ENOUGH_ATTACHED_DEPOSIT" ); @@ -943,8 +945,11 @@ impl Contract { let mut storage_deposit_action_index: usize = 0; require!( - Self::check_storage_balance_result((storage_deposit_action_index + 1) as u64) - && storage_deposit_actions[storage_deposit_action_index].account_id == recipient + Self::check_storage_balance_result( + (storage_deposit_action_index + 1) + .try_into() + .sdk_expect("ERR_CAST") + ) && storage_deposit_actions[storage_deposit_action_index].account_id == recipient && storage_deposit_actions[storage_deposit_action_index].token_id == token, "STORAGE_ERR: The transfer recipient is omitted" ); @@ -996,9 +1001,12 @@ impl Contract { if transfer_message.fee.fee.0 > 0 { require!( - Self::check_storage_balance_result((storage_deposit_action_index + 1) as u64) - && storage_deposit_actions[storage_deposit_action_index].account_id - == predecessor_account_id + Self::check_storage_balance_result( + (storage_deposit_action_index + 1) + .try_into() + .sdk_expect("ERR_CAST") + ) && storage_deposit_actions[storage_deposit_action_index].account_id + == predecessor_account_id && storage_deposit_actions[storage_deposit_action_index].token_id == token, "STORAGE_ERR: The fee recipient is omitted" ); @@ -1030,9 +1038,12 @@ impl Contract { let native_token_id = self.get_native_token_id(transfer_message.get_origin_chain()); require!( - Self::check_storage_balance_result((storage_deposit_action_index + 1) as u64) - && storage_deposit_actions[storage_deposit_action_index].account_id - == predecessor_account_id + Self::check_storage_balance_result( + (storage_deposit_action_index + 1) + .try_into() + .sdk_expect("ERR_CAST") + ) && storage_deposit_actions[storage_deposit_action_index].account_id + == predecessor_account_id && storage_deposit_actions[storage_deposit_action_index].token_id == native_token_id, "STORAGE_ERR: The native fee recipient is omitted" diff --git a/near/omni-bridge/src/storage.rs b/near/omni-bridge/src/storage.rs index 72ca58b8..921153df 100644 --- a/near/omni-bridge/src/storage.rs +++ b/near/omni-bridge/src/storage.rs @@ -1,23 +1,26 @@ use near_contract_standards::storage_management::{StorageBalance, StorageBalanceBounds}; -use near_sdk::{assert_one_yocto, borsh}; +use near_sdk::{assert_one_yocto, borsh, near}; use near_sdk::{env, near_bindgen, AccountId, NearToken}; use omni_types::TransferId; use crate::{ - require, BorshDeserialize, BorshSerialize, ChainKind, Contract, ContractExt, Deserialize, Fee, - OmniAddress, Promise, SdkExpect, Serialize, TransferMessage, U128, + require, ChainKind, Contract, ContractExt, Fee, OmniAddress, Promise, SdkExpect, + TransferMessage, U128, }; pub const BRIDGE_TOKEN_INIT_BALANCE: NearToken = NearToken::from_near(3); pub const NEP141_DEPOSIT: NearToken = NearToken::from_yoctonear(1_250_000_000_000_000_000_000); -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct TransferMessageStorageValue { pub message: TransferMessage, pub owner: AccountId, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[allow(clippy::module_name_repetitions)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub enum TransferMessageStorage { V0(TransferMessageStorageValue), } @@ -40,7 +43,8 @@ impl TransferMessageStorage { } } -#[derive(BorshDeserialize, BorshSerialize, Debug, Clone, Copy, PartialEq, Eq)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub struct Decimals { pub decimals: u8, pub origin_decimals: u8, @@ -129,46 +133,57 @@ impl Contract { pub fn required_balance_for_account(&self) -> NearToken { let key_len = Self::max_key_len_of_account_id(); - let value_len = borsh::to_vec(&StorageBalance { + let value_len: u64 = borsh::to_vec(&StorageBalance { total: NearToken::from_yoctonear(0), available: NearToken::from_yoctonear(0), }) .sdk_expect("ERR_BORSH") - .len() as u64; + .len() + .try_into() + .sdk_expect("ERR_CAST"); env::storage_byte_cost() .saturating_mul((Self::get_basic_storage() + key_len + value_len).into()) } pub fn required_balance_for_init_transfer(&self) -> NearToken { - let key_len = borsh::to_vec(&TransferId::default()) - .sdk_expect("ERR_BORSH") - .len() as u64; let max_account_id: AccountId = "a".repeat(64).parse().sdk_expect("ERR_PARSE_ACCOUNT_ID"); - let value_len = borsh::to_vec(&TransferMessageStorage::V0(TransferMessageStorageValue { - message: TransferMessage { - origin_nonce: 0, - token: OmniAddress::Near(max_account_id.clone()), - amount: U128(0), - recipient: OmniAddress::Near(max_account_id.clone()), - fee: Fee::default(), - sender: OmniAddress::Near(max_account_id.clone()), - msg: String::new(), - destination_nonce: 0, - }, - owner: max_account_id, - })) - .sdk_expect("ERR_BORSH") - .len() as u64; + + let key_len: u64 = borsh::to_vec(&TransferId::default()) + .sdk_expect("ERR_BORSH") + .len() + .try_into() + .sdk_expect("ERR_CAST"); + + let value_len: u64 = + borsh::to_vec(&TransferMessageStorage::V0(TransferMessageStorageValue { + message: TransferMessage { + origin_nonce: 0, + token: OmniAddress::Near(max_account_id.clone()), + amount: U128(0), + recipient: OmniAddress::Near(max_account_id.clone()), + fee: Fee::default(), + sender: OmniAddress::Near(max_account_id.clone()), + msg: String::new(), + destination_nonce: 0, + }, + owner: max_account_id, + })) + .sdk_expect("ERR_BORSH") + .len() + .try_into() + .sdk_expect("ERR_CAST"); env::storage_byte_cost() .saturating_mul((Self::get_basic_storage() + key_len + value_len).into()) } pub fn required_balance_for_fin_transfer(&self) -> NearToken { - let key_len = borsh::to_vec(&(ChainKind::Eth, 0_u128)) + let key_len: u64 = borsh::to_vec(&(ChainKind::Eth, 0_u128)) .sdk_expect("ERR_BORSH") - .len() as u64; + .len() + .try_into() + .sdk_expect("ERR_CAST"); let storage_cost = env::storage_byte_cost().saturating_mul((Self::get_basic_storage() + key_len).into()); @@ -180,13 +195,17 @@ impl Contract { pub fn required_balance_for_bind_token(&self) -> NearToken { let max_token_id: AccountId = "a".repeat(64).parse().sdk_expect("ERR_PARSE_ACCOUNT_ID"); - let key_len = borsh::to_vec(&(ChainKind::Near, &max_token_id)) + let key_len: u64 = borsh::to_vec(&(ChainKind::Near, &max_token_id)) .sdk_expect("ERR_BORSH") - .len() as u64; + .len() + .try_into() + .sdk_expect("ERR_CAST"); - let value_len = borsh::to_vec(&OmniAddress::Near(max_token_id)) + let value_len: u64 = borsh::to_vec(&OmniAddress::Near(max_token_id)) .sdk_expect("ERR_BORSH") - .len() as u64; + .len() + .try_into() + .sdk_expect("ERR_CAST"); env::storage_byte_cost() .saturating_mul((3 * (Self::get_basic_storage() + key_len + value_len)).into()) @@ -212,6 +231,11 @@ impl Contract { fn max_key_len_of_account_id() -> u64 { let max_account_id: AccountId = "a".repeat(64).parse().sdk_expect("ERR_PARSE_ACCOUNT_ID"); - borsh::to_vec(&max_account_id).sdk_expect("ERR_BORSH").len() as u64 + + borsh::to_vec(&max_account_id) + .sdk_expect("ERR_BORSH") + .len() + .try_into() + .sdk_expect("ERR_CAST") } } diff --git a/near/omni-bridge/src/tests/lib_test.rs b/near/omni-bridge/src/tests/lib_test.rs index 3e3e8a01..d48de251 100644 --- a/near/omni-bridge/src/tests/lib_test.rs +++ b/near/omni-bridge/src/tests/lib_test.rs @@ -1,20 +1,22 @@ -use near_contract_standards::storage_management::StorageBalance; -use omni_types::locker_args::StorageDepositAction; +use std::collections::HashMap; +use std::str::FromStr; + +use near_contract_standards::{ + fungible_token::receiver::FungibleTokenReceiver, storage_management::StorageBalance, +}; +use near_sdk::{ + borsh, json_types::U128, serde_json, test_utils::VMContextBuilder, test_vm_config, testing_env, + AccountId, NearToken, PromiseOrValue, PromiseResult, RuntimeFeesConfig, +}; +use omni_types::{ + locker_args::StorageDepositAction, + prover_result::{InitTransferMessage, ProverResult}, + ChainKind, EvmAddress, Fee, InitTransferMsg, Nonce, OmniAddress, TransferId, TransferMessage, + UpdateFee, +}; use crate::storage::Decimals; use crate::Contract; -use near_sdk::test_utils::VMContextBuilder; -use near_sdk::RuntimeFeesConfig; -use near_sdk::{test_vm_config, testing_env}; -use omni_types::prover_result::{InitTransferMessage, ProverResult}; -use omni_types::{EvmAddress, Nonce, TransferId}; -use std::str::FromStr; - -use near_contract_standards::fungible_token::receiver::FungibleTokenReceiver; -use near_sdk::borsh; -use near_sdk::json_types::U128; -use near_sdk::{serde_json, AccountId, NearToken, PromiseOrValue, PromiseResult}; -use omni_types::{ChainKind, Fee, InitTransferMsg, OmniAddress, TransferMessage, UpdateFee}; const DEFAULT_NONCE: Nonce = 0; const DEFAULT_TRANSFER_ID: TransferId = TransferId { @@ -46,7 +48,7 @@ fn setup_test_env( context, test_vm_config(), RuntimeFeesConfig::test(), - Default::default(), + HashMap::default(), results, ); } else { @@ -79,9 +81,9 @@ fn run_storage_deposit( contract.storage_deposit(Some(account_id)); } -fn get_init_transfer_msg(recipient: String, fee: u128, native_token_fee: u128) -> InitTransferMsg { +fn get_init_transfer_msg(recipient: &str, fee: u128, native_token_fee: u128) -> InitTransferMsg { InitTransferMsg { - recipient: OmniAddress::Eth(EvmAddress::from_str(&recipient).unwrap()), + recipient: OmniAddress::Eth(EvmAddress::from_str(recipient).unwrap()), fee: U128(fee), native_token_fee: U128(native_token_fee), } @@ -93,18 +95,17 @@ fn run_ft_on_transfer( token_id: String, amount: U128, attached_deposit: Option, - msg: InitTransferMsg, + msg: &InitTransferMsg, ) -> PromiseOrValue { let sender_id = AccountId::try_from(sender_id).expect("Invalid sender ID"); let token_id = AccountId::try_from(token_id).expect("Invalid token ID"); - let attached_deposit = match attached_deposit { - Some(deposit) => deposit, - None => { - let min_storage_balance = contract.required_balance_for_account(); - let init_transfer_balance = contract.required_balance_for_init_transfer(); - min_storage_balance.saturating_add(init_transfer_balance) - } + let attached_deposit = if let Some(deplosit) = attached_deposit { + deplosit + } else { + let min_storage_balance = contract.required_balance_for_account(); + let init_transfer_balance = contract.required_balance_for_init_transfer(); + min_storage_balance.saturating_add(init_transfer_balance) }; run_storage_deposit(contract, sender_id.clone(), attached_deposit); @@ -135,7 +136,7 @@ fn test_ft_on_transfer_nonce_increment() { DEFAULT_FT_CONTRACT_ACCOUNT.to_string(), U128(100), None, - get_init_transfer_msg(DEFAULT_ETH_USER_ADDRESS.to_string(), 0, 0), + &get_init_transfer_msg(DEFAULT_ETH_USER_ADDRESS, 0, 0), ); assert_eq!(contract.current_origin_nonce, DEFAULT_NONCE + 1); @@ -145,14 +146,14 @@ fn test_ft_on_transfer_nonce_increment() { fn test_ft_on_transfer_stored_transfer_message() { let mut contract = get_default_contract(); - let msg = get_init_transfer_msg(DEFAULT_ETH_USER_ADDRESS.to_string(), 0, 0); + let msg = get_init_transfer_msg(DEFAULT_ETH_USER_ADDRESS, 0, 0); run_ft_on_transfer( &mut contract, DEFAULT_NEAR_USER_ACCOUNT.to_string(), DEFAULT_FT_CONTRACT_ACCOUNT.to_string(), U128(DEFAULT_TRANSFER_AMOUNT), None, - msg.clone(), + &msg, ); let stored_transfer = contract.get_transfer_message(TransferId { @@ -195,7 +196,7 @@ fn test_ft_on_transfer_promise_result() { DEFAULT_FT_CONTRACT_ACCOUNT.to_string(), U128(DEFAULT_TRANSFER_AMOUNT), None, - get_init_transfer_msg(DEFAULT_ETH_USER_ADDRESS.to_string(), 0, 0), + &get_init_transfer_msg(DEFAULT_ETH_USER_ADDRESS, 0, 0), ); let remaining = match promise { @@ -215,11 +216,7 @@ fn test_ft_on_transfer_invalid_fee() { DEFAULT_FT_CONTRACT_ACCOUNT.to_string(), U128(DEFAULT_TRANSFER_AMOUNT), None, - get_init_transfer_msg( - DEFAULT_ETH_USER_ADDRESS.to_string(), - DEFAULT_TRANSFER_AMOUNT + 1, - 0, - ), + &get_init_transfer_msg(DEFAULT_ETH_USER_ADDRESS, DEFAULT_TRANSFER_AMOUNT + 1, 0), ); } @@ -237,7 +234,7 @@ fn test_ft_on_transfer_balance_updated() { DEFAULT_FT_CONTRACT_ACCOUNT.to_string(), U128(DEFAULT_TRANSFER_AMOUNT), Some(total_balance), - get_init_transfer_msg(DEFAULT_ETH_USER_ADDRESS.to_string(), 0, 0), + &get_init_transfer_msg(DEFAULT_ETH_USER_ADDRESS, 0, 0), ); let storage_balance = contract @@ -253,7 +250,7 @@ fn test_ft_on_transfer_balance_updated() { fn run_update_transfer_fee( contract: &mut Contract, sender_id: String, - init_fee: Fee, + init_fee: &Fee, new_fee: UpdateFee, attached_deposit: Option, ) { @@ -268,7 +265,7 @@ fn run_update_transfer_fee( recipient: OmniAddress::Eth(EvmAddress::from_str(DEFAULT_ETH_USER_ADDRESS).unwrap()), fee: init_fee.clone(), sender: OmniAddress::Near(sender_id.clone().parse().unwrap()), - msg: "".to_string(), + msg: String::new(), destination_nonce: 1, }; @@ -281,7 +278,7 @@ fn run_update_transfer_fee( UpdateFee::Fee(new_fee) => { NearToken::from_yoctonear(new_fee.native_fee.0.saturating_sub(init_fee.native_fee.0)) } - _ => panic!("Not supported fee type"), + UpdateFee::Proof(_) => panic!("Not supported fee type"), }); setup_test_env( @@ -304,7 +301,7 @@ fn test_update_transfer_fee_same_fee() { run_update_transfer_fee( &mut contract, DEFAULT_NEAR_USER_ACCOUNT.to_string(), - fee.clone(), + &fee, UpdateFee::Fee(fee.clone()), Some(NearToken::from_yoctonear(0)), ); @@ -330,7 +327,7 @@ fn test_update_transfer_fee_valid() { run_update_transfer_fee( &mut contract, DEFAULT_NEAR_USER_ACCOUNT.to_string(), - fee.clone(), + &fee, UpdateFee::Fee(new_fee.clone()), None, ); @@ -357,7 +354,7 @@ fn test_update_transfer_fee_exceeds_amount() { run_update_transfer_fee( &mut contract, DEFAULT_NEAR_USER_ACCOUNT.to_string(), - init_fee, + &init_fee, UpdateFee::Fee(new_fee), None, ); @@ -381,7 +378,7 @@ fn test_update_transfer_fee_lower_native_fee() { run_update_transfer_fee( &mut contract, DEFAULT_NEAR_USER_ACCOUNT.to_string(), - init_fee, + &init_fee, UpdateFee::Fee(new_fee), None, ); @@ -406,7 +403,7 @@ fn test_update_transfer_fee_invalid_deposit() { run_update_transfer_fee( &mut contract, DEFAULT_NEAR_USER_ACCOUNT.to_string(), - init_fee, + &init_fee, UpdateFee::Fee(new_fee), Some(NearToken::from_yoctonear(2)), // Wrong deposit amount ); @@ -430,7 +427,7 @@ fn test_update_transfer_fee_wrong_sender() { run_update_transfer_fee( &mut contract, DEFAULT_NEAR_USER_ACCOUNT.to_string(), // Original sender - init_fee, + &init_fee, UpdateFee::Fee(new_fee.clone()), None, ); @@ -469,7 +466,7 @@ fn get_prover_result(recipient: Option) -> ProverResult { native_fee: U128(5), }, sender: OmniAddress::Eth(EvmAddress::from_str(DEFAULT_ETH_USER_ADDRESS).unwrap()), - msg: "".to_string(), + msg: String::new(), emitter_address: OmniAddress::Eth(EvmAddress::from_str(DEFAULT_ETH_USER_ADDRESS).unwrap()), }) } @@ -623,7 +620,7 @@ fn test_fin_transfer_callback_invalid_proof() { .build(), test_vm_config(), RuntimeFeesConfig::test(), - Default::default(), + HashMap::default(), vec![PromiseResult::Failed], ); @@ -646,7 +643,7 @@ fn test_fin_transfer_callback_unknown_factory() { .build(), test_vm_config(), RuntimeFeesConfig::test(), - Default::default(), + HashMap::default(), vec![PromiseResult::Successful( borsh::to_vec(&get_prover_result(None)).unwrap() )], @@ -728,7 +725,7 @@ fn test_denormalize_amount() { origin_decimals: 24 } ), - u64::MAX as u128 * 1_000_000_u128 + u128::from(u64::MAX) * 1_000_000_u128 ); assert_eq!( @@ -739,6 +736,6 @@ fn test_denormalize_amount() { origin_decimals: 24 } ), - u64::MAX as u128 * 1_000_000_000_000_000_u128 + u128::from(u64::MAX) * 1_000_000_000_000_000_u128 ); } diff --git a/near/omni-prover/evm-prover/Cargo.toml b/near/omni-prover/evm-prover/Cargo.toml index b6e876fd..80938a2b 100644 --- a/near/omni-prover/evm-prover/Cargo.toml +++ b/near/omni-prover/evm-prover/Cargo.toml @@ -3,6 +3,24 @@ name = "evm-prover" version = "0.1.0" authors = ["Karim Alabtakh "] edition = "2021" +repository.workspace = true + +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-prover/evm-prover/src/lib.rs b/near/omni-prover/evm-prover/src/lib.rs index 40b49629..2f3e402d 100644 --- a/near/omni-prover/evm-prover/src/lib.rs +++ b/near/omni-prover/evm-prover/src/lib.rs @@ -1,5 +1,7 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; -use near_sdk::{env, ext_contract, near_bindgen, require, AccountId, Gas, PanicOnDefault, Promise}; +use borsh::BorshDeserialize; +use near_sdk::{ + env, ext_contract, near, near_bindgen, require, AccountId, Gas, PanicOnDefault, Promise, +}; use omni_types::evm::events::parse_evm_event; use omni_types::evm::header::BlockHeader; use omni_types::evm::receipt::{LogEntry, Receipt}; @@ -23,8 +25,8 @@ pub trait EvmClient { fn block_hash_safe(&self, #[serializer(borsh)] index: u64) -> Option; } -#[near_bindgen] -#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)] +#[near(contract_state)] +#[derive(PanicOnDefault)] pub struct EvmProver { pub light_client: AccountId, pub chain_kind: ChainKind, diff --git a/near/omni-prover/omni-prover/Cargo.toml b/near/omni-prover/omni-prover/Cargo.toml index 9baabb35..c4f6d947 100644 --- a/near/omni-prover/omni-prover/Cargo.toml +++ b/near/omni-prover/omni-prover/Cargo.toml @@ -3,6 +3,24 @@ name = "omni-prover" version = "2.0.0" authors = ["Near Inc "] edition = "2021" +repository.workspace = true + +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-prover/omni-prover/src/lib.rs b/near/omni-prover/omni-prover/src/lib.rs index 5a664616..2f07a17c 100644 --- a/near/omni-prover/omni-prover/src/lib.rs +++ b/near/omni-prover/omni-prover/src/lib.rs @@ -33,8 +33,8 @@ enum StorageKey { RegisteredProvers, } -#[near_bindgen] -#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault, Pausable, Upgradable)] +#[near(contract_state)] +#[derive(PanicOnDefault, Pausable, Upgradable)] #[access_control(role_type(Role))] #[pausable(manager_roles(Role::PauseManager, Role::DAO))] #[upgradable(access_control_roles( diff --git a/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml b/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml index ed289810..1da7d72d 100644 --- a/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml +++ b/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml @@ -3,6 +3,24 @@ name = "wormhole-omni-prover-proxy" version = "2.0.0" authors = ["Near Inc "] edition = "2021" +repository.workspace = true + +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-prover/wormhole-omni-prover-proxy/src/lib.rs b/near/omni-prover/wormhole-omni-prover-proxy/src/lib.rs index 3b413398..c46940cb 100644 --- a/near/omni-prover/wormhole-omni-prover-proxy/src/lib.rs +++ b/near/omni-prover/wormhole-omni-prover-proxy/src/lib.rs @@ -1,6 +1,7 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::BorshDeserialize; use near_sdk::{ - env, ext_contract, near_bindgen, require, AccountId, Gas, PanicOnDefault, Promise, PromiseError, + env, ext_contract, near, near_bindgen, require, AccountId, Gas, PanicOnDefault, Promise, + PromiseError, }; use omni_types::prover_args::WormholeVerifyProofArgs; use omni_types::prover_result::{ProofKind, ProverResult}; @@ -16,8 +17,8 @@ pub trait Prover { fn verify_vaa(&self, vaa: &str) -> u32; } -#[near_bindgen] -#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)] +#[near(contract_state)] +#[derive(PanicOnDefault)] pub struct WormholeOmniProverProxy { pub prover_account: AccountId, } @@ -71,7 +72,7 @@ impl WormholeOmniProverProxy { let parsed_vaa = parsed_vaa::ParsedVAA::parse(&h); require!( - proof_kind as u8 == parsed_vaa.payload[0], + u8::from(proof_kind) == parsed_vaa.payload[0], "Invalid proof kind" ); diff --git a/near/omni-prover/wormhole-omni-prover-proxy/src/parsed_vaa.rs b/near/omni-prover/wormhole-omni-prover-proxy/src/parsed_vaa.rs index 01f524a3..92232b7c 100644 --- a/near/omni-prover/wormhole-omni-prover-proxy/src/parsed_vaa.rs +++ b/near/omni-prover/wormhole-omni-prover-proxy/src/parsed_vaa.rs @@ -71,7 +71,7 @@ impl ParsedVAA { // Load 4 bytes starting from index 1 let guardian_set_index: u32 = data.get_u32(Self::GUARDIAN_SET_INDEX_POS); - let len_signers = data.get_u8(Self::LEN_SIGNER_POS) as usize; + let len_signers = data.get_u8(Self::LEN_SIGNER_POS).into(); let body_offset: usize = Self::HEADER_LEN + Self::SIGNATURE_LEN * len_signers; // Hash the body diff --git a/near/omni-tests/Cargo.toml b/near/omni-tests/Cargo.toml index cbbbb642..45a0f05c 100644 --- a/near/omni-tests/Cargo.toml +++ b/near/omni-tests/Cargo.toml @@ -9,9 +9,10 @@ publish = false crate-type = ["cdylib", "rlib"] [dev-dependencies] +cargo-near-build.workspace = true near-sdk.workspace = true near-workspaces.workspace = true tokio.workspace = true anyhow.workspace = true omni-types.workspace = true -rstest.workspace = true \ No newline at end of file +rstest.workspace = true diff --git a/near/omni-tests/src/fin_transfer.rs b/near/omni-tests/src/fin_transfer.rs index f3bb8bcd..944fac61 100644 --- a/near/omni-tests/src/fin_transfer.rs +++ b/near/omni-tests/src/fin_transfer.rs @@ -1,9 +1,5 @@ #[cfg(test)] mod tests { - use crate::helpers::tests::{ - account_n, eth_eoa_address, eth_factory_address, eth_token_address, relayer_account_id, - LOCKER_PATH, MOCK_PROVER_PATH, MOCK_TOKEN_PATH, NEP141_DEPOSIT, - }; use near_sdk::{borsh, json_types::U128, serde_json::json, AccountId}; use near_workspaces::types::NearToken; use omni_types::{ @@ -13,6 +9,11 @@ mod tests { }; use rstest::rstest; + use crate::helpers::tests::{ + account_n, eth_eoa_address, eth_factory_address, eth_token_address, locker_wasm, + mock_prover_wasm, mock_token_wasm, relayer_account_id, NEP141_DEPOSIT, + }; + #[rstest] #[case(vec![(account_n(1), true), (relayer_account_id(), true)], 1000, 1, None)] #[case(vec![(account_n(1), true)], 1000, 0, None)] @@ -64,8 +65,19 @@ mod tests { #[case] amount: u128, #[case] fee: u128, #[case] expected_error: Option<&str>, + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, ) { - let result = test_fin_transfer(storage_deposit_accounts, amount, fee).await; + let result = test_fin_transfer( + storage_deposit_accounts, + amount, + fee, + mock_token_wasm, + mock_prover_wasm, + locker_wasm, + ) + .await; match result { Ok(_) => assert!( @@ -73,9 +85,9 @@ mod tests { "Expected an error but got success" ), Err(result_error) => { - let error = expected_error.expect(&format!( - "Got an error {result_error} when none was expected" - )); + let error = expected_error.unwrap_or_else(|| { + panic!("Got an error {result_error} when none was expected") + }); assert!( result_error.to_string().contains(error), "Wrong error. Got: {}, Expected: {}", @@ -90,10 +102,14 @@ mod tests { storage_deposit_accounts: Vec<(AccountId, bool)>, amount: u128, fee: u128, + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, ) -> anyhow::Result<()> { let worker = near_workspaces::sandbox().await?; + // Deploy and init FT token - let token_contract = worker.dev_deploy(&std::fs::read(MOCK_TOKEN_PATH)?).await?; + let token_contract = worker.dev_deploy(&mock_token_wasm).await?; token_contract .call("new_default_meta") .args_json(json!({ @@ -105,9 +121,10 @@ mod tests { .await? .into_result()?; - let prover_contract = worker.dev_deploy(&std::fs::read(MOCK_PROVER_PATH)?).await?; + let prover_contract = worker.dev_deploy(&mock_prover_wasm).await?; + // Deploy and init locker - let locker_contract = worker.dev_deploy(&std::fs::read(LOCKER_PATH)?).await?; + let locker_contract = worker.dev_deploy(&locker_wasm).await?; locker_contract .call("new") .args_json(json!({ diff --git a/near/omni-tests/src/helpers.rs b/near/omni-tests/src/helpers.rs index 72d667f0..bc0276b3 100644 --- a/near/omni-tests/src/helpers.rs +++ b/near/omni-tests/src/helpers.rs @@ -1,5 +1,7 @@ #[cfg(test)] pub mod tests { + use std::{path::Path, str::FromStr}; + use near_sdk::{borsh, json_types::U128, serde_json, AccountId}; use near_workspaces::types::NearToken; use omni_types::{ @@ -7,14 +9,55 @@ pub mod tests { prover_result::{DeployTokenMessage, FinTransferMessage, LogMetadataMessage, ProverResult}, BasicMetadata, ChainKind, Nonce, OmniAddress, TransferId, }; + use rstest::fixture; - pub const MOCK_TOKEN_PATH: &str = "./../target/wasm32-unknown-unknown/release/mock_token.wasm"; - pub const MOCK_PROVER_PATH: &str = - "./../target/wasm32-unknown-unknown/release/mock_prover.wasm"; - pub const LOCKER_PATH: &str = "./../target/wasm32-unknown-unknown/release/omni_bridge.wasm"; pub const NEP141_DEPOSIT: NearToken = NearToken::from_yoctonear(1250000000000000000000); - pub const TOKEN_DEPLOYER_PATH: &str = - "./../target/wasm32-unknown-unknown/release/token_deployer.wasm"; + + fn build_wasm(path: &str, target_dir: &str) -> Vec { + let pwd = Path::new("./").canonicalize().expect("new path"); + let sub_target = pwd.join(format!("target/{}", target_dir)); + + let artifact = cargo_near_build::build(cargo_near_build::BuildOpts { + manifest_path: Some( + cargo_near_build::camino::Utf8PathBuf::from_str(path) + .expect("camino PathBuf from str"), + ), + override_cargo_target_dir: Some(sub_target.to_string_lossy().to_string()), + ..Default::default() + }) + .unwrap_or_else(|_| panic!("building contract from {}", path)); + + std::fs::read(&artifact.path).unwrap() + } + + #[fixture] + pub fn mock_token_wasm() -> Vec { + build_wasm( + "../mock/mock-token/Cargo.toml", + "test-target-for-mock-token", + ) + } + + #[fixture] + pub fn mock_prover_wasm() -> Vec { + build_wasm( + "../mock/mock-prover/Cargo.toml", + "test-target-for-mock-prover", + ) + } + + #[fixture] + pub fn locker_wasm() -> Vec { + build_wasm("../omni-bridge/Cargo.toml", "test-target-for-locker") + } + + #[fixture] + pub fn token_deployer_wasm() -> Vec { + build_wasm( + "../token-deployer/Cargo.toml", + "test-target-for-token-deployer", + ) + } pub fn relayer_account_id() -> AccountId { "relayer".parse().unwrap() @@ -84,8 +127,8 @@ pub mod tests { ) -> ClaimFeeArgs { let fin_transfer = FinTransferMessage { transfer_id: TransferId { - origin_chain: origin_chain, - origin_nonce: origin_nonce, + origin_chain, + origin_nonce, }, fee_recipient: fee_recipient.clone(), amount: U128(amount), diff --git a/near/omni-tests/src/init_transfer.rs b/near/omni-tests/src/init_transfer.rs index 4e0b13bb..b669f227 100644 --- a/near/omni-tests/src/init_transfer.rs +++ b/near/omni-tests/src/init_transfer.rs @@ -1,10 +1,5 @@ #[cfg(test)] mod tests { - use crate::helpers::tests::{ - account_n, eth_eoa_address, eth_factory_address, eth_token_address, get_bind_token_args, - get_claim_fee_args_near, get_event_data, relayer_account_id, LOCKER_PATH, MOCK_PROVER_PATH, - MOCK_TOKEN_PATH, NEP141_DEPOSIT, - }; use anyhow::Ok; use near_sdk::{ json_types::U128, @@ -15,6 +10,13 @@ mod tests { near_events::OmniBridgeEvent, ChainKind, Fee, InitTransferMsg, OmniAddress, TransferId, TransferMessage, UpdateFee, }; + use rstest::rstest; + + use crate::helpers::tests::{ + account_n, eth_eoa_address, eth_factory_address, eth_token_address, get_bind_token_args, + get_claim_fee_args_near, get_event_data, locker_wasm, mock_prover_wasm, mock_token_wasm, + relayer_account_id, NEP141_DEPOSIT, + }; const DEFAULT_NEAR_SANDBOX_BALANCE: NearToken = NearToken::from_near(100); const EXPECTED_RELAYER_GAS_COST: NearToken = @@ -30,10 +32,15 @@ mod tests { } impl TestEnv { - async fn new(sender_balance_token: u128) -> anyhow::Result { + async fn new( + sender_balance_token: u128, + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, + ) -> anyhow::Result { let worker = near_workspaces::sandbox().await?; // Deploy and initialize FT token - let token_contract = worker.dev_deploy(&std::fs::read(MOCK_TOKEN_PATH)?).await?; + let token_contract = worker.dev_deploy(&mock_token_wasm).await?; token_contract .call("new_default_meta") .args_json(json!({ @@ -45,9 +52,9 @@ mod tests { .await? .into_result()?; - let prover_contract = worker.dev_deploy(&std::fs::read(MOCK_PROVER_PATH)?).await?; + let prover_contract = worker.dev_deploy(&mock_prover_wasm).await?; // Deploy and initialize locker - let locker_contract = worker.dev_deploy(&std::fs::read(LOCKER_PATH)?).await?; + let locker_contract = worker.dev_deploy(&locker_wasm).await?; locker_contract .call("new") .args_json(json!({ @@ -146,7 +153,7 @@ mod tests { locker_contract .call("bind_token") .args_borsh(get_bind_token_args( - &token_contract.id(), + token_contract.id(), ð_token_address(), ð_factory_address, 24, @@ -259,7 +266,7 @@ mod tests { let claim_fee_args = get_claim_fee_args_near( ChainKind::Near, ChainKind::Eth, - transfer_message.origin_nonce.into(), + transfer_message.origin_nonce, env.relayer_account.id().clone(), transfer_amount - signing_fee.fee.0, env.eth_factory_address.clone(), @@ -338,8 +345,7 @@ mod tests { update_fee .native_fee .0 - .checked_sub(transfer_message.fee.native_fee.0) - .unwrap_or(0), + .saturating_sub(transfer_message.fee.native_fee.0), ), // To be updated once the proof is implemented UpdateFee::Proof(_) => NearToken::from_yoctonear(0), @@ -373,11 +379,11 @@ mod tests { } async fn get_test_balances(env: &TestEnv) -> anyhow::Result<(U128, U128, U128, NearToken)> { let user_balance_token: U128 = - get_token_balance(&env.token_contract, &env.sender_account.id()).await?; + get_token_balance(&env.token_contract, env.sender_account.id()).await?; let locker_balance_token: U128 = - get_token_balance(&env.token_contract, &env.locker_contract.id()).await?; + get_token_balance(&env.token_contract, env.locker_contract.id()).await?; let relayer_balance_token: U128 = - get_token_balance(&env.token_contract, &env.relayer_account.id()).await?; + get_token_balance(&env.token_contract, env.relayer_account.id()).await?; let relayer_balance_near: NearToken = env .worker .view_account(env.relayer_account.id()) @@ -391,8 +397,14 @@ mod tests { relayer_balance_near, )) } + + #[rstest] #[tokio::test] - async fn test_native_fee() -> anyhow::Result<()> { + async fn test_native_fee( + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, + ) -> anyhow::Result<()> { let sender_balance_token = 1_000_000; let transfer_amount = 100; let init_transfer_msg = InitTransferMsg { @@ -401,7 +413,13 @@ mod tests { recipient: eth_eoa_address(), }; - let env = TestEnv::new(sender_balance_token).await?; + let env = TestEnv::new( + sender_balance_token, + mock_token_wasm, + mock_prover_wasm, + locker_wasm, + ) + .await?; init_transfer_flow_on_near( &env, @@ -436,8 +454,13 @@ mod tests { Ok(()) } + #[rstest] #[tokio::test] - async fn test_transfer_fee() -> anyhow::Result<()> { + async fn test_transfer_fee( + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, + ) -> anyhow::Result<()> { let sender_balance_token = 1_000_000; let transfer_amount = 5000; let init_transfer_msg = InitTransferMsg { @@ -446,7 +469,13 @@ mod tests { recipient: eth_eoa_address(), }; - let env = TestEnv::new(sender_balance_token).await?; + let env = TestEnv::new( + sender_balance_token, + mock_token_wasm, + mock_prover_wasm, + locker_wasm, + ) + .await?; init_transfer_flow_on_near( &env, @@ -479,8 +508,13 @@ mod tests { Ok(()) } + #[rstest] #[tokio::test] - async fn test_both_fee() -> anyhow::Result<()> { + async fn test_both_fee( + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, + ) -> anyhow::Result<()> { let sender_balance_token = 1_000_000; let transfer_amount = 5000; let init_transfer_msg = InitTransferMsg { @@ -489,7 +523,13 @@ mod tests { recipient: eth_eoa_address(), }; - let env = TestEnv::new(sender_balance_token).await?; + let env = TestEnv::new( + sender_balance_token, + mock_token_wasm, + mock_prover_wasm, + locker_wasm, + ) + .await?; init_transfer_flow_on_near( &env, @@ -531,8 +571,13 @@ mod tests { Ok(()) } + #[rstest] #[tokio::test] - async fn test_update_fee() -> anyhow::Result<()> { + async fn test_update_fee( + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, + ) -> anyhow::Result<()> { let sender_balance_token = 1_000_000; let transfer_amount = 5000; let init_transfer_msg = InitTransferMsg { @@ -546,7 +591,13 @@ mod tests { }; let update_fee = UpdateFee::Fee(update_fee_value.clone()); - let env = TestEnv::new(sender_balance_token).await?; + let env = TestEnv::new( + sender_balance_token, + mock_token_wasm, + mock_prover_wasm, + locker_wasm, + ) + .await?; init_transfer_flow_on_near( &env, @@ -588,8 +639,13 @@ mod tests { Ok(()) } + #[rstest] #[tokio::test] - async fn test_relayer_sign() -> anyhow::Result<()> { + async fn test_relayer_sign( + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, + ) -> anyhow::Result<()> { let sender_balance_token = 1_000_000; let transfer_amount = 100; let init_transfer_msg = InitTransferMsg { @@ -598,7 +654,13 @@ mod tests { recipient: eth_eoa_address(), }; - let env = TestEnv::new(sender_balance_token).await?; + let env = TestEnv::new( + sender_balance_token, + mock_token_wasm, + mock_prover_wasm, + locker_wasm, + ) + .await?; init_transfer_flow_on_near( &env, @@ -634,9 +696,14 @@ mod tests { Ok(()) } + #[rstest] #[tokio::test] #[should_panic(expected = "ERR_LOWER_FEE")] - async fn test_update_fee_native_too_small() { + async fn test_update_fee_native_too_small( + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, + ) { let sender_balance_token = 1_000_000; let transfer_amount = 5000; let init_transfer_msg = InitTransferMsg { @@ -650,7 +717,14 @@ mod tests { }; let update_fee = UpdateFee::Fee(update_fee_value.clone()); - let env = TestEnv::new(sender_balance_token).await.unwrap(); + let env = TestEnv::new( + sender_balance_token, + mock_token_wasm, + mock_prover_wasm, + locker_wasm, + ) + .await + .unwrap(); init_transfer_flow_on_near( &env, @@ -662,12 +736,16 @@ mod tests { ) .await .unwrap(); - () } + #[rstest] #[tokio::test] #[should_panic(expected = "ERR_INVALID_FEE")] - async fn test_update_fee_transfer_fee_too_small() { + async fn test_update_fee_transfer_fee_too_small( + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, + ) { let sender_balance_token = 1_000_000; let transfer_amount = 5000; let init_transfer_msg = InitTransferMsg { @@ -681,7 +759,14 @@ mod tests { }; let update_fee = UpdateFee::Fee(update_fee_value.clone()); - let env = TestEnv::new(sender_balance_token).await.unwrap(); + let env = TestEnv::new( + sender_balance_token, + mock_token_wasm, + mock_prover_wasm, + locker_wasm, + ) + .await + .unwrap(); init_transfer_flow_on_near( &env, @@ -695,9 +780,14 @@ mod tests { .unwrap(); } + #[rstest] #[tokio::test] #[should_panic(expected = "ERR_INVALID_FEE")] - async fn test_update_fee_transfer_fee_too_big() { + async fn test_update_fee_transfer_fee_too_big( + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, + ) { let sender_balance_token = 1_000_000; let transfer_amount = 5000; let init_transfer_msg = InitTransferMsg { @@ -711,7 +801,14 @@ mod tests { }; let update_fee = UpdateFee::Fee(update_fee_value.clone()); - let env = TestEnv::new(sender_balance_token).await.unwrap(); + let env = TestEnv::new( + sender_balance_token, + mock_token_wasm, + mock_prover_wasm, + locker_wasm, + ) + .await + .unwrap(); init_transfer_flow_on_near( &env, @@ -725,10 +822,15 @@ mod tests { .unwrap(); } + #[rstest] #[tokio::test] #[should_panic(expected = "TODO")] // Add a test once the Proof update fee is implemented - async fn test_update_fee_proof() { + async fn test_update_fee_proof( + mock_token_wasm: Vec, + mock_prover_wasm: Vec, + locker_wasm: Vec, + ) { let sender_balance_token = 1_000_000; let transfer_amount = 5000; let init_transfer_msg = InitTransferMsg { @@ -738,7 +840,14 @@ mod tests { }; let update_fee = UpdateFee::Proof(vec![]); - let env = TestEnv::new(sender_balance_token).await.unwrap(); + let env = TestEnv::new( + sender_balance_token, + mock_token_wasm, + mock_prover_wasm, + locker_wasm, + ) + .await + .unwrap(); init_transfer_flow_on_near( &env, diff --git a/near/omni-tests/src/omni_token.rs b/near/omni-tests/src/omni_token.rs index 2a24c778..207f5db6 100644 --- a/near/omni-tests/src/omni_token.rs +++ b/near/omni-tests/src/omni_token.rs @@ -1,12 +1,7 @@ #[cfg(test)] mod tests { - use crate::helpers::tests::{ - account_n, arb_factory_address, arb_token_address, base_factory_address, - base_token_address, eth_eoa_address, eth_factory_address, eth_token_address, - get_test_deploy_token_args, sol_factory_address, sol_token_address, LOCKER_PATH, - MOCK_PROVER_PATH, NEP141_DEPOSIT, TOKEN_DEPLOYER_PATH, - }; - use anyhow; + use std::str::FromStr; + use near_sdk::borsh; use near_sdk::json_types::U128; use near_sdk::serde_json::json; @@ -17,11 +12,17 @@ mod tests { use omni_types::Fee; use omni_types::{BasicMetadata, ChainKind, OmniAddress}; use rstest::rstest; - use std::str::FromStr; + + use crate::helpers::tests::{ + account_n, arb_factory_address, arb_token_address, base_factory_address, + base_token_address, eth_eoa_address, eth_factory_address, eth_token_address, + get_test_deploy_token_args, locker_wasm, mock_prover_wasm, sol_factory_address, + sol_token_address, token_deployer_wasm, NEP141_DEPOSIT, + }; struct TestEnv { worker: near_workspaces::Worker, - locker: near_workspaces::Contract, + locker_contract: near_workspaces::Contract, token_contract: near_workspaces::Contract, init_token_address: OmniAddress, factory_contract_address: OmniAddress, @@ -29,7 +30,12 @@ mod tests { } impl TestEnv { - async fn new(init_token_address: OmniAddress) -> anyhow::Result { + async fn new( + init_token_address: OmniAddress, + mock_prover_wasm: Vec, + locker_wasm: Vec, + token_deployer_wasm: Vec, + ) -> anyhow::Result { let worker = near_workspaces::sandbox().await?; let token_metadata = BasicMetadata { name: "Test Token".to_string(), @@ -38,11 +44,11 @@ mod tests { }; // Setup prover - let prover_contract = worker.dev_deploy(&std::fs::read(MOCK_PROVER_PATH)?).await?; + let prover_contract = worker.dev_deploy(&mock_prover_wasm).await?; - // Setup locker - let locker = worker.dev_deploy(&std::fs::read(LOCKER_PATH)?).await?; - locker + // setup locker + let locker_contract = worker.dev_deploy(&locker_wasm).await?; + locker_contract .call("new") .args_json(json!({ "prover_account": prover_contract.id(), @@ -60,7 +66,7 @@ mod tests { .create_tla_and_deploy( account_n(1), worker.dev_generate().await.1, - &std::fs::read(TOKEN_DEPLOYER_PATH)?, + &token_deployer_wasm, ) .await? .unwrap(); @@ -68,7 +74,7 @@ mod tests { token_deployer .call("new") .args_json(json!({ - "controller": locker.id(), + "controller": locker_contract.id(), "dao": AccountId::from_str("dao.near").unwrap(), })) .max_gas() @@ -77,7 +83,7 @@ mod tests { .into_result()?; // Configure locker - locker + locker_contract .call("add_token_deployer") .args_json(json!({ "chain": init_token_address.get_chain(), @@ -96,7 +102,7 @@ mod tests { _ => panic!("Unsupported chain"), }; - locker + locker_contract .call("add_factory") .args_json(json!({ "address": factory_contract_address, @@ -109,7 +115,7 @@ mod tests { // Deploy token let token_contract = Self::deploy_token( &worker, - &locker, + &locker_contract, &init_token_address, &factory_contract_address, &token_metadata, @@ -118,7 +124,7 @@ mod tests { Ok(Self { worker, - locker, + locker_contract, token_contract, init_token_address, factory_contract_address, @@ -126,9 +132,20 @@ mod tests { }) } - async fn new_native(chain_kind: ChainKind) -> anyhow::Result { + async fn new_native( + chain_kind: ChainKind, + mock_prover_wasm: Vec, + locker_wasm: Vec, + token_deployer_wasm: Vec, + ) -> anyhow::Result { let init_token_address = OmniAddress::new_zero(chain_kind).unwrap(); - Self::new(init_token_address).await + Self::new( + init_token_address, + mock_prover_wasm, + locker_wasm, + token_deployer_wasm, + ) + .await } async fn deploy_token( @@ -168,7 +185,7 @@ mod tests { .call(locker.id(), "deploy_token") .args_borsh(get_test_deploy_token_args( init_token_address, - &factoty_contract_address, + factoty_contract_address, token_metadata, )) .deposit(required_storage) @@ -234,11 +251,26 @@ mod tests { async fn test_token_metadata( #[case] init_token_address: OmniAddress, #[case] is_native: bool, + mock_prover_wasm: Vec, + locker_wasm: Vec, + token_deployer_wasm: Vec, ) -> anyhow::Result<()> { let env = if is_native { - TestEnv::new_native(init_token_address.get_chain()).await? + TestEnv::new_native( + init_token_address.get_chain(), + mock_prover_wasm, + locker_wasm, + token_deployer_wasm, + ) + .await? } else { - TestEnv::new(init_token_address).await? + TestEnv::new( + init_token_address, + mock_prover_wasm, + locker_wasm, + token_deployer_wasm, + ) + .await? }; let fetched_metadata: BasicMetadata = @@ -264,17 +296,32 @@ mod tests { async fn test_token_minting( #[case] init_token_address: OmniAddress, #[case] is_native: bool, + mock_prover_wasm: Vec, + locker_wasm: Vec, + token_deployer_wasm: Vec, ) -> anyhow::Result<()> { let env = if is_native { - TestEnv::new_native(init_token_address.get_chain()).await? + TestEnv::new_native( + init_token_address.get_chain(), + mock_prover_wasm, + locker_wasm, + token_deployer_wasm, + ) + .await? } else { - TestEnv::new(init_token_address).await? + TestEnv::new( + init_token_address, + mock_prover_wasm, + locker_wasm, + token_deployer_wasm, + ) + .await? }; let recipient = env.create_registered_account(3).await?; let amount = U128(1000000000000000000000000); fake_finalize_transfer( - &env.locker, + &env.locker_contract, &env.token_contract, &recipient, env.init_token_address, @@ -318,11 +365,26 @@ mod tests { async fn test_token_transfer( #[case] init_token_address: OmniAddress, #[case] is_native: bool, + mock_prover_wasm: Vec, + locker_wasm: Vec, + token_deployer_wasm: Vec, ) -> anyhow::Result<()> { let env = if is_native { - TestEnv::new_native(init_token_address.get_chain()).await? + TestEnv::new_native( + init_token_address.get_chain(), + mock_prover_wasm, + locker_wasm, + token_deployer_wasm, + ) + .await? } else { - TestEnv::new(init_token_address).await? + TestEnv::new( + init_token_address, + mock_prover_wasm, + locker_wasm, + token_deployer_wasm, + ) + .await? }; let sender = env.create_registered_account(3).await?; let receiver = env.create_registered_account(4).await?; @@ -330,7 +392,7 @@ mod tests { // Mint tokens to sender fake_finalize_transfer( - &env.locker, + &env.locker_contract, &env.token_contract, &sender, env.init_token_address, diff --git a/near/omni-token/Cargo.toml b/near/omni-token/Cargo.toml index 575720b9..c03da01b 100644 --- a/near/omni-token/Cargo.toml +++ b/near/omni-token/Cargo.toml @@ -4,6 +4,24 @@ version = "0.1.0" authors = ["Karim Alabtakh "] edition = "2021" publish = false +repository.workspace = true + +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-types/Cargo.toml b/near/omni-types/Cargo.toml index 3ef2022a..63c7e98b 100644 --- a/near/omni-types/Cargo.toml +++ b/near/omni-types/Cargo.toml @@ -13,6 +13,8 @@ serde.workspace = true strum_macros.workspace = true ethereum-types.workspace = true rlp.workspace = true +schemars.workspace = true +num_enum.workspace = true alloy-sol-types = "0.8" alloy-sol-macro = "0.8" alloy-primitives = { version = "0.8", features = ["rlp"] } diff --git a/near/omni-types/src/evm/header.rs b/near/omni-types/src/evm/header.rs index a2c0b158..89da55a6 100644 --- a/near/omni-types/src/evm/header.rs +++ b/near/omni-types/src/evm/header.rs @@ -3,6 +3,7 @@ use rlp::{Decodable, DecoderError, Encodable, Rlp, RlpStream}; use crate::utils::keccak256; +#[allow(clippy::module_name_repetitions)] #[derive(Default, Debug, Clone)] pub struct BlockHeader { pub parent_hash: H256, diff --git a/near/omni-types/src/lib.rs b/near/omni-types/src/lib.rs index 22836bfb..8c7981dc 100644 --- a/near/omni-types/src/lib.rs +++ b/near/omni-types/src/lib.rs @@ -1,10 +1,10 @@ use core::fmt; use core::str::FromStr; use hex::FromHex; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; use near_sdk::json_types::U128; use near_sdk::serde::{Deserialize, Serialize}; -use near_sdk::AccountId; +use near_sdk::{near, AccountId}; +use schemars::JsonSchema; use serde::de::Visitor; use sol_address::SolAddress; @@ -20,7 +20,8 @@ pub mod utils; #[cfg(test)] mod tests; -#[derive(BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq)] +#[near(serializers = [borsh])] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct H160(pub [u8; 20]); impl FromStr for H160 { @@ -95,7 +96,7 @@ impl<'de> Deserialize<'de> for H160 { { struct HexVisitor; - impl<'de> Visitor<'de> for HexVisitor { + impl Visitor<'_> for HexVisitor { type Value = H160; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { @@ -126,21 +127,8 @@ impl Serialize for H160 { } } -#[derive( - Debug, - Eq, - Clone, - Copy, - PartialEq, - PartialOrd, - Ord, - BorshSerialize, - BorshDeserialize, - Serialize, - Deserialize, - strum_macros::AsRefStr, - Default, -)] +#[near(serializers = [borsh, json])] +#[derive(Debug, Eq, Clone, Copy, PartialEq, PartialOrd, Ord, strum_macros::AsRefStr, Default)] pub enum ChainKind { #[default] Eth, @@ -183,7 +171,8 @@ pub type EvmAddress = H160; pub const ZERO_ACCOUNT_ID: &str = "0000000000000000000000000000000000000000000000000000000000000000"; -#[derive(BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq)] +#[near(serializers=[borsh])] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum OmniAddress { Eth(EvmAddress), Near(AccountId), @@ -341,6 +330,20 @@ impl fmt::Display for OmniAddress { } } +impl JsonSchema for OmniAddress { + fn is_referenceable() -> bool { + false + } + + fn schema_name() -> String { + String::schema_name() + } + + fn json_schema(gen: &mut schemars::gen::SchemaGenerator) -> schemars::schema::Schema { + String::json_schema(gen) + } +} + impl Serialize for OmniAddress { fn serialize(&self, serializer: S) -> Result where @@ -357,7 +360,7 @@ impl<'de> Deserialize<'de> for OmniAddress { { struct OmniAddressVisitor; - impl<'de> serde::de::Visitor<'de> for OmniAddressVisitor { + impl serde::de::Visitor<'_> for OmniAddressVisitor { type Value = OmniAddress; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { @@ -383,15 +386,15 @@ pub struct InitTransferMsg { pub native_token_fee: U128, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct FeeRecipient { pub recipient: AccountId, pub native_fee_recipient: OmniAddress, } -#[derive( - BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, PartialEq, Default, -)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone, PartialEq, Default)] pub struct Fee { pub fee: U128, pub native_fee: U128, @@ -403,18 +406,8 @@ impl Fee { } } -#[derive( - BorshDeserialize, - BorshSerialize, - Serialize, - Deserialize, - Debug, - Clone, - PartialEq, - Eq, - Default, - Copy, -)] +#[near(serializers = [borsh, json])] +#[derive(Debug, Clone, PartialEq, Eq, Default, Copy)] pub struct TransferId { // The origin chain kind pub origin_chain: ChainKind, @@ -422,7 +415,8 @@ pub struct TransferId { pub origin_nonce: Nonce, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct TransferMessage { pub origin_nonce: Nonce, pub token: OmniAddress, @@ -451,14 +445,16 @@ impl TransferMessage { } } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Debug, Clone)] pub enum PayloadType { TransferMessage, Metadata, ClaimNativeFee, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct TransferMessagePayload { pub prefix: PayloadType, pub destination_nonce: Nonce, @@ -469,7 +465,8 @@ pub struct TransferMessagePayload { pub fee_recipient: Option, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Debug, Clone)] pub struct MetadataPayload { pub prefix: PayloadType, pub token: String, @@ -478,15 +475,16 @@ pub struct MetadataPayload { pub decimals: u8, } -#[derive(Deserialize, Serialize, Clone)] -#[serde(crate = "near_sdk::serde")] +#[near(serializers=[borsh, json])] +#[derive(Clone)] pub struct SignRequest { pub payload: [u8; 32], pub path: String, pub key_version: u32, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub enum UpdateFee { Fee(Fee), Proof(Vec), @@ -498,7 +496,8 @@ pub fn stringify(item: T) -> String { item.to_string() } -#[derive(Deserialize, Serialize, Clone)] +#[near(serializers=[json])] +#[derive(Clone)] pub struct BasicMetadata { pub name: String, pub symbol: String, diff --git a/near/omni-types/src/locker_args.rs b/near/omni-types/src/locker_args.rs index 7ea3d8c4..6d90b708 100644 --- a/near/omni-types/src/locker_args.rs +++ b/near/omni-types/src/locker_args.rs @@ -1,36 +1,39 @@ +use near_sdk::{near, AccountId}; + use crate::ChainKind; -use near_sdk::{ - borsh::{self, BorshDeserialize, BorshSerialize}, - AccountId, -}; -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Clone)] pub struct StorageDepositAction { pub token_id: AccountId, pub account_id: AccountId, pub storage_deposit_amount: Option, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Clone)] pub struct FinTransferArgs { pub chain_kind: ChainKind, pub storage_deposit_actions: Vec, pub prover_args: Vec, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Clone)] pub struct ClaimFeeArgs { pub chain_kind: ChainKind, pub prover_args: Vec, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Clone)] pub struct BindTokenArgs { pub chain_kind: ChainKind, pub prover_args: Vec, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Clone)] pub struct DeployTokenArgs { pub chain_kind: ChainKind, pub prover_args: Vec, diff --git a/near/omni-types/src/mpc_types.rs b/near/omni-types/src/mpc_types.rs index fb3320d9..2130cd8c 100644 --- a/near/omni-types/src/mpc_types.rs +++ b/near/omni-types/src/mpc_types.rs @@ -1,17 +1,19 @@ -use near_sdk::serde::{Deserialize, Serialize}; +use near_sdk::near; -#[derive(Serialize, Deserialize, Clone, Debug)] +#[near(serializers = [json])] +#[derive(Clone, Debug)] pub struct AffinePoint { pub affine_point: String, } -#[derive(Serialize, Deserialize, Clone, Debug)] +#[near(serializers = [json])] +#[derive(Clone, Debug)] pub struct Scalar { pub scalar: String, } -#[derive(Serialize, Deserialize, Clone, Debug)] -#[serde(crate = "near_sdk::serde")] +#[near(serializers = [json])] +#[derive(Clone, Debug)] pub struct SignatureResponse { pub big_r: AffinePoint, pub s: Scalar, diff --git a/near/omni-types/src/near_events.rs b/near/omni-types/src/near_events.rs index e3dd1025..d24fbd1d 100644 --- a/near/omni-types/src/near_events.rs +++ b/near/omni-types/src/near_events.rs @@ -1,10 +1,11 @@ -use near_sdk::serde::{Deserialize, Serialize}; +use near_sdk::near; use near_sdk::serde_json::json; use crate::mpc_types::SignatureResponse; use crate::{MetadataPayload, TransferMessage, TransferMessagePayload}; -#[derive(Deserialize, Serialize, Clone, Debug)] +#[near(serializers=[json])] +#[derive(Clone, Debug)] pub enum OmniBridgeEvent { InitTransferEvent { transfer_message: TransferMessage, diff --git a/near/omni-types/src/prover_args.rs b/near/omni-types/src/prover_args.rs index f4551512..a1a33bc7 100644 --- a/near/omni-types/src/prover_args.rs +++ b/near/omni-types/src/prover_args.rs @@ -1,29 +1,32 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; -use near_sdk::serde::{Deserialize, Serialize}; +use near_sdk::near; use crate::prover_result::ProofKind; pub type ProverId = String; -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct VerifyProofArgs { pub prover_id: ProverId, pub prover_args: Vec, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers=[borsh])] +#[derive(Debug, Clone)] pub struct EvmVerifyProofArgs { pub proof_kind: ProofKind, pub proof: EvmProof, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers=[borsh])] +#[derive(Debug, Clone)] pub struct WormholeVerifyProofArgs { pub proof_kind: ProofKind, pub vaa: String, } -#[derive(Default, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone)] +#[near(serializers=[borsh])] +#[derive(Default, Debug, Clone)] pub struct EvmProof { pub log_index: u64, pub log_entry_data: Vec, diff --git a/near/omni-types/src/prover_result.rs b/near/omni-types/src/prover_result.rs index 9a40b1aa..29a758f1 100644 --- a/near/omni-types/src/prover_result.rs +++ b/near/omni-types/src/prover_result.rs @@ -1,11 +1,11 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; use near_sdk::json_types::U128; -use near_sdk::serde::{Deserialize, Serialize}; -use near_sdk::AccountId; +use near_sdk::{near, AccountId}; +use num_enum::IntoPrimitive; use crate::{Fee, Nonce, OmniAddress, TransferId}; -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct InitTransferMessage { pub origin_nonce: Nonce, pub token: OmniAddress, @@ -17,7 +17,8 @@ pub struct InitTransferMessage { pub emitter_address: OmniAddress, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct FinTransferMessage { pub transfer_id: TransferId, pub fee_recipient: AccountId, @@ -25,7 +26,8 @@ pub struct FinTransferMessage { pub emitter_address: OmniAddress, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct DeployTokenMessage { pub token: AccountId, pub token_address: OmniAddress, @@ -34,7 +36,8 @@ pub struct DeployTokenMessage { pub emitter_address: OmniAddress, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct LogMetadataMessage { pub token_address: OmniAddress, pub name: String, @@ -43,7 +46,8 @@ pub struct LogMetadataMessage { pub emitter_address: OmniAddress, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub enum ProverResult { InitTransfer(InitTransferMessage), FinTransfer(FinTransferMessage), @@ -51,9 +55,9 @@ pub enum ProverResult { LogMetadata(LogMetadataMessage), } -#[derive( - BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, Copy, Eq, PartialEq, -)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone, Copy, Eq, PartialEq, IntoPrimitive)] +#[repr(u8)] pub enum ProofKind { InitTransfer, FinTransfer, diff --git a/near/omni-types/src/sol_address.rs b/near/omni-types/src/sol_address.rs index 77d4a30b..47327073 100644 --- a/near/omni-types/src/sol_address.rs +++ b/near/omni-types/src/sol_address.rs @@ -1,11 +1,12 @@ use core::fmt; use core::str::FromStr; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; -use near_sdk::bs58; + use near_sdk::serde::{Deserialize, Serialize}; +use near_sdk::{bs58, near}; use serde::de::Visitor; -#[derive(BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq)] +#[near(serializers=[borsh])] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct SolAddress(pub [u8; 32]); impl SolAddress { @@ -43,7 +44,7 @@ impl<'de> Deserialize<'de> for SolAddress { { struct Base58Visitor; - impl<'de> Visitor<'de> for Base58Visitor { + impl Visitor<'_> for Base58Visitor { type Value = SolAddress; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { diff --git a/near/omni-types/src/tests/lib_test.rs b/near/omni-types/src/tests/lib_test.rs index 271e137a..6bd28f70 100644 --- a/near/omni-types/src/tests/lib_test.rs +++ b/near/omni-types/src/tests/lib_test.rs @@ -137,7 +137,7 @@ fn test_h160_serialization() { ); assert_eq!( - format!(r#""{}""#, h160.to_string()), + format!(r#""{h160}""#), serialized, "Serialization does not preserve format from to_string()" ); @@ -182,7 +182,7 @@ fn test_omni_address_from_evm_address() { ); for chain_kind in [ChainKind::Near, ChainKind::Sol] { - let expected_error = format!("{:?} is not an EVM chain", chain_kind); + let expected_error = format!("{chain_kind:?} is not an EVM chain"); assert_eq!( OmniAddress::new_from_evm_address(chain_kind, evm_address.clone()), Err(expected_error) @@ -195,7 +195,7 @@ fn test_omni_address_from_str() { let evm_addr = "0x5a08feed678c056650b3eb4a5cb1b9bb6f0fe265"; let test_cases = vec![ ( - format!("eth:{}", evm_addr), + format!("eth:{evm_addr}"), Ok(OmniAddress::Eth(H160::from_str(evm_addr).unwrap())), "Should parse ETH address", ), @@ -212,12 +212,12 @@ fn test_omni_address_from_str() { "Should parse SOL address", ), ( - format!("arb:{}", evm_addr), + format!("arb:{evm_addr}"), Ok(OmniAddress::Arb(H160::from_str(evm_addr).unwrap())), "Should parse ARB address", ), ( - format!("base:{}", evm_addr), + format!("base:{evm_addr}"), Ok(OmniAddress::Base(H160::from_str(evm_addr).unwrap())), "Should parse BASE address", ), @@ -235,7 +235,7 @@ fn test_omni_address_from_str() { for (input, expected, message) in test_cases { let result = OmniAddress::from_str(&input); - assert_eq!(result, expected, "{}", message); + assert_eq!(result, expected, "{message}"); } } @@ -246,7 +246,7 @@ fn test_omni_address_display() { let test_cases = vec![ ( OmniAddress::Eth(evm_addr.clone()), - format!("eth:{}", evm_addr), + format!("eth:{evm_addr}"), "ETH address should format as eth:0x...", ), ( @@ -261,18 +261,18 @@ fn test_omni_address_display() { ), ( OmniAddress::Arb(evm_addr.clone()), - format!("arb:{}", evm_addr), + format!("arb:{evm_addr}"), "ARB address should format as arb:0x...", ), ( OmniAddress::Base(evm_addr.clone()), - format!("base:{}", evm_addr), + format!("base:{evm_addr}"), "BASE address should format as base:0x...", ), ]; for (address, expected, message) in test_cases { - assert_eq!(address.to_string(), expected, "{}", message); + assert_eq!(address.to_string(), expected, "{message}"); } } @@ -285,7 +285,7 @@ fn test_omni_address_visitor_expecting() { let result: Result = serde_json::from_value(serde_json::json!(invalid_value)); let error = result.unwrap_err().to_string(); - assert_eq!(error, expected_error, "{}", message); + assert_eq!(error, expected_error, "{message}"); } #[test] @@ -326,7 +326,7 @@ fn test_fee_is_zero() { ]; for (fee, expected, message) in test_cases { - assert_eq!(fee.is_zero(), expected, "{}", message); + assert_eq!(fee.is_zero(), expected, "{message}"); } } @@ -344,7 +344,7 @@ fn test_transfer_message_getters() { recipient: OmniAddress::Near("bob.near".parse().unwrap()), fee: Fee::default(), sender: OmniAddress::Eth(evm_addr.clone()), - msg: "".to_string(), + msg: String::new(), }, ChainKind::Eth, TransferId { @@ -362,7 +362,7 @@ fn test_transfer_message_getters() { recipient: OmniAddress::Eth(evm_addr.clone()), fee: Fee::default(), sender: OmniAddress::Near("alice.near".parse().unwrap()), - msg: "".to_string(), + msg: String::new(), }, ChainKind::Near, TransferId { @@ -380,7 +380,7 @@ fn test_transfer_message_getters() { recipient: OmniAddress::Near("carol.near".parse().unwrap()), fee: Fee::default(), sender: OmniAddress::Sol("11111111111111111111111111111111".parse().unwrap()), - msg: "".to_string(), + msg: String::new(), }, ChainKind::Sol, TransferId { @@ -392,8 +392,8 @@ fn test_transfer_message_getters() { ]; for (message, expected_chain, expected_id, error_msg) in test_cases { - assert_eq!(message.get_origin_chain(), expected_chain, "{}", error_msg); - assert_eq!(message.get_transfer_id(), expected_id, "{}", error_msg); + assert_eq!(message.get_origin_chain(), expected_chain, "{error_msg}"); + assert_eq!(message.get_transfer_id(), expected_id, "{error_msg}"); } } @@ -404,6 +404,7 @@ fn test_stringify() { assert_eq!(stringify(true), "true", "Should stringify booleans"); assert_eq!(stringify('a'), "a", "Should stringify chars"); + #[allow(clippy::items_after_statements)] #[derive(Debug)] struct CustomType(i32); impl std::fmt::Display for CustomType { diff --git a/near/res/evm_prover.wasm b/near/res/evm_prover.wasm deleted file mode 100755 index d62777b9..00000000 Binary files a/near/res/evm_prover.wasm and /dev/null differ diff --git a/near/res/omni_bridge.wasm b/near/res/omni_bridge.wasm deleted file mode 100755 index 35019648..00000000 Binary files a/near/res/omni_bridge.wasm and /dev/null differ diff --git a/near/res/omni_prover.wasm b/near/res/omni_prover.wasm deleted file mode 100755 index 5967acb6..00000000 Binary files a/near/res/omni_prover.wasm and /dev/null differ diff --git a/near/res/omni_token.wasm b/near/res/omni_token.wasm deleted file mode 100755 index c5058897..00000000 Binary files a/near/res/omni_token.wasm and /dev/null differ diff --git a/near/res/token_deployer.wasm b/near/res/token_deployer.wasm deleted file mode 100755 index b4ce504f..00000000 Binary files a/near/res/token_deployer.wasm and /dev/null differ diff --git a/near/res/wormhole_omni_prover_proxy.wasm b/near/res/wormhole_omni_prover_proxy.wasm deleted file mode 100755 index 12f0dd48..00000000 Binary files a/near/res/wormhole_omni_prover_proxy.wasm and /dev/null differ diff --git a/near/rust-toolchain b/near/rust-toolchain index e17bbf13..2cb444f6 100644 --- a/near/rust-toolchain +++ b/near/rust-toolchain @@ -1,3 +1,4 @@ [toolchain] -channel = "1.80.0" +channel = "1.84.0" components = ["clippy", "rustfmt"] +targets = ["wasm32-unknown-unknown"] diff --git a/near/token-deployer/Cargo.toml b/near/token-deployer/Cargo.toml index 589608ae..c35179d3 100644 --- a/near/token-deployer/Cargo.toml +++ b/near/token-deployer/Cargo.toml @@ -4,6 +4,24 @@ version = "0.1.0" authors = ["Karim Alabtakh "] edition = "2021" publish = false +repository.workspace = true + +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] [lib] crate-type = ["cdylib", "rlib"] @@ -17,3 +35,6 @@ serde.workspace = true near-plugins.workspace = true omni-types.workspace = true omni-token = { path = "../omni-token"} + +[build-dependencies] +cargo-near-build = { workspace = true, features = ["build_script"] } diff --git a/near/token-deployer/build.rs b/near/token-deployer/build.rs new file mode 100644 index 00000000..86d00b03 --- /dev/null +++ b/near/token-deployer/build.rs @@ -0,0 +1,38 @@ +use std::str::FromStr; + +use cargo_near_build::BuildOpts; +use cargo_near_build::{bon, camino, extended}; + +fn main() -> Result<(), Box> { + let workdir = "../omni-token"; + let nep330_contract_path = "near/omni-token"; + + let manifest = camino::Utf8PathBuf::from_str(workdir) + .expect("pathbuf from str") + .join("Cargo.toml"); + + let build_opts = BuildOpts::builder() + .manifest_path(manifest) + .no_locked(true) + .override_nep330_contract_path(nep330_contract_path) + .override_cargo_target_dir("../target/build-rs-omni-token") + .build(); + + let build_script_opts = extended::BuildScriptOpts::builder() + .rerun_if_changed_list(bon::vec![workdir, "Cargo.toml", "../Cargo.lock"]) + .build_skipped_when_env_is(vec![( + cargo_near_build::env_keys::BUILD_RS_ABI_STEP_HINT, + "true", + )]) + .stub_path("../target/omni-token.bin") + .result_env_key("BUILD_RS_SUB_BUILD_OMNI-TOKEN") + .build(); + + let extended_opts = extended::BuildOptsExtended::builder() + .build_opts(build_opts) + .build_script_opts(build_script_opts) + .build(); + + cargo_near_build::extended::build(extended_opts)?; + Ok(()) +} diff --git a/near/token-deployer/src/lib.rs b/near/token-deployer/src/lib.rs index 89e0b430..f50db030 100644 --- a/near/token-deployer/src/lib.rs +++ b/near/token-deployer/src/lib.rs @@ -3,7 +3,6 @@ use near_plugins::{ }; use near_sdk::borsh::BorshDeserialize; use near_sdk::json_types::Base58CryptoHash; -use near_sdk::serde::{Deserialize, Serialize}; use near_sdk::serde_json::json; use near_sdk::{env, near, require, AccountId, Gas, NearToken, PanicOnDefault, Promise}; use omni_types::BasicMetadata; @@ -12,11 +11,10 @@ const BRIDGE_TOKEN_INIT_BALANCE: NearToken = NearToken::from_near(3); const NO_DEPOSIT: NearToken = NearToken::from_near(0); const OMNI_TOKEN_INIT_GAS: Gas = Gas::from_tgas(10); -const BRIDGE_TOKEN_BINARY: &[u8] = - include_bytes!("../../target/wasm32-unknown-unknown/release/omni_token.wasm"); +const BRIDGE_TOKEN_BINARY: &[u8] = include_bytes!(env!("BUILD_RS_SUB_BUILD_OMNI-TOKEN")); -#[derive(AccessControlRole, Deserialize, Serialize, Copy, Clone)] -#[serde(crate = "near_sdk::serde")] +#[near(serializers = [json])] +#[derive(AccessControlRole, Copy, Clone)] pub enum Role { DAO, PauseManager, diff --git a/omni-relayer/Cargo.lock b/omni-relayer/Cargo.lock index de50da18..6f7d805f 100644 --- a/omni-relayer/Cargo.lock +++ b/omni-relayer/Cargo.lock @@ -2305,6 +2305,26 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "const_format" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -5869,7 +5889,7 @@ dependencies = [ [[package]] name = "omni-connector" version = "0.1.0" -source = "git+https://github.com/Near-One/bridge-sdk-rs#b7c5acff3d3e7ff989c70bb35202c42c6d5e8d83" +source = "git+https://github.com/Near-One/bridge-sdk-rs#b7c5acff3d3e7ff989c70bb35202c42c6d5e8d83 dependencies = [ "borsh 1.5.5", "bridge-connector-common", @@ -6083,28 +6103,30 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.12" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +checksum = "7e5fdb66425c73b3f87565b2c8bd70c27afdd41b5e14ab46f303873a7c50294e" dependencies = [ "arrayvec", "bitvec", "byte-slice-cast", + "const_format", "impl-trait-for-tuples", "parity-scale-codec-derive", + "rustversion", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "3.6.12" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +checksum = "40e3e3dbdd7e7f6a58a4bdb105f88a85ba6d52bac9c98c69276bce153abe9ab5" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.96", ] [[package]] diff --git a/solana/bridge_token_factory/Cargo.lock b/solana/bridge_token_factory/Cargo.lock index 34478b18..01fc19b0 100644 --- a/solana/bridge_token_factory/Cargo.lock +++ b/solana/bridge_token_factory/Cargo.lock @@ -269,9 +269,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" [[package]] name = "ark-bn254" @@ -454,9 +454,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" dependencies = [ "serde", ] @@ -484,9 +484,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.1" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" +checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" dependencies = [ "arrayref", "arrayvec", @@ -543,11 +543,11 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.1" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +checksum = "5430e3be710b68d984d1391c854eb431a9d548640711faa54eecb1df93db91cc" dependencies = [ - "borsh-derive 1.5.1", + "borsh-derive 1.5.5", "cfg_aliases", ] @@ -579,16 +579,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.1" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +checksum = "f8b668d39970baad5356d7c83a86fee3a539e6f93bf6764c97368243e17a0487" dependencies = [ "once_cell", "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", - "syn_derive", + "syn 2.0.96", ] [[package]] @@ -664,9 +663,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bv" @@ -680,22 +679,22 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.18.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.7.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" +checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] @@ -716,9 +715,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.24" +version = "1.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812acba72f0a070b003d3697490d2b55b837230ae7c6c6497f05cc2ddbb8d938" +checksum = "e4730490333d58093109dc02c23174c3f4d490998c3fed3cc8e82d57afedb9cf" dependencies = [ "jobserver", "libc", @@ -739,9 +738,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "num-traits", ] @@ -783,18 +782,18 @@ checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -811,15 +810,15 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-common" @@ -885,7 +884,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] @@ -896,7 +895,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] @@ -1071,9 +1070,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "heck" @@ -1153,12 +1152,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.2", ] [[package]] @@ -1172,9 +1171,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jobserver" @@ -1187,10 +1186,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1211,9 +1211,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.159" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libsecp256k1" @@ -1335,9 +1335,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "memchr" @@ -1417,7 +1417,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] @@ -1456,17 +1456,14 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] name = "once_cell" -version = "1.20.1" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1" -dependencies = [ - "portable-atomic", -] +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opaque-debug" @@ -1539,12 +1536,6 @@ dependencies = [ "universal-hash", ] -[[package]] -name = "portable-atomic" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" - [[package]] name = "ppv-lite86" version = "0.2.20" @@ -1572,34 +1563,11 @@ dependencies = [ "toml_edit", ] -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -1621,14 +1589,14 @@ checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -1741,18 +1709,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ "bitflags", ] [[package]] name = "regex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -1762,9 +1730,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -1794,15 +1762,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "scopeguard" @@ -1812,15 +1780,15 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "semver" -version = "1.0.23" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] @@ -1836,20 +1804,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" dependencies = [ "itoa", "memchr", @@ -1885,7 +1853,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] @@ -1970,9 +1938,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "solana-frozen-abi" -version = "1.18.23" +version = "1.18.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bfcde2fc6946c99c7e3400fadd04d1628d675bfd66cb34d461c0f3224bd27d1" +checksum = "03ab2c30c15311b511c0d1151e4ab6bc9a3e080a37e7c6e7c2d96f5784cf9434" dependencies = [ "block-buffer 0.10.4", "bs58 0.4.0", @@ -1995,21 +1963,21 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.18.23" +version = "1.18.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5024d241425f4e99f112ee03bfa89e526c86c7ca9bd7e13448a7f2dffb7e060" +checksum = "c142f779c3633ac83c84d04ff06c70e1f558c876f13358bed77ba629c7417932" dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] name = "solana-logger" -version = "1.18.23" +version = "1.18.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10948c30d138d6fbfc2ae78a4882be5a9ebffa4bb1239c4efc386104ebc35b7f" +checksum = "121d36ffb3c6b958763312cbc697fbccba46ee837d3a0aa4fc0e90fcb3b884f3" dependencies = [ "env_logger", "lazy_static", @@ -2018,9 +1986,9 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.18.23" +version = "1.18.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76056fecde0fe0ece8b457b719729c17173333471c72ad41969982975a10d6e0" +checksum = "c10f4588cefd716b24a1a40dd32c278e43a560ab8ce4de6b5805c9d113afdfa1" dependencies = [ "ark-bn254", "ark-ec", @@ -2032,7 +2000,7 @@ dependencies = [ "blake3", "borsh 0.10.4", "borsh 0.9.3", - "borsh 1.5.1", + "borsh 1.5.5", "bs58 0.4.0", "bv", "bytemuck", @@ -2073,15 +2041,15 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.18.23" +version = "1.18.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b3f2080eddef6552fde7f149c429cf05b9bb0605a068b0d28e19d793e24df4" +checksum = "580ad66c2f7a4c3cb3244fe21440546bd500f5ecb955ad9826e92a78dded8009" dependencies = [ "assert_matches", "base64 0.21.7", "bincode", "bitflags", - "borsh 1.5.1", + "borsh 1.5.5", "bs58 0.4.0", "bytemuck", "byteorder", @@ -2128,15 +2096,15 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.18.23" +version = "1.18.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a8613ca80150f7e277e773620ba65d2c5fcc3a08eb8026627d601421ab43aef" +checksum = "1b75d0f193a27719257af19144fdaebec0415d1c9e9226ae4bd29b791be5e9bd" dependencies = [ "bs58 0.4.0", "proc-macro2", "quote", "rustversion", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] @@ -2147,9 +2115,9 @@ checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" [[package]] name = "solana-zk-token-sdk" -version = "1.18.23" +version = "1.18.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39a57b2f269f24088b6b8e426de05e5c1faa6b5d6f26175c06eb80df96ec685e" +checksum = "7cbdf4249b6dfcbba7d84e2b53313698043f60f8e22ce48286e6fbe8a17c8d16" dependencies = [ "aes-gcm-siv", "base64 0.21.7", @@ -2181,7 +2149,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "143109d789171379e6143ef23191786dfaac54289ad6e7917cfb26b36c432b10" dependencies = [ "assert_matches", - "borsh 1.5.1", + "borsh 1.5.5", "num-derive 0.4.2", "num-traits", "solana-program", @@ -2209,7 +2177,7 @@ checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" dependencies = [ "quote", "spl-discriminator-syn", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] @@ -2221,7 +2189,7 @@ dependencies = [ "proc-macro2", "quote", "sha2 0.10.8", - "syn 2.0.79", + "syn 2.0.96", "thiserror", ] @@ -2240,7 +2208,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c52d84c55efeef8edcc226743dc089d7e3888b8e3474569aa3eff152b37b9996" dependencies = [ - "borsh 1.5.1", + "borsh 1.5.5", "bytemuck", "solana-program", "solana-zk-token-sdk", @@ -2269,7 +2237,7 @@ dependencies = [ "proc-macro2", "quote", "sha2 0.10.8", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] @@ -2303,9 +2271,9 @@ dependencies = [ [[package]] name = "spl-token-2022" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b01d1b2851964e257187c0bca43a0de38d0af59192479ca01ac3e2b58b1bd95a" +checksum = "4c39e416aeb1ea0b22f3b2bbecaf7e38a92a1aa8f4a0c5785c94179694e846a0" dependencies = [ "arrayref", "bytemuck", @@ -2344,7 +2312,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3da00495b602ebcf5d8ba8b3ecff1ee454ce4c125c9077747be49c2d62335ba" dependencies = [ - "borsh 1.5.1", + "borsh 1.5.5", "solana-program", "spl-discriminator", "spl-pod", @@ -2406,27 +2374,15 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.79", -] - [[package]] name = "tap" version = "1.0.1" @@ -2444,22 +2400,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] @@ -2483,9 +2439,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -2528,9 +2484,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.22.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" dependencies = [ "indexmap", "serde", @@ -2547,9 +2503,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" [[package]] name = "unicode-normalization" @@ -2606,35 +2562,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2642,28 +2598,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -2775,9 +2734,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.20" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "7e49d2d35d3fad69b39b94139037ecfb4f359f08958b9c11e7315ce770462419" dependencies = [ "memchr", ] @@ -2826,7 +2785,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.96", ] [[package]] @@ -2846,5 +2805,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.96", ] diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/build.rs b/solana/bridge_token_factory/programs/bridge_token_factory/build.rs index 39c3f83d..42e00f96 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/build.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/build.rs @@ -8,5 +8,5 @@ fn main() { let out_dir = env::var_os("OUT_DIR").unwrap(); let dest_path = Path::new(&out_dir).join("program_id.rs"); - fs::write(&dest_path, format!("declare_id!(\"{}\");", program_id)).unwrap(); + fs::write(&dest_path, format!("declare_id!(\"{program_id}\");")).unwrap(); } diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/constants.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/constants.rs index 26f16c2d..8337b7ba 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/constants.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/constants.rs @@ -31,4 +31,4 @@ pub const USED_NONCES_ACCOUNT_SIZE: u32 = 8 + (USED_NONCES_PER_ACCOUNT + 7) / 8; pub const SOLANA_OMNI_BRIDGE_CHAIN_ID: u8 = 2; #[constant] -pub const MAX_ALLOWED_DECIMALS: u8 = 9; \ No newline at end of file +pub const MAX_ALLOWED_DECIMALS: u8 = 9; diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/admin/initialize.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/admin/initialize.rs index d9f212f1..931493f0 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/admin/initialize.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/admin/initialize.rs @@ -66,7 +66,7 @@ pub struct Initialize<'info> { seeds::program = wormhole_program.key )] /// CHECK: Emitter's sequence account. This is not created until the first - /// message is posted, so it needs to be an [UncheckedAccount] for the + /// message is posted, so it needs to be an [`UncheckedAccount`] for the /// [`initialize`](crate::initialize) instruction. /// [`wormhole::post_message`] requires this account be mutable. pub wormhole_sequence: UncheckedAccount<'info>, @@ -88,7 +88,8 @@ pub struct Initialize<'info> { pub program: Signer<'info>, } -impl<'info> Initialize<'info> { +impl Initialize<'_> { + #[allow(clippy::too_many_arguments)] pub fn process( &mut self, admin: Pubkey, @@ -140,7 +141,7 @@ impl<'info> Initialize<'info> { }, ), rent.minimum_balance(0) // for account creation - + UsedNonces::rent_level(USED_NONCES_PER_ACCOUNT as u64 - 1, &rent)?, + + UsedNonces::rent_level(u64::from(USED_NONCES_PER_ACCOUNT) - 1, &rent)?, )?; // If Wormhole requires a fee before posting a message, we need to diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/deploy_token.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/deploy_token.rs index 48bcbdc3..fc14ac6a 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/deploy_token.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/deploy_token.rs @@ -1,5 +1,8 @@ use crate::constants::{AUTHORITY_SEED, MAX_ALLOWED_DECIMALS, METADATA_SEED, WRAPPED_MINT_SEED}; -use crate::instructions::wormhole_cpi::*; +use crate::instructions::wormhole_cpi::{ + WormholeCPI, WormholeCPIBumps, __client_accounts_wormhole_cpi, + __cpi_client_accounts_wormhole_cpi, +}; use crate::state::message::SignedPayload; use crate::state::message::{ deploy_token::{DeployTokenPayload, DeployTokenResponse}, @@ -67,7 +70,7 @@ pub struct DeployToken<'info> { pub token_metadata_program: Program<'info, Metaplex>, } -impl<'info> DeployToken<'info> { +impl DeployToken<'_> { pub fn initialize_token_metadata(&self, mut metadata: DeployTokenPayload) -> Result<()> { let bump = &[self.common.config.bumps.authority]; let signer_seeds = &[&[AUTHORITY_SEED, bump][..]]; diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/finalize_transfer.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/finalize_transfer.rs index ca083ca0..91ee9d62 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/finalize_transfer.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/finalize_transfer.rs @@ -7,11 +7,14 @@ use anchor_spl::{ use crate::{ constants::{ - AUTHORITY_SEED, USED_NONCES_ACCOUNT_SIZE, USED_NONCES_PER_ACCOUNT, - USED_NONCES_SEED, VAULT_SEED, + AUTHORITY_SEED, USED_NONCES_ACCOUNT_SIZE, USED_NONCES_PER_ACCOUNT, USED_NONCES_SEED, + VAULT_SEED, }, error::ErrorCode, - instructions::wormhole_cpi::*, + instructions::wormhole_cpi::{ + WormholeCPI, WormholeCPIBumps, __client_accounts_wormhole_cpi, + __cpi_client_accounts_wormhole_cpi, + }, state::{ message::{ finalize_transfer::{FinalizeTransferPayload, FinalizeTransferResponse}, @@ -26,11 +29,11 @@ use crate::{ pub struct FinalizeTransfer<'info> { #[account( init_if_needed, - space = USED_NONCES_ACCOUNT_SIZE as usize, + space = usize::try_from(USED_NONCES_ACCOUNT_SIZE).unwrap(), payer = common.payer, seeds = [ USED_NONCES_SEED, - &(data.payload.destination_nonce / USED_NONCES_PER_ACCOUNT as u64).to_le_bytes(), + &(data.payload.destination_nonce / u64::from(USED_NONCES_PER_ACCOUNT)).to_le_bytes(), ], bump, )] @@ -80,7 +83,7 @@ pub struct FinalizeTransfer<'info> { pub token_program: Interface<'info, TokenInterface>, } -impl<'info> FinalizeTransfer<'info> { +impl FinalizeTransfer<'_> { pub fn process(&mut self, data: FinalizeTransferPayload) -> Result<()> { UsedNonces::use_nonce( data.destination_nonce, diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/finalize_transfer_sol.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/finalize_transfer_sol.rs index a2f95324..883d3234 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/finalize_transfer_sol.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/finalize_transfer_sol.rs @@ -3,7 +3,10 @@ use crate::{ AUTHORITY_SEED, CONFIG_SEED, SOL_VAULT_SEED, USED_NONCES_ACCOUNT_SIZE, USED_NONCES_PER_ACCOUNT, USED_NONCES_SEED, }, - instructions::wormhole_cpi::*, + instructions::wormhole_cpi::{ + WormholeCPI, WormholeCPIBumps, __client_accounts_wormhole_cpi, + __cpi_client_accounts_wormhole_cpi, + }, state::{ config::Config, message::{ @@ -29,11 +32,11 @@ pub struct FinalizeTransferSol<'info> { pub config: Box>, #[account( init_if_needed, - space = USED_NONCES_ACCOUNT_SIZE as usize, + space = usize::try_from(USED_NONCES_ACCOUNT_SIZE).unwrap(), payer = common.payer, seeds = [ USED_NONCES_SEED, - &(data.payload.destination_nonce / USED_NONCES_PER_ACCOUNT as u64).to_le_bytes(), + &(data.payload.destination_nonce / u64::from(USED_NONCES_PER_ACCOUNT)).to_le_bytes(), ], bump, )] @@ -59,7 +62,7 @@ pub struct FinalizeTransferSol<'info> { pub system_program: Program<'info, System>, } -impl<'info> FinalizeTransferSol<'info> { +impl FinalizeTransferSol<'_> { pub fn process(&mut self, data: FinalizeTransferPayload) -> Result<()> { UsedNonces::use_nonce( data.destination_nonce, diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/init_transfer.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/init_transfer.rs index 87f3030f..cd784ffc 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/init_transfer.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/init_transfer.rs @@ -10,7 +10,10 @@ use anchor_spl::{ use crate::{ constants::{AUTHORITY_SEED, SOL_VAULT_SEED, VAULT_SEED}, error::ErrorCode, - instructions::wormhole_cpi::*, + instructions::wormhole_cpi::{ + WormholeCPI, WormholeCPIBumps, __client_accounts_wormhole_cpi, + __cpi_client_accounts_wormhole_cpi, + }, state::message::{init_transfer::InitTransferPayload, Payload}, }; @@ -65,8 +68,8 @@ pub struct InitTransfer<'info> { pub token_program: Interface<'info, TokenInterface>, } -impl<'info> InitTransfer<'info> { - pub fn process(&self, payload: InitTransferPayload) -> Result<()> { +impl InitTransfer<'_> { + pub fn process(&self, payload: &InitTransferPayload) -> Result<()> { if payload.native_fee > 0 { transfer( CpiContext::new( diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/init_transfer_sol.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/init_transfer_sol.rs index e6073813..ef1355d0 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/init_transfer_sol.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/init_transfer_sol.rs @@ -6,7 +6,10 @@ use anchor_lang::{ use crate::{ constants::SOL_VAULT_SEED, error::ErrorCode, - instructions::wormhole_cpi::*, + instructions::wormhole_cpi::{ + WormholeCPI, WormholeCPIBumps, __client_accounts_wormhole_cpi, + __cpi_client_accounts_wormhole_cpi, + }, state::message::{init_transfer::InitTransferPayload, Payload}, }; @@ -28,8 +31,8 @@ pub struct InitTransferSol<'info> { pub common: WormholeCPI<'info>, } -impl<'info> InitTransferSol<'info> { - pub fn process(&self, payload: InitTransferPayload) -> Result<()> { +impl InitTransferSol<'_> { + pub fn process(&self, payload: &InitTransferPayload) -> Result<()> { require!(payload.fee == 0, ErrorCode::InvalidFee); transfer( @@ -40,7 +43,9 @@ impl<'info> InitTransferSol<'info> { to: self.sol_vault.to_account_info(), }, ), - payload.native_fee.checked_add(payload.amount.try_into().unwrap()) + payload + .native_fee + .checked_add(payload.amount.try_into().unwrap()) .unwrap(), )?; diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/log_metadata.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/log_metadata.rs index eeff89e2..bd3c6302 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/log_metadata.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/user/log_metadata.rs @@ -16,7 +16,13 @@ use anchor_spl::{ }, }; -use crate::{constants::METADATA_SEED, instructions::wormhole_cpi::*}; +use crate::{ + constants::METADATA_SEED, + instructions::wormhole_cpi::{ + WormholeCPI, WormholeCPIBumps, __client_accounts_wormhole_cpi, + __cpi_client_accounts_wormhole_cpi, + }, +}; use crate::{ constants::{AUTHORITY_SEED, VAULT_SEED}, state::message::Payload, @@ -62,7 +68,7 @@ pub struct LogMetadata<'info> { pub associated_token_program: Program<'info, AssociatedToken>, } -impl<'info> LogMetadata<'info> { +impl LogMetadata<'_> { fn parse_metadata_account(&self, address: Pubkey) -> Result<(String, String)> { let metadata = self .metadata @@ -89,9 +95,7 @@ impl<'info> LogMetadata<'info> { let mint_with_extension = StateWithExtensions::::unpack(&mint_data)?; - if let Some(metadata_pointer) = - mint_with_extension.get_extension::().ok() - { + if let Ok(metadata_pointer) = mint_with_extension.get_extension::() { if metadata_pointer.metadata_address.0 == self.mint.key() { // Embedded metadata let metadata = diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/wormhole_cpi.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/wormhole_cpi.rs index 2afce342..95924c4e 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/wormhole_cpi.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/instructions/wormhole_cpi.rs @@ -46,7 +46,7 @@ pub struct WormholeCPI<'info> { seeds::program = wormhole_program.key )] /// CHECK: Emitter's sequence account. This is not created until the first - /// message is posted, so it needs to be an [UncheckedAccount] for the + /// message is posted, so it needs to be an [`UncheckedAccount`] for the /// [`initialize`](crate::initialize) instruction. /// [`wormhole::post_message`] requires this account be mutable. pub sequence: Account<'info, wormhole::SequenceTracker>, @@ -67,7 +67,7 @@ pub struct WormholeCPI<'info> { pub system_program: Program<'info, System>, } -impl<'info> WormholeCPI<'info> { +impl WormholeCPI<'_> { pub fn post_message(&self, data: Vec) -> Result<()> { // If Wormhole requires a fee before posting a message, we need to // transfer lamports to the fee collector. Otherwise diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/lib.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/lib.rs index a507bf63..bc534581 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/lib.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/lib.rs @@ -1,21 +1,31 @@ use anchor_lang::prelude::*; -use instructions::*; +use instructions::{ + DeployToken, FinalizeTransfer, FinalizeTransferSol, InitTransfer, InitTransferSol, Initialize, + LogMetadata, __client_accounts_deploy_token, __client_accounts_finalize_transfer, + __client_accounts_finalize_transfer_sol, __client_accounts_init_transfer, + __client_accounts_init_transfer_sol, __client_accounts_initialize, + __client_accounts_log_metadata, +}; +use state::message::{ + deploy_token::DeployTokenPayload, finalize_transfer::FinalizeTransferPayload, + init_transfer::InitTransferPayload, SignedPayload, +}; pub mod constants; pub mod error; pub mod instructions; pub mod state; -use state::message::{ - deploy_token::DeployTokenPayload, finalize_transfer::FinalizeTransferPayload, - init_transfer::InitTransferPayload, SignedPayload, -}; - include!(concat!(env!("OUT_DIR"), "/program_id.rs")); #[program] +#[allow(clippy::needless_pass_by_value)] pub mod bridge_token_factory { - use super::*; + use super::{ + msg, Context, DeployToken, DeployTokenPayload, FinalizeTransfer, FinalizeTransferPayload, + FinalizeTransferSol, InitTransfer, InitTransferPayload, InitTransferSol, Initialize, Key, + LogMetadata, Pubkey, Result, SignedPayload, + }; pub fn initialize( ctx: Context, @@ -44,10 +54,7 @@ pub mod bridge_token_factory { ) -> Result<()> { msg!("Deploying token"); - data.verify_signature( - (), - &ctx.accounts.common.config.derived_near_bridge_address, - )?; + data.verify_signature((), &ctx.accounts.common.config.derived_near_bridge_address)?; ctx.accounts.initialize_token_metadata(data.payload)?; Ok(()) @@ -83,9 +90,7 @@ pub mod bridge_token_factory { Ok(()) } - pub fn log_metadata( - ctx: Context, - ) -> Result<()> { + pub fn log_metadata(ctx: Context) -> Result<()> { msg!("Logging metadata"); ctx.accounts.process()?; @@ -96,7 +101,7 @@ pub mod bridge_token_factory { pub fn init_transfer(ctx: Context, payload: InitTransferPayload) -> Result<()> { msg!("Initializing transfer"); - ctx.accounts.process(payload)?; + ctx.accounts.process(&payload)?; Ok(()) } @@ -107,7 +112,7 @@ pub mod bridge_token_factory { ) -> Result<()> { msg!("Initializing transfer"); - ctx.accounts.process(payload)?; + ctx.accounts.process(&payload)?; Ok(()) } diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/finalize_transfer.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/finalize_transfer.rs index 0092cdc5..b2d78a21 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/finalize_transfer.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/finalize_transfer.rs @@ -24,15 +24,15 @@ impl Payload for FinalizeTransferPayload { // 1. destination_nonce self.destination_nonce.serialize(&mut writer)?; // 2. transfer_id - writer.write(&[self.transfer_id.origin_chain])?; + writer.write_all(&[self.transfer_id.origin_chain])?; self.transfer_id.origin_nonce.serialize(&mut writer)?; // 3. token - writer.write(&[SOLANA_OMNI_BRIDGE_CHAIN_ID])?; + writer.write_all(&[SOLANA_OMNI_BRIDGE_CHAIN_ID])?; params.0.serialize(&mut writer)?; // 4. amount self.amount.serialize(&mut writer)?; // 5. recipient - writer.write(&[SOLANA_OMNI_BRIDGE_CHAIN_ID])?; + writer.write_all(&[SOLANA_OMNI_BRIDGE_CHAIN_ID])?; params.1.serialize(&mut writer)?; // 6. fee_recipient self.fee_recipient.serialize(&mut writer)?; @@ -58,10 +58,10 @@ impl Payload for FinalizeTransferResponse { // 0. OutgoingMessageType::FinTransfer OutgoingMessageType::FinTransfer.serialize(&mut writer)?; // 1. transfer_id - writer.write(&[self.transfer_id.origin_chain])?; + writer.write_all(&[self.transfer_id.origin_chain])?; self.transfer_id.origin_nonce.serialize(&mut writer)?; // 2. token - writer.write(&[SOLANA_OMNI_BRIDGE_CHAIN_ID])?; + writer.write_all(&[SOLANA_OMNI_BRIDGE_CHAIN_ID])?; self.token.serialize(&mut writer)?; // 3. amount self.amount.serialize(&mut writer)?; diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/init_transfer.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/init_transfer.rs index 0fc31f20..2e3f7bd1 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/init_transfer.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/init_transfer.rs @@ -32,7 +32,7 @@ impl Payload for InitTransferPayload { // 5. fee self.fee.serialize(&mut writer)?; // 6. native_fee - (self.native_fee as u128).serialize(&mut writer)?; + u128::from(self.native_fee).serialize(&mut writer)?; // 7. recipient self.recipient.serialize(&mut writer)?; // 8. message diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/log_metadata.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/log_metadata.rs index 373170e1..ef44a134 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/log_metadata.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/log_metadata.rs @@ -20,14 +20,14 @@ impl Payload for LogMetadataPayload { // 0. Message type OutgoingMessageType::LogMetadata.serialize(&mut writer)?; // 1. token - writer.write(&[SOLANA_OMNI_BRIDGE_CHAIN_ID])?; + writer.write_all(&[SOLANA_OMNI_BRIDGE_CHAIN_ID])?; self.token.serialize(&mut writer)?; // 2. name self.name.serialize(&mut writer)?; // 3. symbol self.symbol.serialize(&mut writer)?; // 4. decimals - writer.write(&[self.decimals])?; + writer.write_all(&[self.decimals])?; writer .into_inner() diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/mod.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/mod.rs index d0fcdbce..a13f5feb 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/mod.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/state/message/mod.rs @@ -33,14 +33,10 @@ impl SignedPayload

{ let signature = libsecp256k1::Signature::parse_standard_slice(signature_bytes) .map_err(|_| ProgramError::InvalidArgument)?; - require!( - !signature.s.is_high(), - ErrorCode::MalleableSignature - ); + require!(!signature.s.is_high(), ErrorCode::MalleableSignature); - let signer = - secp256k1_recover(&hash.to_bytes(), self.signature[64], signature_bytes) - .map_err(|_| error!(ErrorCode::SignatureVerificationFailed))?; + let signer = secp256k1_recover(&hash.to_bytes(), self.signature[64], signature_bytes) + .map_err(|_| error!(ErrorCode::SignatureVerificationFailed))?; require!( signer.0 == *derived_near_bridge_address, diff --git a/solana/bridge_token_factory/programs/bridge_token_factory/src/state/used_nonces.rs b/solana/bridge_token_factory/programs/bridge_token_factory/src/state/used_nonces.rs index 5b55a45b..81e7117c 100644 --- a/solana/bridge_token_factory/programs/bridge_token_factory/src/state/used_nonces.rs +++ b/solana/bridge_token_factory/programs/bridge_token_factory/src/state/used_nonces.rs @@ -12,6 +12,7 @@ use crate::error::ErrorCode; use super::config::Config; #[cfg(not(feature = "idl-build"))] +#[allow(clippy::as_conversions)] #[account(zero_copy(unsafe))] #[repr(C)] pub struct UsedNonces { @@ -24,14 +25,15 @@ pub struct UsedNonces { pub struct UsedNonces {} impl UsedNonces { + #[allow(clippy::as_conversions)] pub fn full_rent(rent: &Rent) -> u64 { rent.minimum_balance(USED_NONCES_ACCOUNT_SIZE as usize) } pub fn rent_level(nonce: u64, rent: &Rent) -> Result { let full = Self::full_rent(rent); - Ok((nonce % USED_NONCES_PER_ACCOUNT as u64 + 1) * full as u64 - / USED_NONCES_PER_ACCOUNT as u64) + Ok((nonce % u64::from(USED_NONCES_PER_ACCOUNT) + 1) * full + / u64::from(USED_NONCES_PER_ACCOUNT)) } pub fn use_nonce<'info>( @@ -97,7 +99,7 @@ impl UsedNonces { let mut nonce_slot = unsafe { used_nonces .used - .get_unchecked_mut((nonce % USED_NONCES_PER_ACCOUNT as u64) as usize) + .get_unchecked_mut(usize::try_from(nonce % u64::from(USED_NONCES_PER_ACCOUNT))?) }; require!(!nonce_slot.replace(true), ErrorCode::NonceAlreadyUsed); }