From 651f535f72e0d9826d6b5ab05def3722f9151d5f Mon Sep 17 00:00:00 2001 From: Victor Lopes Date: Wed, 15 Nov 2023 17:00:36 +0100 Subject: [PATCH] feat: add wasm tx generator for snap sign (#4) This commit introduces a WASM transaction parser and encoder to the snap. The returned bytes of the `signTransaction` method will be a borsh serialized transaction, that can be directly sent to sequencers. It adds the bytecode of the wasm to the hardcoded snap source so its source is committed to the hash of the published snap. It is done that way to avoid exploits from the UI that might return malicious WASM files and sign tampered messages for the user - having the bytes of the WASM committed to the plugin asserts the signature will be only for the intended message. --- .eslintignore | 2 + .eslintrc.js | 10 +- .github/workflows/build-lint-test.yml | 91 +- .nvmrc | 2 +- .prettierignore | 1 + .../plugins/@yarnpkg/plugin-allow-scripts.cjs | 9 + .yarnrc.yml | 10 + external/sov-wasm/.gitignore | 1 + external/sov-wasm/Cargo.lock | 6171 ++++ external/sov-wasm/Cargo.toml | 15 + external/sov-wasm/Makefile | 39 + external/sov-wasm/assets/sov-wasm.wasm | Bin 0 -> 301994 bytes external/sov-wasm/constants.json | 15 + external/sov-wasm/src/lib.rs | 218 + external/sov-wasm/src/tests.rs | 73 + package-lock.json | 27676 ---------------- package.json | 46 +- packages/site/.eslintrc.js | 12 +- packages/site/gatsby-browser.tsx | 3 +- packages/site/gatsby-config.ts | 6 +- packages/site/gatsby-ssr.tsx | 3 +- packages/site/package.json | 36 +- packages/site/src/App.tsx | 5 +- packages/site/src/Root.tsx | 6 +- packages/site/src/assets/logo.svg | 26 +- packages/site/src/components/Buttons.tsx | 33 +- packages/site/src/components/Card.tsx | 11 +- packages/site/src/components/Footer.tsx | 9 +- packages/site/src/components/Header.tsx | 13 +- packages/site/src/components/MetaMask.tsx | 2 +- packages/site/src/components/PoweredBy.tsx | 2 +- packages/site/src/components/SnapLogo.tsx | 8 +- packages/site/src/components/Sovereign.tsx | 204 +- packages/site/src/components/Toggle.tsx | 2 +- packages/site/src/components/index.ts | 2 +- packages/site/src/config/snap.ts | 1 + packages/site/src/config/theme.ts | 33 +- packages/site/src/hooks/MetamaskContext.tsx | 22 +- packages/site/src/pages/index.tsx | 46 +- packages/site/src/types/custom.d.ts | 6 +- packages/site/src/types/svg.d.ts | 7 + packages/site/src/utils/button.ts | 2 +- packages/site/src/utils/snap.ts | 71 +- packages/site/tsconfig.json | 9 +- packages/snap/.eslintignore | 1 + packages/snap/.eslintrc.js | 18 + packages/snap/images/icon.svg | 24 +- packages/snap/package.json | 45 +- packages/snap/snap.config.ts | 2 +- packages/snap/snap.manifest.json | 19 +- packages/snap/src/index.test.ts | 105 +- packages/snap/src/index.ts | 131 +- packages/snap/src/module.ts | 1 + packages/snap/src/types.ts | 76 +- packages/snap/src/wasm.ts | 218 + packages/snap/tsconfig.json | 5 +- scripts/cleanup.sh | 8 + scripts/readWasm.js | 15 + tsconfig.json | 22 +- yarn.lock | 3650 +- 60 files changed, 9066 insertions(+), 30233 deletions(-) create mode 100644 .eslintignore create mode 100644 .prettierignore create mode 100644 .yarn/plugins/@yarnpkg/plugin-allow-scripts.cjs create mode 100644 external/sov-wasm/.gitignore create mode 100644 external/sov-wasm/Cargo.lock create mode 100644 external/sov-wasm/Cargo.toml create mode 100644 external/sov-wasm/Makefile create mode 100644 external/sov-wasm/assets/sov-wasm.wasm create mode 100644 external/sov-wasm/constants.json create mode 100644 external/sov-wasm/src/lib.rs create mode 100644 external/sov-wasm/src/tests.rs delete mode 100644 package-lock.json create mode 100644 packages/site/src/types/svg.d.ts create mode 100644 packages/snap/.eslintignore create mode 100644 packages/snap/src/module.ts create mode 100644 packages/snap/src/wasm.ts create mode 100755 scripts/cleanup.sh create mode 100644 scripts/readWasm.js diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..3b2d2f8a --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +packages/snap/src/module.ts +scripts/readWasm.js diff --git a/.eslintrc.js b/.eslintrc.js index e0026626..e15e4fe9 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,5 +1,6 @@ module.exports = { root: true, + parserOptions: { sourceType: 'module', }, @@ -8,20 +9,17 @@ module.exports = { overrides: [ { - files: ['**/*.js'], + files: ['*.js'], extends: ['@metamask/eslint-config-nodejs'], }, { - files: ['**/*.{ts,tsx}'], + files: ['*.ts', '*.tsx'], extends: ['@metamask/eslint-config-typescript'], - rules: { - '@typescript-eslint/consistent-type-definitions': ['error', 'type'], - }, }, { - files: ['**/*.test.ts', '**/*.test.js'], + files: ['*.test.ts', '*.test.js'], extends: ['@metamask/eslint-config-jest'], rules: { '@typescript-eslint/no-shadow': [ diff --git a/.github/workflows/build-lint-test.yml b/.github/workflows/build-lint-test.yml index 5f8c7543..26dddb04 100644 --- a/.github/workflows/build-lint-test.yml +++ b/.github/workflows/build-lint-test.yml @@ -6,25 +6,34 @@ on: pull_request: jobs: - build-lint-test: - name: Build, Lint, and Test + prepare: + name: Prepare runs-on: ubuntu-latest - strategy: - matrix: - node-version: [16.x, 18.x] steps: - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} + - name: Use Node.js uses: actions/setup-node@v3 with: - node-version: ${{ matrix.node-version }} + node-version-file: '.nvmrc' cache: 'yarn' - - run: yarn install --immutable + - name: Install Yarn dependencies + run: yarn --immutable + + build: + name: Build + runs-on: ubuntu-latest + needs: + - prepare + steps: + - uses: actions/checkout@v3 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version-file: '.nvmrc' + cache: 'yarn' + - run: yarn --immutable --immutable-cache - run: yarn build - - run: yarn lint - - run: yarn test - name: Cache snap build - if: ${{ matrix.node-version == '18.x' }} uses: actions/cache@v3 with: path: ./packages/snap/dist @@ -33,22 +42,59 @@ jobs: shell: bash run: | if ! git diff --exit-code; then - echo "Working tree dirty after building" + echo "Working tree dirty at end of job" + exit 1 + fi + + lint: + name: Lint + runs-on: ubuntu-latest + needs: + - prepare + steps: + - uses: actions/checkout@v3 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version-file: '.nvmrc' + cache: 'yarn' + - run: yarn --immutable --immutable-cache + - run: yarn lint + - name: Require clean working directory + shell: bash + run: | + if ! git diff --exit-code; then + echo "Working tree dirty at end of job" exit 1 fi - e2e: - name: End-to-end Tests + e2e-test: + name: End-to-end Test runs-on: ubuntu-latest needs: - - build-lint-test + - prepare + - build steps: - uses: actions/checkout@v3 - - name: Set up Node.js + - name: Use Node.js uses: actions/setup-node@v3 with: node-version-file: '.nvmrc' cache: 'yarn' + - name: Install WASM tools + run: | + PACKAGE_URL="https://github.com/WebAssembly/binaryen/releases/download/version_116/binaryen-version_116-x86_64-linux.tar.gz" + INSTALL_PATH="/usr/local/bin" + curl -L $PACKAGE_URL | tar xz -C $INSTALL_PATH + shell: bash + - name: Install WABT + run: | + PACKAGE_URL="https://github.com/WebAssembly/wabt/releases/download/1.0.34/wabt-1.0.34-ubuntu.tar.gz" + INSTALL_PATH="/usr/local/bin" + curl -L $PACKAGE_URL | tar xz -C $INSTALL_PATH + shell: bash + - name: Setup Rust toolchain + run: rustup target add wasm32-wasi - name: Restore snap build cache uses: actions/cache@v3 with: @@ -57,14 +103,7 @@ jobs: - run: yarn install --immutable - name: Install Google Chrome run: yarn install-chrome + - name: Update WASM + run: PATH="/usr/local/bin/binaryen-version_116/bin:/usr/local/bin/wabt-1.0.34/bin:$PATH" yarn update-wasm - name: Run e2e tests - run: yarn workspace @sovereign-sdk/sov-snap run test - - all-jobs-pass: - name: All jobs pass - runs-on: ubuntu-latest - needs: - - build-lint-test - - e2e - steps: - - run: echo "Great success!" + run: yarn workspace sov-snap run test diff --git a/.nvmrc b/.nvmrc index ba1916af..b009dfb9 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v18.6 +lts/* diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..353375be --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +packages/snap/snap.manifest.json diff --git a/.yarn/plugins/@yarnpkg/plugin-allow-scripts.cjs b/.yarn/plugins/@yarnpkg/plugin-allow-scripts.cjs new file mode 100644 index 00000000..e4acaee3 --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-allow-scripts.cjs @@ -0,0 +1,9 @@ +/* eslint-disable */ +//prettier-ignore +module.exports = { +name: "@yarnpkg/plugin-allow-scripts", +factory: function (require) { +var plugin=(()=>{var l=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var p=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(o,e)=>(typeof require<"u"?require:o)[e]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var u=(t,o)=>{for(var e in o)l(t,e,{get:o[e],enumerable:!0})},f=(t,o,e,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of a(o))!c.call(t,i)&&i!==e&&l(t,i,{get:()=>o[i],enumerable:!(r=s(o,i))||r.enumerable});return t};var m=t=>f(l({},"__esModule",{value:!0}),t);var g={};u(g,{default:()=>d});var n=p("@yarnpkg/shell"),x={hooks:{afterAllInstalled:async()=>{let t=await(0,n.execute)("yarn run allow-scripts");t!==0&&process.exit(t)}}},d=x;return m(g);})(); +return plugin; +} +}; diff --git a/.yarnrc.yml b/.yarnrc.yml index 4d91cc2c..0cdb4434 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,7 +1,17 @@ +enableScripts: false + +enableTelemetry: 0 + +logFilters: + - code: YN0004 + level: discard + nodeLinker: node-modules plugins: - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs spec: '@yarnpkg/plugin-workspace-tools' + - path: .yarn/plugins/@yarnpkg/plugin-allow-scripts.cjs + spec: 'https://raw.githubusercontent.com/LavaMoat/LavaMoat/main/packages/yarn-plugin-allow-scripts/bundles/@yarnpkg/plugin-allow-scripts.js' yarnPath: .yarn/releases/yarn-3.2.1.cjs diff --git a/external/sov-wasm/.gitignore b/external/sov-wasm/.gitignore new file mode 100644 index 00000000..ea8c4bf7 --- /dev/null +++ b/external/sov-wasm/.gitignore @@ -0,0 +1 @@ +/target diff --git a/external/sov-wasm/Cargo.lock b/external/sov-wasm/Cargo.lock new file mode 100644 index 00000000..26ef038f --- /dev/null +++ b/external/sov-wasm/Cargo.lock @@ -0,0 +1,6171 @@ +# 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" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +dependencies = [ + "generic-array", +] + +[[package]] +name = "aes" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +dependencies = [ + "cfg-if", + "cipher 0.3.0", + "cpufeatures", + "ctr 0.8.0", + "opaque-debug", +] + +[[package]] +name = "aes" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +dependencies = [ + "cfg-if", + "cipher 0.4.4", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" +dependencies = [ + "aead", + "aes 0.7.5", + "cipher 0.3.0", + "ctr 0.8.0", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "alloy-rlp" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc0fac0fc16baf1f63f78b47c3d24718f3619b0714076f6a02957d808d52cbef" +dependencies = [ + "arrayvec", + "bytes", + "smol_str", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +dependencies = [ + "num-bigint", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +dependencies = [ + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "async-trait" +version = "0.1.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version 0.4.0", +] + +[[package]] +name = "atomic-polyfill" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ff7eb3f316534d83a8a2c3d1674ace8a5a71198eba31e2e2b597833f699b28" +dependencies = [ + "critical-section", +] + +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + +[[package]] +name = "attohttpc" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb8867f378f33f78a811a8eb9bf108ad99430d7aad43315dd9319c827ef6247" +dependencies = [ + "http", + "log", + "url", + "wildmatch", +] + +[[package]] +name = "auto_impl" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" +dependencies = [ + "serde", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.66.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" +dependencies = [ + "bitflags 2.4.1", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "log", + "peeking_take_while", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.39", + "which", +] + +[[package]] +name = "bindgen" +version = "0.68.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" +dependencies = [ + "bitflags 2.4.1", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.39", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "serde", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blst" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c94087b935a822949d3291a9989ad2b2051ea141eda0fd4e478a75f6aa3e604b" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "boa_ast" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73498e9b2f0aa7db74977afa4d594657611e90587abf0dd564c0b55b4a130163" +dependencies = [ + "bitflags 2.4.1", + "boa_interner", + "boa_macros", + "indexmap 2.1.0", + "num-bigint", + "rustc-hash", +] + +[[package]] +name = "boa_engine" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16377479d5d6d33896e7acdd1cc698d04a8f72004025bbbddf47558cd29146a6" +dependencies = [ + "bitflags 2.4.1", + "boa_ast", + "boa_gc", + "boa_icu_provider", + "boa_interner", + "boa_macros", + "boa_parser", + "boa_profiler", + "chrono", + "dashmap", + "fast-float", + "icu_normalizer", + "indexmap 2.1.0", + "itertools 0.11.0", + "num-bigint", + "num-integer", + "num-traits", + "num_enum 0.6.1", + "once_cell", + "pollster", + "rand", + "regress", + "rustc-hash", + "ryu-js", + "serde", + "serde_json", + "sptr", + "static_assertions", + "tap", + "thin-vec", + "thiserror", +] + +[[package]] +name = "boa_gc" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c97b44beaef9d4452342d117d94607fdfa8d474280f1ba0fd97853834e3a49b2" +dependencies = [ + "boa_macros", + "boa_profiler", + "thin-vec", +] + +[[package]] +name = "boa_icu_provider" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b30e52e34e451dd0bfc2c654a9a43ed34b0073dbd4ae3394b40313edda8627aa" +dependencies = [ + "icu_collections", + "icu_normalizer", + "icu_properties", + "icu_provider", + "icu_provider_adapters", + "icu_provider_blob", + "once_cell", +] + +[[package]] +name = "boa_interner" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3e5afa991908cfbe79bd3109b824e473a1dc5f74f31fab91bb44c9e245daa77" +dependencies = [ + "boa_gc", + "boa_macros", + "hashbrown 0.14.2", + "indexmap 2.1.0", + "once_cell", + "phf", + "rustc-hash", + "static_assertions", +] + +[[package]] +name = "boa_macros" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "005fa0c5bd20805466dda55eb34cd709bb31a2592bb26927b47714eeed6914d8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + +[[package]] +name = "boa_parser" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e09afb035377a9044443b598187a7d34cd13164617182a4d7c348522ee3f052" +dependencies = [ + "bitflags 2.4.1", + "boa_ast", + "boa_icu_provider", + "boa_interner", + "boa_macros", + "boa_profiler", + "fast-float", + "icu_locid", + "icu_properties", + "icu_provider", + "icu_provider_macros", + "num-bigint", + "num-traits", + "once_cell", + "regress", + "rustc-hash", + "tinystr", +] + +[[package]] +name = "boa_profiler" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3190f92dfe48224adc92881c620f08ccf37ff62b91a094bb357fe53bd5e84647" + +[[package]] +name = "borsh" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" +dependencies = [ + "borsh-derive", + "bytes", + "hashbrown 0.13.2", +] + +[[package]] +name = "borsh-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "borsh-schema-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bs58" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +dependencies = [ + "sha2", + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +dependencies = [ + "serde", +] + +[[package]] +name = "c-kzg" +version = "0.1.0" +source = "git+https://github.com/ethereum/c-kzg-4844?rev=f5f6f863d475847876a2bd5ee252058d37c3a15d#f5f6f863d475847876a2bd5ee252058d37c3a15d" +dependencies = [ + "bindgen 0.66.1", + "blst", + "cc", + "glob", + "hex", + "libc", + "serde", +] + +[[package]] +name = "c-kzg" +version = "0.1.0" +source = "git+https://github.com/ethereum/c-kzg-4844#624aa60d01da524827123506975431aa5454c80d" +dependencies = [ + "bindgen 0.66.1", + "blst", + "cc", + "glob", + "hex", + "libc", +] + +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12024c4645c97566567129c204f65d5815a8c9aecf30fcbe682b2fe034996d36" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7daec1a2a2129eeba1644b220b4647ec537b0b5d4bfd6876fcc5a540056b592" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.20", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.0.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f8e7c90afad890484a21653d08b6e209ae34770fb5ee298f9c699fcc1e5c856" +dependencies = [ + "libc", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets", +] + +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clang-sys" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + +[[package]] +name = "codecs-derive" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "convert_case 0.6.0", + "parity-scale-codec", + "proc-macro2", + "quote", + "serde", + "syn 2.0.39", +] + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58", + "coins-core", + "digest 0.10.7", + "hmac", + "k256", + "serde", + "sha2", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand", + "sha2", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.5", + "bech32", + "bs58", + "digest 0.10.7", + "generic-array", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2", + "sha3", + "thiserror", +] + +[[package]] +name = "const-hex" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5104de16b218eddf8e34ffe2f86f74bfa4e61e95a1b89732fccf6325efd0557" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "cpufeatures" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "critical-section" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28f85c3514d2a6e64160359b45a3918c3b4178bcbf4ae5d03ab2d02e521c479a" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" +dependencies = [ + "cipher 0.3.0", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher 0.4.4", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version 0.4.0", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "darling" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" +dependencies = [ + "darling_core 0.10.2", + "darling_macro 0.10.2", +] + +[[package]] +name = "darling" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +dependencies = [ + "darling_core 0.20.3", + "darling_macro 0.20.3", +] + +[[package]] +name = "darling_core" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.9.3", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 2.0.39", +] + +[[package]] +name = "darling_macro" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +dependencies = [ + "darling_core 0.10.2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core 0.20.3", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.2", + "lock_api", + "once_cell", + "parking_lot_core 0.9.9", +] + +[[package]] +name = "data-encoding" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" + +[[package]] +name = "delay_map" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4355c25cbf99edcb6b4a0e906f6bdc6956eda149e84455bea49696429b2f8e8" +dependencies = [ + "futures", + "tokio-util", +] + +[[package]] +name = "demo-stf" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "borsh", + "hex", + "serde", + "sov-accounts", + "sov-bank", + "sov-blob-storage", + "sov-chain-state", + "sov-evm", + "sov-mock-da", + "sov-modules-api", + "sov-modules-stf-blueprint", + "sov-nft-module", + "sov-rollup-interface", + "sov-sequencer-registry", + "sov-state", + "sov-stf-runner", + "sov-value-setter", + "tracing", +] + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2658621297f2cf68762a6f7dc0bb7e1ff2cfd6583daef8ee0fed6f7ec468ec0" +dependencies = [ + "darling 0.10.2", + "derive_builder_core", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_core" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef" +dependencies = [ + "darling 0.10.2", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn 1.0.109", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "discv5" +version = "0.3.1" +source = "git+https://github.com/sigp/discv5?rev=d2e30e04ee62418b9e57278cee907c02b99d5bd1#d2e30e04ee62418b9e57278cee907c02b99d5bd1" +dependencies = [ + "aes 0.7.5", + "aes-gcm", + "arrayvec", + "delay_map", + "enr", + "fnv", + "futures", + "hashlink", + "hex", + "hkdf", + "lazy_static", + "lru", + "more-asserts", + "parking_lot 0.11.2", + "rand", + "rlp", + "smallvec", + "socket2 0.4.10", + "tokio", + "tracing", + "tracing-subscriber", + "uint", + "zeroize", +] + +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "dns-lookup" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53ecafc952c4528d9b51a458d1a8904b81783feff9fde08ab6ed2545ff396872" +dependencies = [ + "cfg-if", + "libc", + "socket2 0.4.10", + "winapi", +] + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "dyn-clone" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" + +[[package]] +name = "ecdsa" +version = "0.16.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "serde", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core", + "serde", + "sha2", + "zeroize", +] + +[[package]] +name = "educe" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "elliptic-curve" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d97ca172ae9dc9f9b779a6e3a65d308f2af74e5b8c921299075bdb4a0370e914" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "endian-type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + +[[package]] +name = "enr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" +dependencies = [ + "base64 0.21.5", + "bytes", + "ed25519-dalek", + "hex", + "k256", + "log", + "rand", + "rlp", + "secp256k1", + "serde", + "sha3", + "zeroize", +] + +[[package]] +name = "enum-as-inner" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "570d109b813e904becc80d8d5da38376818a143348413f7149f1340fe04754d4" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "enum-ordinalize" +version = "3.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "enumn" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes 0.8.3", + "ctr 0.9.2", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand", + "scrypt", + "serde", + "serde_json", + "sha2", + "sha3", + "thiserror", + "uuid", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "ethers-contract" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d79269278125006bb0552349c03593ffa9702112ca88bc7046cc669f148fb47c" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce95a43c939b2e4e2f3191c5ad4a1f279780b8a39139c9905b43a7433531e2ab" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "eyre", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "serde", + "serde_json", + "syn 2.0.39", + "toml 0.7.8", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9ce44906fc871b3ee8c69a695ca7ec7f70e50cb379c9b9cb5e532269e492f6" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.39", +] + +[[package]] +name = "ethers-core" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0a17f0708692024db9956b31d7a20163607d2745953f5ae8125ab368ba280ad" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array", + "k256", + "num_enum 0.7.1", + "once_cell", + "open-fastrlp", + "rand", + "rlp", + "serde", + "serde_json", + "strum", + "syn 2.0.39", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-providers" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6838fa110e57d572336178b7c79e94ff88ef976306852d8cb87d9e5b1fc7c0b5" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.5", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea44bec930f12292866166f9ddbea6aa76304850e4d8dcd66dc492b43d00ff1" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve", + "eth-keystore", + "ethers-core", + "rand", + "sha2", + "thiserror", + "tracing", +] + +[[package]] +name = "eyre" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fast-float" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c" + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f69037fe1b785e84986b4f2cbcf647381876a00671d25ceef715d7812dd7e1dd" + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +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 = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" + +[[package]] +name = "futures-executor" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-macro" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "futures-sink" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" + +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "ghash" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 1.9.3", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hash-db" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" + +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash 0.7.7", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.7", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.6", +] + +[[package]] +name = "hashbrown" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +dependencies = [ + "ahash 0.8.6", + "allocator-api2", + "serde", +] + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + +[[package]] +name = "hashlink" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" +dependencies = [ + "hashbrown 0.11.2", +] + +[[package]] +name = "heapless" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" +dependencies = [ + "atomic-polyfill 0.1.11", + "hash32", + "rustc_version 0.4.0", + "serde", + "spin 0.9.8", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hkdf" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.4.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-system-resolver" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eea26c5d0b6ab9d72219f65000af310f042a740926f7b2fa3553e774036e2e7" +dependencies = [ + "derive_builder", + "dns-lookup", + "hyper", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ics23" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "442d4bab37956e76f739c864f246c825d87c0bb7f9afa65660c57833c91bf6d4" +dependencies = [ + "anyhow", + "bytes", + "hex", + "informalsystems-pbjson", + "prost", + "ripemd", + "serde", + "sha2", + "sha3", +] + +[[package]] +name = "icu_collections" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef8302d8dfd6044d3ddb3f807a5ef3d7bbca9a574959c6d6e4dc39aa7012d0d5" +dependencies = [ + "displaydoc", + "serde", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3003f85dccfc0e238ff567693248c59153a46f4e6125ba4020b973cef4d1d335" +dependencies = [ + "displaydoc", + "litemap", + "serde", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "652869735c9fb9f5a64ba180ee16f2c848390469c116deef517ecc53f4343598" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_properties", + "icu_provider", + "serde", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_properties" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0e1aa26851f16c9e04412a5911c86b7f8768dac8f8d4c5f1c568a7e5d7a434" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_provider", + "serde", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_provider" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc312a7b6148f7dfe098047ae2494d12d4034f48ade58d4f353000db376e305" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "postcard", + "serde", + "stable_deref_trait", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_adapters" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ae1e2bd0c41728b77e7c46e9afdec5e2127d1eedacc684724667d50c126bd3" +dependencies = [ + "icu_locid", + "icu_provider", + "serde", + "tinystr", + "yoke", + "zerovec", +] + +[[package]] +name = "icu_provider_blob" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd364c9a01f791a4bc04a74cf2a1d01d9f6926a40fd5ae1c28004e1e70d8338b" +dependencies = [ + "icu_provider", + "postcard", + "serde", + "writeable", + "yoke", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b728b9421e93eff1d9f8681101b78fa745e0748c95c655c83f337044a7e10" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "igd" +version = "0.12.0" +source = "git+https://github.com/stevefan1999-personal/rust-igd?rev=c2d1f83eb1612a462962453cb0703bc93258b173#c2d1f83eb1612a462962453cb0703bc93258b173" +dependencies = [ + "attohttpc", + "bytes", + "futures", + "http", + "hyper", + "log", + "rand", + "tokio", + "url", + "xmltree", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.2", + "serde", +] + +[[package]] +name = "informalsystems-pbjson" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4eecd90f87bea412eac91c6ef94f6b1e390128290898cbe14f2b926787ae1fb" +dependencies = [ + "base64 0.13.1", + "serde", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "jmt" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f1cb339f7d5288603665c0ccbef7ad33a782ced36e18b6b207f175479eb3b7" +dependencies = [ + "anyhow", + "borsh", + "digest 0.10.7", + "hashbrown 0.13.2", + "hex", + "ics23", + "itertools 0.10.5", + "mirai-annotations", + "num-derive", + "num-traits", + "serde", + "sha2", + "thiserror", + "tracing", +] + +[[package]] +name = "js-sys" +version = "0.3.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be0be325642e850ed0bdff426674d2e66b2b7117c9be23a7caef68a2902b7d9" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.5", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "linux-raw-sys" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" + +[[package]] +name = "litemap" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a1a2647d5b7134127971a6de0d533c49de2159167e7f259c427195f87168a1" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "lru" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +dependencies = [ + "hashbrown 0.12.3", +] + +[[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 = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "metrics" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" +dependencies = [ + "ahash 0.8.6", + "metrics-macros", + "portable-atomic", +] + +[[package]] +name = "metrics-macros" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +dependencies = [ + "libc", + "wasi", + "windows-sys", +] + +[[package]] +name = "mirai-annotations" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" + +[[package]] +name = "modular-bitfield" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +dependencies = [ + "modular-bitfield-impl", + "static_assertions", +] + +[[package]] +name = "modular-bitfield-impl" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "more-asserts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" + +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0" +dependencies = [ + "num_enum_derive 0.7.1", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e" +dependencies = [ + "proc-macro-crate 2.0.0", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +dependencies = [ + "atomic-polyfill 1.0.3", + "critical-section", +] + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "page_size" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" +dependencies = [ + "proc-macro-crate 1.3.1", + "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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "smallvec", + "windows-targets", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "pest" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version 0.4.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "plain_hasher" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e19e6491bdde87c2c43d70f4c194bc8a758f2eb732df00f61e43f7362e3b4cc" +dependencies = [ + "crunchy", +] + +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + +[[package]] +name = "pollster" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" + +[[package]] +name = "polyval" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" + +[[package]] +name = "postcard" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +dependencies = [ + "cobs", + "embedded-io", + "heapless", + "serde", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "prettyplease" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" +dependencies = [ + "proc-macro2", + "syn 2.0.39", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +dependencies = [ + "toml_edit 0.20.7", +] + +[[package]] +name = "proc-macro-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", + "syn 1.0.109", + "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.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.4.1", + "lazy_static", + "num-traits", + "rand", + "rand_chacha", + "rand_xorshift", + "regex-syntax 0.8.2", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "public-ip" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4c40db5262d93298c363a299f8bc1b3a956a78eecddba3bc0e58b76e2f419a" +dependencies = [ + "dns-lookup", + "futures-core", + "futures-util", + "http", + "hyper", + "hyper-system-resolver", + "pin-project-lite", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "trust-dns-client", + "trust-dns-proto", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[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", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "regress" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82a9ecfa0cb04d0b04dddb99b8ccf4f66bc8dfd23df694b398570bd8ae3a50fb" +dependencies = [ + "hashbrown 0.13.2", + "memchr", +] + +[[package]] +name = "reqwest" +version = "0.11.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +dependencies = [ + "base64 0.21.5", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "system-configuration", + "tokio", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "reth-codecs" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "bytes", + "codecs-derive", + "revm-primitives", +] + +[[package]] +name = "reth-consensus-common" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "reth-interfaces", + "reth-primitives", + "reth-provider", +] + +[[package]] +name = "reth-db" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "bytes", + "derive_more", + "eyre", + "futures", + "heapless", + "metrics", + "modular-bitfield", + "page_size", + "parity-scale-codec", + "parking_lot 0.12.1", + "postcard", + "rand", + "reth-codecs", + "reth-interfaces", + "reth-libmdbx", + "reth-metrics", + "reth-primitives", + "serde", + "thiserror", + "tokio-stream", + "vergen", +] + +[[package]] +name = "reth-discv4" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "discv5", + "enr", + "generic-array", + "hex", + "parking_lot 0.12.1", + "reth-net-common", + "reth-net-nat", + "reth-primitives", + "reth-rlp", + "reth-rlp-derive", + "secp256k1", + "serde", + "thiserror", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-ecies" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "aes 0.8.3", + "block-padding", + "byteorder", + "cipher 0.4.4", + "ctr 0.9.2", + "digest 0.10.7", + "educe", + "futures", + "generic-array", + "hmac", + "pin-project", + "rand", + "reth-net-common", + "reth-primitives", + "reth-rlp", + "secp256k1", + "sha2", + "sha3", + "thiserror", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", + "typenum", +] + +[[package]] +name = "reth-eth-wire" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "async-trait", + "bytes", + "ethers-core", + "futures", + "metrics", + "pin-project", + "reth-codecs", + "reth-discv4", + "reth-ecies", + "reth-metrics", + "reth-primitives", + "reth-rlp", + "serde", + "smol_str", + "snap", + "thiserror", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", +] + +[[package]] +name = "reth-interfaces" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "async-trait", + "auto_impl", + "futures", + "modular-bitfield", + "parity-scale-codec", + "parking_lot 0.12.1", + "rand", + "reth-codecs", + "reth-eth-wire", + "reth-network-api", + "reth-primitives", + "reth-rpc-types", + "revm-primitives", + "thiserror", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-libmdbx" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "bitflags 2.4.1", + "byteorder", + "derive_more", + "indexmap 2.1.0", + "libc", + "parking_lot 0.12.1", + "reth-mdbx-sys", + "thiserror", +] + +[[package]] +name = "reth-mdbx-sys" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "bindgen 0.68.1", + "cc", + "libc", +] + +[[package]] +name = "reth-metrics" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "metrics", + "reth-metrics-derive", +] + +[[package]] +name = "reth-metrics-derive" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "regex", + "syn 2.0.39", +] + +[[package]] +name = "reth-net-common" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "pin-project", + "reth-primitives", + "tokio", +] + +[[package]] +name = "reth-net-nat" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "igd", + "pin-project-lite", + "public-ip", + "serde_with", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "reth-network-api" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "async-trait", + "reth-discv4", + "reth-eth-wire", + "reth-primitives", + "reth-rpc-types", + "serde", + "thiserror", + "tokio", +] + +[[package]] +name = "reth-primitives" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "bytes", + "c-kzg 0.1.0 (git+https://github.com/ethereum/c-kzg-4844?rev=f5f6f863d475847876a2bd5ee252058d37c3a15d)", + "crc", + "crunchy", + "derive_more", + "ethers-core", + "fixed-hash", + "hash-db", + "hex", + "hex-literal", + "impl-serde", + "modular-bitfield", + "once_cell", + "paste", + "plain_hasher", + "rayon", + "reth-codecs", + "reth-rlp", + "reth-rlp-derive", + "revm-primitives", + "ruint", + "secp256k1", + "serde", + "serde_json", + "serde_with", + "sha2", + "strum", + "sucds", + "tempfile", + "thiserror", + "tiny-keccak", + "tokio", + "tokio-stream", + "tracing", + "triehash", + "url", + "zstd", +] + +[[package]] +name = "reth-provider" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "auto_impl", + "itertools 0.11.0", + "parking_lot 0.12.1", + "pin-project", + "rayon", + "reth-db", + "reth-interfaces", + "reth-primitives", + "reth-revm-primitives", + "reth-trie", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-revm" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "reth-consensus-common", + "reth-interfaces", + "reth-primitives", + "reth-provider", + "reth-revm-inspectors", + "reth-revm-primitives", + "revm", + "tracing", +] + +[[package]] +name = "reth-revm-inspectors" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "boa_engine", + "boa_gc", + "hashbrown 0.14.2", + "reth-primitives", + "reth-rpc-types", + "revm", + "serde", + "serde_json", + "thiserror", + "tokio", +] + +[[package]] +name = "reth-revm-primitives" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "reth-primitives", + "revm", +] + +[[package]] +name = "reth-rlp" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "c-kzg 0.1.0 (git+https://github.com/ethereum/c-kzg-4844?rev=f5f6f863d475847876a2bd5ee252058d37c3a15d)", + "ethereum-types", + "reth-rlp-derive", + "revm-primitives", + "smol_str", +] + +[[package]] +name = "reth-rlp-derive" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "reth-rpc-types" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "itertools 0.11.0", + "jsonrpsee-types", + "reth-primitives", + "reth-rlp", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "reth-rpc-types-compat" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "reth-primitives", + "reth-rlp", + "reth-rpc-types", +] + +[[package]] +name = "reth-trie" +version = "0.1.0-alpha.8" +source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" +dependencies = [ + "derive_more", + "hex", + "reth-db", + "reth-interfaces", + "reth-primitives", + "reth-rlp", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "revm" +version = "3.3.0" +source = "git+https://github.com/bluealloy/revm?rev=516f62cc#516f62ccc1c5f2a62e5fc58115213fe04c7f7a8c" +dependencies = [ + "auto_impl", + "revm-interpreter", + "revm-precompile", +] + +[[package]] +name = "revm-interpreter" +version = "1.1.2" +source = "git+https://github.com/bluealloy/revm?rev=516f62cc#516f62ccc1c5f2a62e5fc58115213fe04c7f7a8c" +dependencies = [ + "derive_more", + "enumn", + "revm-primitives", + "sha3", +] + +[[package]] +name = "revm-precompile" +version = "2.0.3" +source = "git+https://github.com/bluealloy/revm?rev=516f62cc#516f62ccc1c5f2a62e5fc58115213fe04c7f7a8c" +dependencies = [ + "c-kzg 0.1.0 (git+https://github.com/ethereum/c-kzg-4844)", + "hex", + "k256", + "num", + "once_cell", + "revm-primitives", + "ripemd", + "secp256k1", + "sha2", + "sha3", + "substrate-bn", +] + +[[package]] +name = "revm-primitives" +version = "1.1.2" +source = "git+https://github.com/bluealloy/revm?rev=516f62cc#516f62ccc1c5f2a62e5fc58115213fe04c7f7a8c" +dependencies = [ + "auto_impl", + "bitflags 2.4.1", + "bitvec", + "bytes", + "c-kzg 0.1.0 (git+https://github.com/ethereum/c-kzg-4844)", + "derive_more", + "enumn", + "fixed-hash", + "hashbrown 0.14.2", + "hex", + "hex-literal", + "once_cell", + "primitive-types", + "rlp", + "ruint", + "serde", + "sha3", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ruint" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "724fd11728a3804e9944b14cab63825024c40bf42f8af87c8b5d97c4bbacf426" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e666a5496a0b2186dbcd0ff6106e29e093c15591bde62c20d3842007c6978a09" + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.20", +] + +[[package]] +name = "rustix" +version = "0.38.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "ryu-js" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6518fc26bced4d53678a22d6e423e9d8716377def84545fe328236e3af070e7f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher 0.4.4", +] + +[[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 = "scale-info" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "schemars" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 1.0.109", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "rand", + "secp256k1-sys", + "serde", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.192" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.192" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" +dependencies = [ + "base64 0.21.5", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.1.0", + "serde", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" +dependencies = [ + "darling 0.20.3", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[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 = "shlex" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +dependencies = [ + "digest 0.10.7", + "rand_core", +] + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "smol_str" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" +dependencies = [ + "serde", +] + +[[package]] +name = "snap" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "sov-accounts" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "borsh", + "serde", + "sov-modules-api", + "sov-state", + "thiserror", +] + +[[package]] +name = "sov-bank" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "borsh", + "serde", + "sov-modules-api", + "sov-state", + "thiserror", +] + +[[package]] +name = "sov-blob-storage" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "bincode", + "borsh", + "hex", + "serde", + "sov-chain-state", + "sov-modules-api", + "sov-sequencer-registry", + "sov-state", + "tracing", +] + +[[package]] +name = "sov-chain-state" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "borsh", + "serde", + "sov-modules-api", + "sov-state", +] + +[[package]] +name = "sov-evm" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "borsh", + "bytes", + "derive_more", + "ethereum-types", + "ethers-contract", + "ethers-core", + "ethers-signers", + "hex", + "lazy_static", + "reth-interfaces", + "reth-primitives", + "reth-revm", + "reth-rpc-types", + "reth-rpc-types-compat", + "revm", + "secp256k1", + "serde", + "sov-modules-api", + "sov-state", + "thiserror", + "tracing", +] + +[[package]] +name = "sov-mock-da" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "async-trait", + "borsh", + "bytes", + "hex", + "serde", + "sha2", + "sov-rollup-interface", +] + +[[package]] +name = "sov-modules-api" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "bech32", + "borsh", + "derive_more", + "ed25519-dalek", + "hex", + "jmt", + "serde", + "sha2", + "sov-modules-core", + "sov-modules-macros", + "sov-rollup-interface", + "sov-state", + "thiserror", +] + +[[package]] +name = "sov-modules-core" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "bech32", + "borsh", + "derive_more", + "digest 0.10.7", + "hex", + "jmt", + "schemars", + "serde", + "sha2", + "sov-rollup-interface", + "thiserror", +] + +[[package]] +name = "sov-modules-macros" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "borsh", + "proc-macro2", + "quote", + "schemars", + "serde_json", + "sov-modules-core", + "syn 1.0.109", +] + +[[package]] +name = "sov-modules-stf-blueprint" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "borsh", + "hex", + "jmt", + "serde", + "sov-modules-api", + "sov-rollup-interface", + "sov-state", + "thiserror", + "tracing", +] + +[[package]] +name = "sov-nft-module" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "borsh", + "serde", + "sov-modules-api", + "sov-modules-macros", + "sov-state", +] + +[[package]] +name = "sov-rollup-interface" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "async-trait", + "borsh", + "bytes", + "digest 0.10.7", + "hex", + "proptest", + "serde", + "sha2", + "thiserror", +] + +[[package]] +name = "sov-sequencer-registry" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "borsh", + "serde", + "sov-bank", + "sov-modules-api", + "sov-state", +] + +[[package]] +name = "sov-state" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "bcs", + "borsh", + "hex", + "jmt", + "serde", + "serde_json", + "sha2", + "sov-modules-core", + "sov-rollup-interface", + "thiserror", +] + +[[package]] +name = "sov-stf-runner" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "borsh", + "hex", + "serde", + "serde_json", + "sov-rollup-interface", +] + +[[package]] +name = "sov-value-setter" +version = "0.3.0" +source = "git+https://github.com/Sovereign-Labs/sovereign-sdk.git?rev=df169be#df169be87524d8157fd93d3948ac30b21b288719" +dependencies = [ + "anyhow", + "borsh", + "serde", + "sov-modules-api", + "sov-state", + "thiserror", +] + +[[package]] +name = "sov-wasm" +version = "0.1.0" +dependencies = [ + "borsh", + "demo-stf", + "serde", + "serde_json", + "sov-mock-da", + "sov-modules-api", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sptr" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[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.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.39", +] + +[[package]] +name = "substrate-bn" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" +dependencies = [ + "byteorder", + "crunchy", + "lazy_static", + "rand", + "rustc-hex", +] + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "sucds" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64accd20141dfbef67ad83c51d588146cff7810616e1bda35a975be369059533" +dependencies = [ + "anyhow", +] + +[[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.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall 0.4.1", + "rustix", + "windows-sys", +] + +[[package]] +name = "thin-vec" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac81b6fd6beb5884b0cf3321b8117e6e5d47ecb6fc89f414cfdcca8b2fe2dd8" + +[[package]] +name = "thiserror" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +dependencies = [ + "deranged", + "itoa", + "libc", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +dependencies = [ + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8faa444297615a4e020acb64146b0603c9c395c03a97c17fd9028816d3b4d63e" +dependencies = [ + "displaydoc", + "serde", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +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 = "tokio" +version = "1.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.1", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.5", + "tokio-macros", + "windows-sys", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "slab", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.1.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "futures", + "futures-task", + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "triehash" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" +dependencies = [ + "hash-db", + "rlp", +] + +[[package]] +name = "trust-dns-client" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b4ef9b9bde0559b78a4abb00339143750085f05e5a453efb7b8bef1061f09dc" +dependencies = [ + "cfg-if", + "data-encoding", + "futures-channel", + "futures-util", + "lazy_static", + "log", + "radix_trie", + "rand", + "thiserror", + "time", + "tokio", + "trust-dns-proto", +] + +[[package]] +name = "trust-dns-proto" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca94d4e9feb6a181c690c4040d7a24ef34018d8313ac5044a61d21222ae24e31" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.2.3", + "ipnet", + "lazy_static", + "log", + "rand", + "smallvec", + "thiserror", + "tinyvec", + "tokio", + "url", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "universal-hash" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "url" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +dependencies = [ + "form_urlencoded", + "idna 0.4.0", + "percent-encoding", +] + +[[package]] +name = "utf16_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52df8b7fb78e7910d776fccf2e42ceaf3604d55e8e7eb2dbd183cb1441d8a692" + +[[package]] +name = "utf8_iter" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a8922555b9500e3d865caed19330172cd67cbf82203f1a3311d8c305cc9f33" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom", + "serde", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vergen" +version = "8.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1290fd64cc4e7d3c9b07d7f333ce0ce0007253e32870e632624835cc80b83939" +dependencies = [ + "anyhow", + "rustversion", + "time", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.39", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" + +[[package]] +name = "web-sys" +version = "0.3.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + +[[package]] +name = "wildmatch" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f44b95f62d34113cf558c93511ac93027e03e9c29a60dd0fd70e6e025c7270a" + +[[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-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[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 = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "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_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[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_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[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_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "winnow" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys", +] + +[[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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0af0c3d13faebf8dda0b5256fa7096a2d5ccb662f7b9f54a40fe201077ab1c2" + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.0", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xml-rs" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" + +[[package]] +name = "xmltree" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" +dependencies = [ + "xml-rs", +] + +[[package]] +name = "yoke" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61e38c508604d6bbbd292dadb3c02559aa7fff6b654a078a36217cad871636e4" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5e19fb6ed40002bab5403ffa37e53e0e56f914a4450c8765f533018db1db35f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.7.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cd369a67c0edfef15010f980c3cbe45d7f651deac2cd67ce097cd801de16557" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2f140bda219a26ccc0cdb03dba58af72590c53b22642577d88a927bc5c87d6b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "zerofrom" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "655b0814c5c0b19ade497851070c640773304939a6c0fd5f5fb43da0696d05b7" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "zerovec" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "591691014119b87047ead4dcf3e6adfbf73cb7c38ab6980d4f18a32138f35d46" +dependencies = [ + "serde", + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a4a1638a1934450809c2266a70362bfc96cd90550c073f5b8a55014d1010157" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.9+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/external/sov-wasm/Cargo.toml b/external/sov-wasm/Cargo.toml new file mode 100644 index 00000000..a22e5172 --- /dev/null +++ b/external/sov-wasm/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "sov-wasm" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib", "rlib"] + +[dependencies] +borsh = "0.10.3" +serde = "1.0" +serde_json = "1.0" +demo-stf = { git = "https://github.com/Sovereign-Labs/sovereign-sdk.git", rev = "df169be", features = ["serde"] } +sov-modules-api = { git = "https://github.com/Sovereign-Labs/sovereign-sdk.git", rev = "df169be", features = ["serde"] } +sov-mock-da = { git = "https://github.com/Sovereign-Labs/sovereign-sdk.git", rev = "df169be" } diff --git a/external/sov-wasm/Makefile b/external/sov-wasm/Makefile new file mode 100644 index 00000000..83656aeb --- /dev/null +++ b/external/sov-wasm/Makefile @@ -0,0 +1,39 @@ +PROJECT := $(shell sed -n '0,/name\s*=\s*"\(.*\)"/s/name\s*=\s*"\(.*\)"/\1/p' Cargo.toml) +VERSION := $(shell sed -n '0,/version\s*=\s*"\(.*\)"/s/version\s*=\s*"\(.*\)"/\1/p' Cargo.toml) +FLAGS := RUSTFLAGS="$(RUSTFLAGS) --remap-path-prefix $(HOME)= -C link-args=-zstack-size=65536" +WASM := "target/wasm32-wasi/release/$(shell sed -n '0,/name\s*=\s*"\(.*\)"/s/name\s*=\s*"\(.*\)"/\1/p' Cargo.toml | sed 's/-/_/g').wasm" +WAT := "assets/$(PROJECT)-$(VERSION).wat" +WAT_THIN := "assets/$(PROJECT)-$(VERSION)-thin.wat" +PACKAGE := "assets/$(PROJECT)-$(VERSION).wasm" +PACKAGE_SHORT := "assets/$(PROJECT).wasm" +PACKAGE_OPTIMIZED := "assets/$(PROJECT)-$(VERSION)-initial-optimized.wasm" +PACKAGE_INITIAL_OPTIMIZED := "assets/$(PROJECT)-$(VERSION)-initial-optimized.wasm" +PACKAGE_INITIAL_THIN := "assets/$(PROJECT)-$(VERSION)-initial-thin.wasm" +PACKAGE_RESTORED := "assets/$(PROJECT)-$(VERSION)-restored.wasm" +PACKAGE_RESTORED_OPTIMIZED := "assets/$(PROJECT)-$(VERSION)-restored-optimized.wasm" +PACKAGE_THIN := "assets/$(PROJECT)-$(VERSION)-thin.wasm" + +wasm: ## Build the WASM files + @$(FLAGS) cargo build --release --target wasm32-wasi + @cp $(WASM) $(PACKAGE) + @wasm-opt -O4 $(PACKAGE) -o $(PACKAGE_INITIAL_OPTIMIZED) + @wasm-opt -Oz $(PACKAGE_INITIAL_OPTIMIZED) -o $(PACKAGE_INITIAL_THIN) + @wasm2wat $(PACKAGE_INITIAL_THIN) -o $(WAT) + @wat2wasm $(WAT) -o $(PACKAGE_RESTORED) + @wasm-opt --enable-bulk-memory -O4 $(PACKAGE_RESTORED) -o $(PACKAGE_RESTORED_OPTIMIZED) + @wasm-opt --enable-bulk-memory -Oz $(PACKAGE_RESTORED_OPTIMIZED) -o $(PACKAGE_THIN) + @rm $(PACKAGE_INITIAL_OPTIMIZED) \ + $(PACKAGE_INITIAL_THIN) \ + $(WAT) \ + $(PACKAGE_RESTORED) \ + $(PACKAGE_RESTORED_OPTIMIZED) + @mv $(PACKAGE_THIN) $(PACKAGE_SHORT) + @rm $(PACKAGE) + @echo "Package created: $(PACKAGE)" + +help: ## Display this help screen + @grep -h \ + -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \ + awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +.PHONY: wasm help diff --git a/external/sov-wasm/assets/sov-wasm.wasm b/external/sov-wasm/assets/sov-wasm.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c45e745f33247ef8eb5348efda516cbd10e5c6f7 GIT binary patch literal 301994 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