From 1a36c48a78d94f16c00ffeb383c3483b43e06464 Mon Sep 17 00:00:00 2001 From: DaughterOfMars Date: Mon, 27 Jan 2025 06:56:51 -0500 Subject: [PATCH 01/12] chore(examples): Separate examples from the workspace and check them in CI (#4961) * chore(examples): Separate examples from the workspace and check them in CI * Add `isRustExample` gate * sort * Update patch * remove examples copy from docker files * Loop over glob * patch * Remove failure check * try changin runner * Add missing outputs and remove extra checkouts * Option 1 * add udeps * globstar * Revert checkout steps * slightly improve logging --------- Co-authored-by: Thibault Martinez --- .github/actions/diffs/action.yml | 17 +- .github/workflows/_rust.yml | 3 + .github/workflows/_rust_lints.yml | 22 + .github/workflows/hierarchy.yml | 4 +- Cargo.lock | 280 +- Cargo.toml | 6 +- docker/iota-bridge-indexer/Dockerfile | 1 - docker/iota-data-ingestion/Dockerfile | 1 - docker/iota-graphql-rpc/Dockerfile | 1 - docker/iota-indexer/Dockerfile | 1 - docker/iota-node/Dockerfile | 1 - docker/iota-proxy/Dockerfile | 1 - docker/iota-rosetta/Dockerfile | 1 - .../iota-source-validation-service/Dockerfile | 1 - docker/iota-tools/Dockerfile | 1 - docker/iota/Dockerfile | 1 - docs/examples/rust/Cargo.lock | 8380 +++++++++++++++++ docs/examples/rust/Cargo.toml | 24 +- examples/custom-indexer/rust/Cargo.toml | 14 +- examples/tic-tac-toe/cli/Cargo.toml | 12 +- scripts/simtest/config-patch | 4 +- 21 files changed, 8518 insertions(+), 258 deletions(-) create mode 100644 docs/examples/rust/Cargo.lock diff --git a/.github/actions/diffs/action.yml b/.github/actions/diffs/action.yml index ebfa226d4da..c57bcf335b6 100644 --- a/.github/actions/diffs/action.yml +++ b/.github/actions/diffs/action.yml @@ -7,9 +7,21 @@ outputs: isRust: description: True when changes happened to the Rust code value: "${{ steps.diff.outputs.isRust }}" + isRustExample: + description: True when changes happened to the Rust example code + value: "${{ steps.diff.outputs.isRustExample }}" + isRpc: + description: True when changes happened to the RPC code + value: "${{ steps.diff.outputs.isRpc }}" + isPgIntegration: + description: True when changes happened to the PG integration code + value: "${{ steps.diff.outputs.isPgIntegration }}" isMove: description: True when changes happened to the Move code value: "${{ steps.diff.outputs.isMove }}" + isRosetta: + description: True when changes happened to the rosetta code + value: "${{ steps.diff.outputs.isRosetta }}" isExternalCrates: description: True when changes happened in external crates value: "${{ steps.diff.outputs.isExternalCrates }}" @@ -31,7 +43,6 @@ runs: - "crates/**" - "external-crates/**" - "iota-execution/**" - - "docs/examples/rust/**" - ".github/workflows/hierarchy.yml" - ".github/workflows/codecov.yml" - ".github/workflows/_rust.yml" @@ -44,6 +55,10 @@ runs: - "Cargo.lock" - ".config/nextest.toml" - "rust-toolchain.toml" + isRustExample: + - "examples/custom-indexer/rust/**" + - "examples/tic-tac-toe/cli/**" + - "docs/examples/rust/**" isRpc: - "crates/iota-json-rpc/**" - "crates/iota-json-rpc-types/**" diff --git a/.github/workflows/_rust.yml b/.github/workflows/_rust.yml index 8eec9a02566..a2edff4b2a2 100644 --- a/.github/workflows/_rust.yml +++ b/.github/workflows/_rust.yml @@ -5,6 +5,8 @@ on: inputs: isRust: type: boolean + isRustExample: + type: boolean isPgIntegration: type: boolean @@ -36,6 +38,7 @@ jobs: uses: ./.github/workflows/_rust_lints.yml with: isRust: ${{ inputs.isRust }} + isRustExample: ${{ inputs.isRustExample }} deny: uses: ./.github/workflows/_cargo_deny.yml diff --git a/.github/workflows/_rust_lints.yml b/.github/workflows/_rust_lints.yml index 43410a38234..09235d70b1d 100644 --- a/.github/workflows/_rust_lints.yml +++ b/.github/workflows/_rust_lints.yml @@ -5,6 +5,8 @@ on: inputs: isRust: type: boolean + isRustExample: + type: boolean concurrency: group: rust-lints-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -45,6 +47,26 @@ jobs: exit 1 # Fail the workflow fi + examples: + if: (!cancelled() && inputs.isRustExample) + runs-on: [self-hosted] + steps: + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 + - name: Check examples + # Set the globstar opt here to enable recursive glob. + run: | + shopt -s globstar + for manifest in ./**/examples/**/Cargo.toml; do + echo "Checking format for $manifest" + cargo +nightly ci-fmt --manifest-path $manifest + + echo "Clippy linting for $manifest" + cargo clippy --manifest-path $manifest --all-features + + echo "Checking unused dependencies of $manifest" + cargo +nightly ci-udeps --manifest-path $manifest + done + clippy: if: (!cancelled() && !failure() && inputs.isRust) needs: diff --git a/.github/workflows/hierarchy.yml b/.github/workflows/hierarchy.yml index f0d9745e4ba..4d333cd3f70 100644 --- a/.github/workflows/hierarchy.yml +++ b/.github/workflows/hierarchy.yml @@ -13,12 +13,13 @@ on: jobs: diff: - runs-on: [self-hosted] + runs-on: [ubuntu-latest] concurrency: group: diff-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} outputs: isRust: ${{ steps.diff.outputs.isRust }} + isRustExample: ${{ steps.diff.outputs.isRustExample }} isRpc: ${{ steps.diff.outputs.isRpc }} isPgIntegration: ${{ steps.diff.outputs.isPgIntegration }} isMove: ${{ steps.diff.outputs.isMove }} @@ -108,6 +109,7 @@ jobs: secrets: inherit with: isRust: ${{ needs.diff.outputs.isRust == 'true' }} + isRustExample: ${{ needs.diff.outputs.isRustExample == 'true' }} isPgIntegration: ${{ needs.diff.outputs.isPgIntegration == 'true' }} rosetta: diff --git a/Cargo.lock b/Cargo.lock index bd2df2f0801..a66ea05654b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2675,7 +2675,7 @@ dependencies = [ name = "consensus-config" version = "0.1.0" dependencies = [ - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "insta", "iota-network-stack", "rand 0.8.5", @@ -2697,7 +2697,7 @@ dependencies = [ "consensus-config", "dashmap", "enum_dispatch", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "http 1.1.0", "hyper 1.4.1", @@ -2852,15 +2852,6 @@ 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.4" @@ -3197,19 +3188,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "custom-indexer" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-trait", - "iota-data-ingestion-core", - "iota-types", - "prometheus", - "tokio", - "tokio-util 0.7.12", -] - [[package]] name = "cynic" version = "3.7.3" @@ -3485,7 +3463,7 @@ version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ - "convert_case 0.4.0", + "convert_case", "proc-macro2", "quote", "rustc_version", @@ -3695,23 +3673,6 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" -[[package]] -name = "docs-examples" -version = "0.9.0-alpha" -dependencies = [ - "anyhow", - "bcs", - "bip32", - "iota-keys", - "iota-move-build", - "iota-sdk 0.9.0-alpha", - "move-binary-format", - "move-core-types", - "serde_json", - "shared-crypto", - "tokio", -] - [[package]] name = "downcast" version = "0.11.0" @@ -4412,58 +4373,6 @@ dependencies = [ "ascii_utils", ] -[[package]] -name = "fastcrypto" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f9ea2139faa96e4d713803b7777b8fd2d5c245858b1644c08d3220f407149c6" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-secp256r1", - "ark-serialize", - "auto_ops", - "base64ct", - "bech32", - "bincode", - "blake2", - "blst", - "bs58 0.4.0", - "curve25519-dalek-ng", - "derive_more 0.99.18", - "digest 0.10.7", - "ecdsa 0.16.9", - "ed25519-consensus", - "elliptic-curve 0.13.8", - "eyre", - "fastcrypto-derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "generic-array", - "hex", - "hex-literal 0.4.1", - "hkdf", - "lazy_static", - "num-bigint 0.4.6", - "once_cell", - "p256 0.13.2", - "rand 0.8.5", - "readonly", - "rfc6979 0.4.0", - "rsa 0.8.2", - "schemars", - "secp256k1", - "serde", - "serde_json", - "serde_with 2.3.3", - "sha2 0.10.8", - "sha3 0.10.8", - "signature 2.2.0", - "static_assertions", - "thiserror", - "tokio", - "typenum", - "zeroize", -] - [[package]] name = "fastcrypto" version = "0.1.8" @@ -4490,7 +4399,7 @@ dependencies = [ "ecdsa 0.16.9", "ed25519-consensus", "elliptic-curve 0.13.8", - "fastcrypto-derive 0.1.3 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto-derive", "generic-array", "hex", "hex-literal 0.4.1", @@ -4507,7 +4416,7 @@ dependencies = [ "secp256k1", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with", "sha2 0.10.8", "sha3 0.10.8", "signature 2.2.0", @@ -4518,18 +4427,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "fastcrypto-derive" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c0c2af2157f416cb885e11d36cd0de2753f6d5384752d364075c835f5f8f891" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "fastcrypto-derive" version = "0.1.3" @@ -4546,7 +4443,7 @@ source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f9 dependencies = [ "bcs", "digest 0.10.7", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "hex", "itertools 0.10.5", "rand 0.8.5", @@ -4564,7 +4461,7 @@ version = "0.1.0" source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597#5f2c63266a065996d53f98156f0412782b468597" dependencies = [ "bcs", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "lazy_static", "num-bigint 0.4.6", "num-integer", @@ -4591,7 +4488,7 @@ dependencies = [ "blst", "byte-slice-cast", "derive_more 0.99.18", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "ff 0.13.0", "im", "itertools 0.12.1", @@ -5956,7 +5853,7 @@ dependencies = [ "datatest-stable", "diesel", "expect-test", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "fastcrypto-zkp", "fs_extra", "futures", @@ -6082,7 +5979,7 @@ dependencies = [ "clap", "csv", "eyre", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "gcp-bigquery-client", "iota-analytics-indexer-derive", "iota-config", @@ -6134,7 +6031,7 @@ dependencies = [ "byteorder", "bytes", "ed25519-consensus", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "indicatif", "iota-config", @@ -6265,7 +6162,7 @@ dependencies = [ "enum_dispatch", "ethers", "eyre", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "hex-literal 0.3.4", "iota-authority-aggregation", @@ -6287,7 +6184,7 @@ dependencies = [ "reqwest 0.12.7", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with", "shared-crypto", "tap", "telemetry-subscribers", @@ -6306,7 +6203,7 @@ dependencies = [ "anyhow", "clap", "ethers", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "iota-bridge", "iota-config", @@ -6318,7 +6215,7 @@ dependencies = [ "reqwest 0.12.7", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with", "shared-crypto", "telemetry-subscribers", "tokio", @@ -6364,7 +6261,7 @@ dependencies = [ "clap", "derive_more 1.0.0", "diesel", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "iota-config", "iota-core", @@ -6416,7 +6313,7 @@ dependencies = [ "consensus-config", "csv", "dirs 5.0.1", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "iota-genesis-common", "iota-keys", "iota-protocol-config", @@ -6427,7 +6324,7 @@ dependencies = [ "rand 0.8.5", "reqwest 0.12.7", "serde", - "serde_with 3.9.0", + "serde_with", "serde_yaml", "tracing", ] @@ -6455,7 +6352,7 @@ dependencies = [ "enum_dispatch", "expect-test", "eyre", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "fastcrypto-tbls", "fastcrypto-zkp", "fs_extra", @@ -6513,7 +6410,7 @@ dependencies = [ "serde", "serde-reflection", "serde_json", - "serde_with 3.9.0", + "serde_with", "serde_yaml", "shared-crypto", "signature 1.6.4", @@ -6662,7 +6559,7 @@ dependencies = [ "bip32", "clap", "coset", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "fastcrypto-zkp", "fs_extra", "futures", @@ -6856,7 +6753,7 @@ dependencies = [ "camino", "clap", "csv", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "flate2", "fs_extra", "iota-adapter-latest", @@ -6889,7 +6786,7 @@ dependencies = [ "schemars", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with", "serde_yaml", "shared-crypto", "tempfile", @@ -6948,7 +6845,7 @@ dependencies = [ "downcast", "either", "expect-test", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "fastcrypto-zkp", "futures", "hex", @@ -6987,7 +6884,7 @@ dependencies = [ "reqwest 0.12.7", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with", "serde_yaml", "serial_test", "shared-crypto", @@ -7044,7 +6941,7 @@ dependencies = [ "diesel", "diesel_migrations", "downcast", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "iota-config", "iota-data-ingestion-core", @@ -7077,7 +6974,7 @@ dependencies = [ "secrecy", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with", "simulacrum", "tap", "telemetry-subscribers", @@ -7112,7 +7009,7 @@ version = "0.9.0-alpha" dependencies = [ "anyhow", "bcs", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "iota-framework", "iota-move-build", "iota-types", @@ -7137,7 +7034,7 @@ dependencies = [ "cached", "expect-test", "eyre", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "http-body 1.0.1", "hyper 1.4.1", @@ -7184,7 +7081,7 @@ name = "iota-json-rpc-api" version = "0.9.0-alpha" dependencies = [ "anyhow", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "iota-json", "iota-json-rpc-types", "iota-metrics", @@ -7244,7 +7141,7 @@ dependencies = [ "bcs", "colored", "enum_dispatch", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "iota-enum-compat-util", "iota-json", "iota-macros", @@ -7260,7 +7157,7 @@ dependencies = [ "schemars", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with", "tabled", "tracing", ] @@ -7271,7 +7168,7 @@ version = "0.9.0-alpha" dependencies = [ "anyhow", "bip32", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "iota-types", "rand 0.8.5", "regex", @@ -7405,7 +7302,7 @@ name = "iota-move-build" version = "0.9.0-alpha" dependencies = [ "anyhow", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "iota-package-management", "iota-protocol-config", "iota-types", @@ -7438,7 +7335,7 @@ version = "0.1.0" dependencies = [ "bcs", "better_any", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "fastcrypto-vdf", "fastcrypto-zkp", "indexmap 2.5.0", @@ -7467,7 +7364,7 @@ dependencies = [ "bytes", "dashmap", "ed25519-consensus", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "fastcrypto-tbls", "futures", "governor", @@ -7529,7 +7426,7 @@ dependencies = [ "bin-version", "clap", "const-str", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "fastcrypto-zkp", "futures", "git-version", @@ -7572,7 +7469,7 @@ dependencies = [ "anyhow", "bcs", "clap", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "iota-json", "iota-json-rpc", "iota-json-rpc-api", @@ -7609,7 +7506,7 @@ dependencies = [ "bcs", "cynic", "cynic-codegen", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "iota-types", "move-core-types", "reqwest 0.12.7", @@ -7676,7 +7573,7 @@ dependencies = [ "move-vm-config", "schemars", "serde", - "serde_with 3.9.0", + "serde_with", "tracing", ] @@ -7700,7 +7597,7 @@ dependencies = [ "bytes", "clap", "const-str", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "git-version", "hex", @@ -7722,7 +7619,7 @@ dependencies = [ "rustls-pemfile 2.1.3", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with", "serde_yaml", "snap", "telemetry-subscribers", @@ -7767,7 +7664,7 @@ dependencies = [ "regex", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with", "serde_yaml", "shared-crypto", "shellexpand", @@ -7789,7 +7686,7 @@ dependencies = [ "axum", "bcs", "diffy", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "iota-network-stack", "iota-protocol-config", "iota-rust-sdk", @@ -7803,7 +7700,7 @@ dependencies = [ "schemars", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with", "serde_yaml", "tap", "thiserror", @@ -7822,7 +7719,7 @@ dependencies = [ "bcs", "clap", "eyre", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "hyper 1.4.1", "iota-config", @@ -7894,7 +7791,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "serde_with 3.9.0", + "serde_with", "winnow 0.6.20", ] @@ -7909,7 +7806,7 @@ dependencies = [ "clap", "colored", "dirs 5.0.1", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "futures-core", "getset", @@ -7928,7 +7825,7 @@ dependencies = [ "rustls 0.23.18", "serde", "serde_json", - "serde_with 3.9.0", + "serde_with", "shared-crypto", "tempfile", "thiserror", @@ -7983,7 +7880,7 @@ dependencies = [ "anemo", "anemo-tower", "bcs", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "iota-framework", "iota-move-build", "iota-types", @@ -8041,7 +7938,7 @@ dependencies = [ "bcs", "byteorder", "bytes", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "indicatif", "integer-encoding", @@ -8147,7 +8044,7 @@ dependencies = [ "chrono", "clap", "eyre", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "hyper 1.4.1", "hyper-rustls 0.27.3", @@ -8247,7 +8144,7 @@ dependencies = [ "anemo", "anyhow", "bcs", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "insta", "iota-config", "iota-execution", @@ -8260,7 +8157,7 @@ dependencies = [ "prometheus", "rand 0.8.5", "serde", - "serde_with 3.9.0", + "serde_with", "serde_yaml", "shared-crypto", "tempfile", @@ -8288,7 +8185,7 @@ dependencies = [ "axum", "axum-server", "ed25519 2.2.3", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "pkcs8 0.10.2", "rand 0.8.5", "rcgen", @@ -8314,7 +8211,7 @@ dependencies = [ "colored", "comfy-table", "eyre", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "hex", "indicatif", @@ -8387,7 +8284,7 @@ dependencies = [ "clap", "criterion", "eyre", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "iota-config", "iota-core", @@ -8444,7 +8341,7 @@ dependencies = [ "enum_dispatch", "expect-test", "eyre", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "fastcrypto-tbls", "fastcrypto-zkp", "hex", @@ -8490,7 +8387,7 @@ dependencies = [ "serde", "serde-name", "serde_json", - "serde_with 3.9.0", + "serde_with", "serde_yaml", "shared-crypto", "signature 1.6.4", @@ -8526,7 +8423,7 @@ version = "0.9.0-alpha" dependencies = [ "cfg-if", "ed25519-consensus", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "fastcrypto-tbls", "hashbrown 0.12.3", "impl-trait-for-tuples", @@ -9661,12 +9558,9 @@ name = "move-binary-format" version = "0.0.3" dependencies = [ "anyhow", - "arbitrary", "enum-compat-util", "move-core-types", "move-proc-macros", - "proptest", - "proptest-derive", "ref-cast", "serde", "variant_count", @@ -13619,22 +13513,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_with" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" -dependencies = [ - "base64 0.13.1", - "chrono", - "hex", - "indexmap 1.9.3", - "serde", - "serde_json", - "serde_with_macros 2.3.3", - "time", -] - [[package]] name = "serde_with" version = "3.9.0" @@ -13649,22 +13527,10 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "serde_with_macros 3.9.0", + "serde_with_macros", "time", ] -[[package]] -name = "serde_with_macros" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" -dependencies = [ - "darling 0.20.10", - "proc-macro2", - "quote", - "syn 2.0.77", -] - [[package]] name = "serde_with_macros" version = "3.9.0" @@ -13807,7 +13673,7 @@ version = "0.9.0-alpha" dependencies = [ "bcs", "eyre", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "serde", "serde_repr", ] @@ -13944,7 +13810,7 @@ dependencies = [ "anyhow", "async-trait", "bcs", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "futures", "iota-config", "iota-execution", @@ -14745,7 +14611,7 @@ version = "0.9.0-alpha" dependencies = [ "anyhow", "bcs", - "fastcrypto 0.1.8 (git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597)", + "fastcrypto", "fastcrypto-zkp", "futures", "iota-bridge", @@ -14893,24 +14759,6 @@ dependencies = [ "ordered-float", ] -[[package]] -name = "tic-tac-toe" -version = "0.1.0" -dependencies = [ - "anyhow", - "bcs", - "clap", - "dirs 5.0.1", - "fastcrypto 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "iota-keys", - "iota-sdk 0.9.0-alpha", - "iota-types", - "move-core-types", - "serde", - "shared-crypto", - "tokio", -] - [[package]] name = "time" version = "0.3.36" diff --git a/Cargo.toml b/Cargo.toml index be2b62e55c7..e91e9c7d489 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,9 @@ [workspace] resolver = "2" exclude = [ + "docs/examples/rust", + "examples/custom-indexer/rust", + "examples/tic-tac-toe/cli", "external-crates/move/crates/bytecode-interpreter-crypto", "external-crates/move/crates/bytecode-verifier-libfuzzer", "external-crates/move/crates/bytecode-verifier-prop-tests", @@ -152,9 +155,6 @@ members = [ "crates/typed-store-derive", "crates/typed-store-error", "crates/typed-store-workspace-hack", - "docs/examples/rust", - "examples/custom-indexer/rust", - "examples/tic-tac-toe/cli", "iota-execution", "iota-execution/cut", "iota-execution/latest/iota-adapter", diff --git a/docker/iota-bridge-indexer/Dockerfile b/docker/iota-bridge-indexer/Dockerfile index 77ac6a6f55c..893e366a264 100644 --- a/docker/iota-bridge-indexer/Dockerfile +++ b/docker/iota-bridge-indexer/Dockerfile @@ -24,7 +24,6 @@ RUN apt install -y libpq5 libpq-dev ca-certificates COPY consensus consensus COPY crates crates COPY docs docs -COPY examples examples COPY external-crates external-crates COPY iota-execution iota-execution COPY Cargo.toml Cargo.lock ./ diff --git a/docker/iota-data-ingestion/Dockerfile b/docker/iota-data-ingestion/Dockerfile index e0be2db651f..4f876076291 100644 --- a/docker/iota-data-ingestion/Dockerfile +++ b/docker/iota-data-ingestion/Dockerfile @@ -24,7 +24,6 @@ RUN apt install -y ca-certificates COPY consensus consensus COPY crates crates COPY docs docs -COPY examples examples COPY external-crates external-crates COPY iota-execution iota-execution COPY Cargo.toml Cargo.lock ./ diff --git a/docker/iota-graphql-rpc/Dockerfile b/docker/iota-graphql-rpc/Dockerfile index 71de8299bef..b23d4215768 100644 --- a/docker/iota-graphql-rpc/Dockerfile +++ b/docker/iota-graphql-rpc/Dockerfile @@ -24,7 +24,6 @@ RUN apt install -y libpq5 libpq-dev ca-certificates COPY consensus consensus COPY crates crates COPY docs docs -COPY examples examples COPY external-crates external-crates COPY iota-execution iota-execution COPY Cargo.toml Cargo.lock ./ diff --git a/docker/iota-indexer/Dockerfile b/docker/iota-indexer/Dockerfile index 735b721316a..8f352977a4b 100644 --- a/docker/iota-indexer/Dockerfile +++ b/docker/iota-indexer/Dockerfile @@ -24,7 +24,6 @@ RUN apt install -y libpq5 libpq-dev ca-certificates COPY consensus consensus COPY crates crates COPY docs docs -COPY examples examples COPY external-crates external-crates COPY iota-execution iota-execution COPY Cargo.toml Cargo.lock ./ diff --git a/docker/iota-node/Dockerfile b/docker/iota-node/Dockerfile index adb038e38ee..2c9e133c928 100644 --- a/docker/iota-node/Dockerfile +++ b/docker/iota-node/Dockerfile @@ -24,7 +24,6 @@ RUN apt install -y libpq5 libpq-dev ca-certificates COPY consensus consensus COPY crates crates COPY docs docs -COPY examples examples COPY external-crates external-crates COPY iota-execution iota-execution COPY Cargo.toml Cargo.lock ./ diff --git a/docker/iota-proxy/Dockerfile b/docker/iota-proxy/Dockerfile index af0ae00ff63..f1d55f82828 100644 --- a/docker/iota-proxy/Dockerfile +++ b/docker/iota-proxy/Dockerfile @@ -24,7 +24,6 @@ COPY .git/ .git/ COPY consensus consensus COPY crates crates COPY docs docs -COPY examples examples COPY external-crates external-crates COPY iota-execution iota-execution COPY Cargo.toml Cargo.lock ./ diff --git a/docker/iota-rosetta/Dockerfile b/docker/iota-rosetta/Dockerfile index 38c771cca2e..7eb5f1f6d2b 100644 --- a/docker/iota-rosetta/Dockerfile +++ b/docker/iota-rosetta/Dockerfile @@ -24,7 +24,6 @@ RUN apt install -y libpq5 libpq-dev ca-certificates COPY consensus consensus COPY crates crates COPY docs docs -COPY examples examples COPY external-crates external-crates COPY iota-execution iota-execution COPY Cargo.toml Cargo.lock ./ diff --git a/docker/iota-source-validation-service/Dockerfile b/docker/iota-source-validation-service/Dockerfile index dbc3a1f96b5..5d65e2b0cd4 100644 --- a/docker/iota-source-validation-service/Dockerfile +++ b/docker/iota-source-validation-service/Dockerfile @@ -24,7 +24,6 @@ RUN apt install -y libpq5 libpq-dev ca-certificates COPY consensus consensus COPY crates crates COPY docs docs -COPY examples examples COPY external-crates external-crates COPY iota-execution iota-execution COPY Cargo.toml Cargo.lock ./ diff --git a/docker/iota-tools/Dockerfile b/docker/iota-tools/Dockerfile index b2d12835b0d..145d13c5431 100644 --- a/docker/iota-tools/Dockerfile +++ b/docker/iota-tools/Dockerfile @@ -24,7 +24,6 @@ RUN apt install -y libpq5 libpq-dev ca-certificates COPY consensus consensus COPY crates crates COPY docs docs -COPY examples examples COPY external-crates external-crates COPY iota-execution iota-execution COPY Cargo.toml Cargo.lock ./ diff --git a/docker/iota/Dockerfile b/docker/iota/Dockerfile index d1f10350128..a2dcf6c33ff 100644 --- a/docker/iota/Dockerfile +++ b/docker/iota/Dockerfile @@ -24,7 +24,6 @@ RUN apt install -y libpq5 libpq-dev ca-certificates COPY consensus consensus COPY crates crates COPY docs docs -COPY examples examples COPY external-crates external-crates COPY iota-execution iota-execution COPY Cargo.toml Cargo.lock ./ diff --git a/docs/examples/rust/Cargo.lock b/docs/examples/rust/Cargo.lock new file mode 100644 index 00000000000..0a34984166e --- /dev/null +++ b/docs/examples/rust/Cargo.lock @@ -0,0 +1,8380 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addchain" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +dependencies = [ + "num-bigint 0.3.3", + "num-integer", + "num-traits", +] + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[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 = "anemo" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=e609f7697ed6169bf0760882a0b6c032a57e4f3b#e609f7697ed6169bf0760882a0b6c032a57e4f3b" +dependencies = [ + "anyhow", + "async-trait", + "bincode", + "bytes", + "ed25519 1.5.3", + "futures", + "hex", + "http", + "matchit 0.5.0", + "pin-project-lite", + "pkcs8 0.9.0", + "quinn", + "quinn-proto", + "rand 0.8.5", + "rcgen", + "ring", + "rustls", + "rustls-webpki", + "serde", + "serde_json", + "socket2", + "tap", + "thiserror 1.0.69", + "tokio", + "tokio-util", + "tower 0.4.13", + "tracing", + "x509-parser", +] + +[[package]] +name = "anemo-tower" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=e609f7697ed6169bf0760882a0b6c032a57e4f3b#e609f7697ed6169bf0760882a0b6c032a57e4f3b" +dependencies = [ + "anemo", + "bytes", + "dashmap", + "futures", + "governor", + "nonzero_ext", + "pin-project-lite", + "tokio", + "tower 0.4.13", + "tracing", + "uuid", +] + +[[package]] +name = "anstream" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" + +[[package]] +name = "anstyle-parse" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +dependencies = [ + "anstyle", + "once_cell", + "windows-sys 0.59.0", +] + +[[package]] +name = "anyhow" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +dependencies = [ + "backtrace", +] + +[[package]] +name = "arbitrary" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-snark", + "ark-std", + "blake2", + "derivative", + "digest 0.10.7", + "sha2 0.10.8", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "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", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.6", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[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.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff", + "ark-std", + "tracing", +] + +[[package]] +name = "ark-secp256r1" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3975a01b0a6e3eae0f72ec7ca8598a6620fc72fa5981f6f5cca33b7cd788f633" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint 0.4.6", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror 1.0.69", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "async-compression" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", + "zstd", + "zstd-safe", +] + +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "async-trait" +version = "0.1.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "auto_ops" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7460f7dd8e100147b82a63afca1a20eb6c231ee36b90ba7272e14951cb58af59" + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "axum" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +dependencies = [ + "async-trait", + "axum-core", + "base64 0.22.1", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit 0.7.3", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sha1", + "sync_wrapper", + "tokio", + "tokio-tungstenite", + "tower 0.5.2", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[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.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.6.0" +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 1.0.69", +] + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "bellpepper" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae286c2cb403324ab644c7cc68dceb25fe52ca9429908a726d7ed272c1edf7b" +dependencies = [ + "bellpepper-core", + "byteorder", + "ff", +] + +[[package]] +name = "bellpepper-core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8abb418570756396d722841b19edfec21d4e89e1cf8990610663040ecb1aea" +dependencies = [ + "blake2s_simd", + "byteorder", + "ff", + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "better_any" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b359aebd937c17c725e19efcb661200883f04c49c53e7132224dac26da39d4a0" +dependencies = [ + "better_typeid_derive", +] + +[[package]] +name = "better_typeid_derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deeecb812ca5300b7d3f66f730cc2ebd3511c3d36c691dd79c165d5b19a26e3" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bip32" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa13fae8b6255872fd86f7faf4b41168661d7d78609f7bfe6771b85c6739a15b" +dependencies = [ + "bs58 0.5.1", + "hmac", + "k256", + "once_cell", + "pbkdf2 0.12.2", + "rand_core 0.6.4", + "ripemd", + "sha2 0.10.8", + "subtle", + "zeroize", +] + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitcoin-private" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" + +[[package]] +name = "bitcoin_hashes" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" +dependencies = [ + "bitcoin-private", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" + +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + +[[package]] +name = "bitvec" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +dependencies = [ + "funty 1.1.0", + "radium 0.6.2", + "tap", + "wyz 0.2.0", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty 2.0.0", + "radium 0.7.0", + "tap", + "wyz 0.5.1", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.1", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.1", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding 0.2.1", + "generic-array", +] + +[[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.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[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.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[package]] +name = "bnum" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e31ea183f6ee62ac8b8a8cf7feddd766317adfb13ff469de57ce033efd6a790" + +[[package]] +name = "brotli" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytecount" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" + +[[package]] +name = "bytemuck" +version = "1.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +dependencies = [ + "serde", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" +dependencies = [ + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "chrono" +version = "0.4.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.6", +] + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "clap" +version = "4.5.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.1", + "terminal_size", +] + +[[package]] +name = "clap_derive" +version = "4.5.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "clap_lex" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" + +[[package]] +name = "codespan" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3362992a0d9f1dd7c3d0e89e0ab2bb540b7a95fea8cd798090e758fda2899b5e" +dependencies = [ + "codespan-reporting", + "serde", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "serde", + "termcolor", + "unicode-width", +] + +[[package]] +name = "colorchoice" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" + +[[package]] +name = "colored" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" +dependencies = [ + "lazy_static", + "windows-sys 0.59.0", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "consensus-config" +version = "0.1.0" +dependencies = [ + "fastcrypto", + "iota-network-stack", + "rand 0.8.5", + "serde", + "shared-crypto", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "coset" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8cc80f631f8307b887faca24dcc3abc427cd0367f6eb6188f6e8f5b7ad8fb" +dependencies = [ + "ciborium", + "ciborium-io", +] + +[[package]] +name = "cpufeatures" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "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", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "csv" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +dependencies = [ + "memchr", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rustc_version", + "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.96", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core 0.20.10", + "darling_macro 0.20.10", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.96", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core 0.20.10", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "dary_heap" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04d2cd9c18b9f454ed67da600630b021a8a80bf33f8c95896ab33aaf1c26b728" + +[[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.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "data-encoding" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" + +[[package]] +name = "data-encoding-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b16d9d0d88a5273d830dac8b78ceb217ffc9b1d5404e5597a3542515329405b" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1145d32e826a7748b69ee8fc62d3e6355ff7f1051df53141e7048162fc90481b" +dependencies = [ + "data-encoding", + "syn 2.0.96", +] + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "pem-rfc7468 0.6.0", + "zeroize", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint 0.4.6", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +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-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_arbitrary" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.96", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "unicode-xid", +] + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + +[[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 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "docs-examples" +version = "0.1.0" +dependencies = [ + "anyhow", + "bcs", + "bip32", + "iota-keys", + "iota-move-build", + "iota-sdk 0.9.0-alpha", + "move-binary-format", + "move-core-types", + "serde_json", + "shared-crypto", + "tokio", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.9", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "serdect", + "signature 2.2.0", + "spki 0.7.3", +] + +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "pkcs8 0.9.0", + "signature 1.6.4", + "zeroize", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "serde", + "signature 2.2.0", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" +dependencies = [ + "curve25519-dalek-ng", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.9.9", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "ed25519-zebra" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +dependencies = [ + "curve25519-dalek", + "ed25519 2.2.3", + "hashbrown 0.14.5", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.10.8", + "zeroize", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pem-rfc7468 0.7.0", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "sec1", + "serdect", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-compat-util" +version = "0.1.0" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[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.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fail" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3c61c59fdc91f5dbc3ea31ee8623122ce80057058be560654c5d410d181a6" +dependencies = [ + "lazy_static", + "log", + "rand 0.7.3", +] + +[[package]] +name = "fastcrypto" +version = "0.1.8" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597#5f2c63266a065996d53f98156f0412782b468597" +dependencies = [ + "aes", + "aes-gcm", + "ark-ec", + "ark-ff", + "ark-secp256r1", + "ark-serialize", + "auto_ops", + "base64ct", + "bech32", + "bincode", + "blake2", + "blst", + "bs58 0.4.0", + "cbc", + "ctr", + "curve25519-dalek-ng", + "derive_more 0.99.18", + "digest 0.10.7", + "ecdsa", + "ed25519-consensus", + "elliptic-curve", + "fastcrypto-derive", + "generic-array", + "hex", + "hex-literal", + "hkdf", + "lazy_static", + "num-bigint 0.4.6", + "once_cell", + "p256", + "rand 0.8.5", + "readonly", + "rfc6979", + "rsa", + "schemars", + "secp256k1", + "serde", + "serde_json", + "serde_with", + "sha2 0.10.8", + "sha3 0.10.8", + "signature 2.2.0", + "static_assertions", + "thiserror 1.0.69", + "tokio", + "typenum", + "zeroize", +] + +[[package]] +name = "fastcrypto-derive" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597#5f2c63266a065996d53f98156f0412782b468597" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "fastcrypto-tbls" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597#5f2c63266a065996d53f98156f0412782b468597" +dependencies = [ + "bcs", + "digest 0.10.7", + "fastcrypto", + "hex", + "itertools 0.10.5", + "rand 0.8.5", + "serde", + "sha3 0.10.8", + "tap", + "tracing", + "typenum", + "zeroize", +] + +[[package]] +name = "fastcrypto-vdf" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597#5f2c63266a065996d53f98156f0412782b468597" +dependencies = [ + "bcs", + "fastcrypto", + "lazy_static", + "num-bigint 0.4.6", + "num-integer", + "num-prime", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", +] + +[[package]] +name = "fastcrypto-zkp" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597#5f2c63266a065996d53f98156f0412782b468597" +dependencies = [ + "ark-bls12-381", + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-groth16", + "ark-relations", + "ark-serialize", + "ark-snark", + "blst", + "byte-slice-cast", + "derive_more 0.99.18", + "fastcrypto", + "ff", + "im", + "itertools 0.12.1", + "lazy_static", + "neptune", + "num-bigint 0.4.6", + "once_cell", + "regex", + "reqwest", + "schemars", + "serde", + "serde_json", + "typenum", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "bitvec 1.0.1", + "byteorder", + "ff_derive", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff_derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" +dependencies = [ + "addchain", + "cfg-if", + "num-bigint 0.3.3", + "num-integer", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + +[[package]] +name = "flate2" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + +[[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.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers 0.2.6", + "send_wrapper", +] + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "serde", + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getset" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded738faa0e88d3abc9d1a13cb11adc2073c400969eeb8793cf7132589959fc" +dependencies = [ + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "gloo-net" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06f627b1a58ca3d42b45d6104bf1e1a03799df472df00988b6ba21accc10580" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils", + "http", + "js-sys", + "pin-project", + "serde", + "serde_json", + "thiserror 1.0.69", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[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 = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "gloo-utils" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" +dependencies = [ + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand 0.8.5", + "smallvec", + "spinning_top", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.5", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "h2" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.7.1", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "byteorder", + "num-traits", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[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.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +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 = "hmac-sha512" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e806677ce663d0a199541030c816847b36e8dc095f70dae4a4f4ad63da5383" + +[[package]] +name = "http" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" + +[[package]] +name = "httparse" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +dependencies = [ + "futures-util", + "http", + "hyper", + "hyper-util", + "log", + "rustls", + "rustls-native-certs 0.8.1", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +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 = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.4", + "rand_xoshiro", + "sized-chunks", + "typenum", + "version_check", +] + +[[package]] +name = "impl-codec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +dependencies = [ + "parity-scale-codec 2.3.1", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec 3.6.12", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[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.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +dependencies = [ + "equivalent", + "hashbrown 0.15.2", + "serde", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding 0.3.3", + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "iota-adapter-latest" +version = "0.1.0" +dependencies = [ + "anyhow", + "bcs", + "iota-macros", + "iota-metrics", + "iota-move-natives-latest", + "iota-protocol-config", + "iota-types", + "iota-verifier-latest", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-types", + "parking_lot 0.12.3", + "serde", + "tracing", +] + +[[package]] +name = "iota-config" +version = "0.9.0-alpha" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "clap", + "consensus-config", + "csv", + "dirs 5.0.1", + "fastcrypto", + "iota-genesis-common", + "iota-keys", + "iota-protocol-config", + "iota-types", + "object_store", + "once_cell", + "prometheus", + "rand 0.8.5", + "reqwest", + "serde", + "serde_with", + "serde_yaml", + "tracing", +] + +[[package]] +name = "iota-crypto" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98a38db844c910d78825e173c083f2ef416b69cb091bba8ac1055763c6db065b" +dependencies = [ + "aead", + "aes", + "aes-gcm", + "autocfg", + "base64 0.21.7", + "blake2", + "chacha20poly1305", + "cipher", + "curve25519-dalek", + "digest 0.10.7", + "ed25519-zebra", + "generic-array", + "getrandom 0.2.15", + "hkdf", + "hmac", + "iterator-sorted 0.1.0", + "k256", + "num-traits", + "pbkdf2 0.12.2", + "rand 0.8.5", + "scrypt", + "serde", + "sha2 0.10.8", + "tiny-keccak", + "unicode-normalization", + "x25519-dalek", + "zeroize", +] + +[[package]] +name = "iota-enum-compat-util" +version = "0.9.0-alpha" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "iota-execution" +version = "0.1.0" +dependencies = [ + "iota-adapter-latest", + "iota-move-natives-latest", + "iota-protocol-config", + "iota-types", + "iota-verifier-latest", + "move-binary-format", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-vm-config", + "move-vm-runtime", +] + +[[package]] +name = "iota-genesis-common" +version = "0.9.0-alpha" +dependencies = [ + "iota-execution", + "iota-protocol-config", + "iota-types", + "prometheus", +] + +[[package]] +name = "iota-json" +version = "0.9.0-alpha" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto", + "iota-types", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "schemars", + "serde", + "serde_json", +] + +[[package]] +name = "iota-json-rpc-api" +version = "0.9.0-alpha" +dependencies = [ + "anyhow", + "fastcrypto", + "iota-json", + "iota-json-rpc-types", + "iota-metrics", + "iota-open-rpc", + "iota-open-rpc-macros", + "iota-types", + "jsonrpsee", + "once_cell", + "prometheus", + "tap", + "tracing", +] + +[[package]] +name = "iota-json-rpc-types" +version = "0.9.0-alpha" +dependencies = [ + "anyhow", + "bcs", + "colored", + "enum_dispatch", + "fastcrypto", + "iota-enum-compat-util", + "iota-json", + "iota-macros", + "iota-metrics", + "iota-package-resolver", + "iota-protocol-config", + "iota-types", + "itertools 0.13.0", + "json_to_table", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "schemars", + "serde", + "serde_json", + "serde_with", + "tabled", + "tracing", +] + +[[package]] +name = "iota-keys" +version = "0.9.0-alpha" +dependencies = [ + "anyhow", + "bip32", + "fastcrypto", + "iota-types", + "rand 0.8.5", + "regex", + "serde", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "slip10_ed25519", + "tiny-bip39", +] + +[[package]] +name = "iota-macros" +version = "0.9.0-alpha" +dependencies = [ + "futures", + "iota-proc-macros", + "once_cell", + "tracing", +] + +[[package]] +name = "iota-metrics" +version = "0.9.0-alpha" +dependencies = [ + "anemo", + "anemo-tower", + "async-trait", + "axum", + "bytes", + "dashmap", + "futures", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "prometheus-closure-metric", + "scopeguard", + "simple-server-timing-header", + "tap", + "tokio", + "tracing", + "uuid", +] + +[[package]] +name = "iota-move-build" +version = "0.9.0-alpha" +dependencies = [ + "anyhow", + "fastcrypto", + "iota-package-management", + "iota-protocol-config", + "iota-types", + "iota-verifier-latest", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-package", + "move-symbol-pool", + "serde-reflection", + "tempfile", +] + +[[package]] +name = "iota-move-natives-latest" +version = "0.1.0" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-vdf", + "fastcrypto-zkp", + "indexmap 2.7.1", + "iota-protocol-config", + "iota-types", + "move-binary-format", + "move-core-types", + "move-stdlib-natives", + "move-vm-runtime", + "move-vm-types", + "rand 0.8.5", + "smallvec", + "tracing", +] + +[[package]] +name = "iota-network-stack" +version = "0.9.0-alpha" +dependencies = [ + "anemo", + "bcs", + "bytes", + "eyre", + "futures", + "http", + "multiaddr", + "pin-project-lite", + "serde", + "snap", + "tokio", + "tokio-stream", + "tonic", + "tonic-health", + "tower 0.4.13", + "tower-http", + "tracing", +] + +[[package]] +name = "iota-open-rpc" +version = "0.9.0-alpha" +dependencies = [ + "schemars", + "serde", + "serde_json", + "versions", +] + +[[package]] +name = "iota-open-rpc-macros" +version = "0.9.0-alpha" +dependencies = [ + "derive-syn-parse", + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 1.0.109", + "unescape", +] + +[[package]] +name = "iota-package-management" +version = "0.9.0-alpha" +dependencies = [ + "anyhow", + "iota-json-rpc-types", + "iota-sdk 0.9.0-alpha", + "iota-types", + "move-core-types", + "move-package", + "move-symbol-pool", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "iota-package-resolver" +version = "0.9.0-alpha" +dependencies = [ + "async-trait", + "bcs", + "eyre", + "iota-types", + "lru", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "serde", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "iota-proc-macros" +version = "0.9.0-alpha" +dependencies = [ + "msim-macros", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "iota-protocol-config" +version = "0.9.0-alpha" +dependencies = [ + "clap", + "iota-protocol-config-macros", + "move-vm-config", + "schemars", + "serde", + "serde_with", + "tracing", +] + +[[package]] +name = "iota-protocol-config-macros" +version = "0.9.0-alpha" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "iota-rust-sdk" +version = "0.0.0" +source = "git+https://github.com/iotaledger/iota-rust-sdk.git?rev=2ba6b293bdede769a1d9b4d1aecaede2ff7682dd#2ba6b293bdede769a1d9b4d1aecaede2ff7682dd" +dependencies = [ + "base64ct", + "bcs", + "blake2", + "bnum", + "bs58 0.5.1", + "hex", + "roaring", + "schemars", + "serde", + "serde_derive", + "serde_json", + "serde_with", + "winnow 0.6.24", +] + +[[package]] +name = "iota-sdk" +version = "0.9.0-alpha" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.21.7", + "bcs", + "clap", + "colored", + "fastcrypto", + "futures", + "futures-core", + "getset", + "iota-config", + "iota-json", + "iota-json-rpc-api", + "iota-json-rpc-types", + "iota-keys", + "iota-transaction-builder", + "iota-types", + "jsonrpsee", + "move-core-types", + "reqwest", + "rustls", + "serde", + "serde_json", + "serde_with", + "shared-crypto", + "thiserror 1.0.69", + "tokio", + "tracing", +] + +[[package]] +name = "iota-sdk" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dfb0cae5c5bad8186576ca00b8be675257431eda028dcea01cb3b9f276037e" +dependencies = [ + "bech32", + "bitflags 2.8.0", + "bytemuck", + "derive_more 0.99.18", + "getset", + "gloo-timers 0.3.0", + "hashbrown 0.14.5", + "hex", + "iota-crypto", + "iota_stronghold", + "iterator-sorted 0.2.0", + "itertools 0.12.1", + "lazy_static", + "once_cell", + "packable", + "prefix-hex", + "primitive-types 0.12.2", + "rand 0.8.5", + "regex", + "serde", + "serde_json", + "serde_repr", + "url", + "zeroize", +] + +[[package]] +name = "iota-transaction-builder" +version = "0.9.0-alpha" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "futures", + "iota-json", + "iota-json-rpc-types", + "iota-protocol-config", + "iota-types", + "move-binary-format", + "move-core-types", +] + +[[package]] +name = "iota-types" +version = "0.9.0-alpha" +dependencies = [ + "anemo", + "anyhow", + "async-trait", + "bcs", + "better_any", + "bincode", + "byteorder", + "chrono", + "consensus-config", + "derive_more 1.0.0", + "enum_dispatch", + "eyre", + "fastcrypto", + "fastcrypto-tbls", + "fastcrypto-zkp", + "hex", + "im", + "indexmap 2.7.1", + "iota-enum-compat-util", + "iota-macros", + "iota-metrics", + "iota-network-stack", + "iota-protocol-config", + "iota-rust-sdk", + "iota-sdk 1.1.5", + "itertools 0.13.0", + "lru", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-vm-profiler", + "move-vm-test-utils", + "move-vm-types", + "nonempty", + "num-bigint 0.4.6", + "num-rational", + "num-traits", + "num_enum", + "once_cell", + "packable", + "parking_lot 0.12.3", + "passkey-types", + "prometheus", + "rand 0.8.5", + "roaring", + "schemars", + "serde", + "serde-name", + "serde_json", + "serde_with", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "strum 0.26.3", + "strum_macros 0.26.4", + "tap", + "thiserror 1.0.69", + "tonic", + "tracing", + "typed-store-error", +] + +[[package]] +name = "iota-verifier-latest" +version = "0.1.0" +dependencies = [ + "iota-protocol-config", + "iota-types", + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", +] + +[[package]] +name = "iota_stronghold" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c0d301c7edbc31494d183b7d24c1bb51d3fb10fce2f3793df1baf45b6988e10" +dependencies = [ + "bincode", + "hkdf", + "iota-crypto", + "rust-argon2", + "serde", + "stronghold-derive", + "stronghold-utils", + "stronghold_engine", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc0f0a572e8ffe56e2ff4f769f32ffe919282c3916799f8b68688b6030063bea" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "iterator-sorted" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d101775d2bc8f99f4ac18bf29b9ed70c0dd138b9a1e88d7b80179470cbbe8bd2" + +[[package]] +name = "iterator-sorted" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3c1d66191fc266439b989dc1a9a69d9c4156e803ce456221231398b84c35d1" + +[[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.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "json_to_table" +version = "0.6.0" +source = "git+https://github.com/zhiburt/tabled/?rev=e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4#e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4" +dependencies = [ + "serde_json", + "tabled", +] + +[[package]] +name = "jsonrpsee" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5c71d8c1a731cc4227c2f698d377e7848ca12c8a48866fc5e6951c43a4db843" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "jsonrpsee-wasm-client", + "jsonrpsee-ws-client", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "548125b159ba1314104f5bb5f38519e03a41862786aa3925cf349aae9cdd546e" +dependencies = [ + "base64 0.22.1", + "futures-channel", + "futures-util", + "gloo-net", + "http", + "jsonrpsee-core", + "pin-project", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "soketto", + "thiserror 1.0.69", + "tokio", + "tokio-rustls", + "tokio-util", + "tracing", + "url", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2882f6f8acb9fdaec7cefc4fd607119a9bd709831df7d7672a1d3b644628280" +dependencies = [ + "async-trait", + "bytes", + "futures-timer", + "futures-util", + "http", + "http-body", + "http-body-util", + "jsonrpsee-types", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "rustc-hash 2.1.0", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", + "wasm-bindgen-futures", +] + +[[package]] +name = "jsonrpsee-http-client" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3638bc4617f96675973253b3a45006933bde93c2fd8a6170b33c777cc389e5b" +dependencies = [ + "async-trait", + "base64 0.22.1", + "http-body", + "hyper", + "hyper-rustls", + "hyper-util", + "jsonrpsee-core", + "jsonrpsee-types", + "rustls", + "rustls-platform-verifier", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tower 0.4.13", + "tracing", + "url", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06c01ae0007548e73412c08e2285ffe5d723195bf268bce67b1b77c3bb2a14d" +dependencies = [ + "heck 0.5.0", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82ad8ddc14be1d4290cd68046e7d1d37acd408efed6d3ca08aefcc3ad6da069c" +dependencies = [ + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "jsonrpsee-core", + "jsonrpsee-types", + "pin-project", + "route-recognizer", + "serde", + "serde_json", + "soketto", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tokio-util", + "tower 0.4.13", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a178c60086f24cc35bb82f57c651d0d25d99c4742b4d335de04e97fa1f08a8a1" +dependencies = [ + "http", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonrpsee-wasm-client" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a01cd500915d24ab28ca17527e23901ef1be6d659a2322451e1045532516c25" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fe322e0896d0955a3ebdd5bf813571c53fea29edd713bc315b76620b327e86d" +dependencies = [ + "http", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", + "url", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "serdect", + "sha2 0.10.8", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "libflate" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45d9dfdc14ea4ef0900c1cddbc8dcd553fbaacd8a4a282cf4018ae9dd04fb21e" +dependencies = [ + "adler32", + "core2", + "crc32fast", + "dary_heap", + "libflate_lz77", +] + +[[package]] +name = "libflate_lz77" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e0d73b369f386f1c44abd9c570d5318f55ccde816ff4b562fa452e5182863d" +dependencies = [ + "core2", + "hashbrown 0.14.5", + "rle-decode-fast", +] + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.8.0", + "libc", + "redox_syscall 0.5.8", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7717550bb3ec725f7b312848902d1534f332379b1d575d2347ec265c8814566" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "litemap" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "lockfree-object-pool" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" + +[[package]] +name = "log" +version = "0.4.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +dependencies = [ + "serde", +] + +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown 0.15.2", +] + +[[package]] +name = "lsp-types" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e34d33a8e9b006cd3fc4fe69a921affa097bae4bb65f76271f4644f9a334365" +dependencies = [ + "bitflags 1.3.2", + "serde", + "serde_json", + "serde_repr", + "url", +] + +[[package]] +name = "matchit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "minisign-verify" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6367d84fb54d4242af283086402907277715b8fe46976963af5ebf173f8efba3" + +[[package]] +name = "miniz_oxide" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "move-abstract-interpreter" +version = "0.1.0" +dependencies = [ + "move-binary-format", + "move-bytecode-verifier-meter", +] + +[[package]] +name = "move-abstract-stack" +version = "0.0.1" + +[[package]] +name = "move-binary-format" +version = "0.0.3" +dependencies = [ + "anyhow", + "arbitrary", + "enum-compat-util", + "move-core-types", + "move-proc-macros", + "proptest", + "proptest-derive", + "ref-cast", + "serde", + "variant_count", +] + +[[package]] +name = "move-borrow-graph" +version = "0.0.1" + +[[package]] +name = "move-bytecode-source-map" +version = "0.1.0" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", + "serde", +] + +[[package]] +name = "move-bytecode-utils" +version = "0.1.0" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "petgraph", + "serde", + "serde-reflection", +] + +[[package]] +name = "move-bytecode-verifier" +version = "0.1.0" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph", +] + +[[package]] +name = "move-bytecode-verifier-meter" +version = "0.1.0" +dependencies = [ + "move-binary-format", + "move-core-types", + "move-vm-config", +] + +[[package]] +name = "move-command-line-common" +version = "0.1.0" +dependencies = [ + "anyhow", + "bcs", + "difference", + "dirs-next", + "hex", + "move-binary-format", + "move-core-types", + "num-bigint 0.4.6", + "once_cell", + "serde", + "sha2 0.9.9", + "vfs", + "walkdir", +] + +[[package]] +name = "move-compiler" +version = "0.0.1" +dependencies = [ + "anyhow", + "bcs", + "clap", + "codespan-reporting", + "dunce", + "hex", + "lsp-types", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode", + "move-ir-types", + "move-proc-macros", + "move-symbol-pool", + "once_cell", + "petgraph", + "regex", + "serde", + "serde_json", + "similar", + "stacker", + "vfs", +] + +[[package]] +name = "move-core-types" +version = "0.0.4" +dependencies = [ + "anyhow", + "arbitrary", + "bcs", + "enum-compat-util", + "ethnum", + "hex", + "leb128", + "move-proc-macros", + "num", + "once_cell", + "primitive-types 0.10.1", + "proptest", + "proptest-derive", + "rand 0.8.5", + "ref-cast", + "serde", + "serde_bytes", + "thiserror 1.0.69", + "uint", +] + +[[package]] +name = "move-coverage" +version = "0.1.0" +dependencies = [ + "anyhow", + "bcs", + "clap", + "codespan", + "colored", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "petgraph", + "serde", +] + +[[package]] +name = "move-disassembler" +version = "0.1.0" +dependencies = [ + "anyhow", + "bcs", + "clap", + "colored", + "hex", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-ir-types", +] + +[[package]] +name = "move-docgen" +version = "0.1.0" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-compiler", + "move-model", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-ir-to-bytecode" +version = "0.1.0" +dependencies = [ + "anyhow", + "codespan-reporting", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode-syntax", + "move-ir-types", + "move-symbol-pool", + "ouroboros", +] + +[[package]] +name = "move-ir-to-bytecode-syntax" +version = "0.1.0" +dependencies = [ + "anyhow", + "hex", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", +] + +[[package]] +name = "move-ir-types" +version = "0.1.0" +dependencies = [ + "hex", + "move-command-line-common", + "move-core-types", + "move-symbol-pool", + "once_cell", + "serde", +] + +[[package]] +name = "move-model" +version = "0.1.0" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-symbol-pool", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-package" +version = "0.1.0" +dependencies = [ + "anyhow", + "clap", + "colored", + "itertools 0.10.5", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-docgen", + "move-model", + "move-symbol-pool", + "named-lock", + "once_cell", + "petgraph", + "regex", + "serde", + "serde_yaml", + "sha2 0.9.9", + "tempfile", + "toml", + "toml_edit 0.14.4", + "treeline", + "vfs", + "walkdir", + "whoami", +] + +[[package]] +name = "move-proc-macros" +version = "0.1.0" +dependencies = [ + "quote", + "syn 2.0.96", +] + +[[package]] +name = "move-stdlib-natives" +version = "0.1.1" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-symbol-pool" +version = "0.1.0" +dependencies = [ + "once_cell", + "phf", + "serde", +] + +[[package]] +name = "move-vm-config" +version = "0.1.0" +dependencies = [ + "move-binary-format", + "once_cell", +] + +[[package]] +name = "move-vm-profiler" +version = "0.1.0" +dependencies = [ + "move-vm-config", + "once_cell", + "serde", +] + +[[package]] +name = "move-vm-runtime" +version = "0.1.0" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-test-utils" +version = "0.1.0" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "serde", +] + +[[package]] +name = "move-vm-types" +version = "0.1.0" +dependencies = [ + "bcs", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "serde", + "smallvec", +] + +[[package]] +name = "msim-macros" +version = "0.1.0" +source = "git+https://github.com/iotaledger/iota-sim.git?rev=f16ef50ba7d874fe1f0960f248f6c651a634d6a5#f16ef50ba7d874fe1f0960f248f6c651a634d6a5" +dependencies = [ + "darling 0.14.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "multiaddr" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "log", + "multibase", + "multihash", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +dependencies = [ + "core2", + "multihash-derive", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "named-lock" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a3eb6b7c682b65d1f631ec3176829d72ab450b3aacdd3f719bf220822e59ac" +dependencies = [ + "libc", + "once_cell", + "parking_lot 0.12.3", + "thiserror 1.0.69", + "widestring", + "winapi", +] + +[[package]] +name = "neptune" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06626c9ac04c894e9a23d061ba1309f28506cdc5fe64156d28a15fb57fc8e438" +dependencies = [ + "bellpepper", + "bellpepper-core", + "blake2s_simd", + "blstrs", + "byteorder", + "ff", + "generic-array", + "log", + "pasta_curves", + "serde", + "trait-set", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[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 = "nonempty" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "995defdca0a589acfdd1bd2e8e3b896b4d4f7675a31fd14c32611440c7f608e6" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint 0.4.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-modular" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" +dependencies = [ + "num-bigint 0.4.6", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-prime" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e238432a7881ec7164503ccc516c014bf009be7984cde1ba56837862543bdec3" +dependencies = [ + "bitvec 1.0.1", + "either", + "lru", + "num-bigint 0.4.6", + "num-integer", + "num-modular", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint 0.4.6", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +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.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "object_store" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6da452820c715ce78221e8202ccc599b4a52f3e1eb3eedb487b680c81a8e3f3" +dependencies = [ + "async-trait", + "base64 0.22.1", + "bytes", + "chrono", + "futures", + "humantime", + "hyper", + "itertools 0.13.0", + "md-5", + "parking_lot 0.12.3", + "percent-encoding", + "quick-xml", + "rand 0.8.5", + "reqwest", + "ring", + "rustls-pemfile", + "serde", + "serde_json", + "snafu", + "tokio", + "tracing", + "url", + "walkdir", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ouroboros" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954" +dependencies = [ + "aliasable", + "ouroboros_macro", + "static_assertions", +] + +[[package]] +name = "ouroboros_macro" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + +[[package]] +name = "packable" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11259b086696fc9256f790485d8f14f11f0fa60a60351af9693e3d49fd24fdb6" +dependencies = [ + "autocfg", + "packable-derive", + "primitive-types 0.12.2", + "serde", +] + +[[package]] +name = "packable-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567693dd2f9a4339cb0a54adfcc0cb431c0ac88b2e46c6ddfb5f5d11a1cc4f" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[package]] +name = "papergrid" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae7891b22598926e4398790c8fe6447930c72a67d36d983a49d6ce682ce83290" +dependencies = [ + "bytecount", + "fnv", + "unicode-width", +] + +[[package]] +name = "parity-scale-codec" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +dependencies = [ + "arrayvec", + "bitvec 0.20.4", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 2.3.1", + "serde", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec 1.0.1", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 3.6.12", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.8", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "passkey-types" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77144664f6aac5f629d7efa815f5098a054beeeca6ccafee5ec453fd2b0c53f9" +dependencies = [ + "bitflags 2.8.0", + "ciborium", + "coset", + "data-encoding", + "getrandom 0.2.15", + "hmac", + "indexmap 2.7.1", + "rand 0.8.5", + "serde", + "serde_json", + "sha2 0.10.8", + "strum 0.25.0", + "typeshare", + "zeroize", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff", + "group", + "hex", + "lazy_static", + "rand 0.8.5", + "serde", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[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 = "pem" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +dependencies = [ + "base64 0.22.1", + "serde", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset", + "indexmap 1.9.3", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_macros", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" +dependencies = [ + "der 0.6.1", + "pkcs8 0.9.0", + "spki 0.6.0", + "zeroize", +] + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.9", + "spki 0.7.3", +] + +[[package]] +name = "pkg-config" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" + +[[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.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prefix-hex" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f1799f398371ad6957951ec446d3ff322d35c46d9db2e217b67e828b311c249" +dependencies = [ + "hex", + "primitive-types 0.12.2", + "uint", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash 0.7.0", + "impl-codec 0.5.1", + "impl-serde 0.3.2", + "uint", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-serde 0.4.0", + "uint", +] + +[[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 = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +dependencies = [ + "toml_edit 0.22.22", +] + +[[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-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "proc-macro2" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.3", + "protobuf", + "thiserror 1.0.69", +] + +[[package]] +name = "prometheus-closure-metric" +version = "0.9.0-alpha" +dependencies = [ + "anyhow", + "prometheus", + "protobuf", +] + +[[package]] +name = "proptest" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.8.0", + "lazy_static", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "proptest-derive" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "prost" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" +dependencies = [ + "anyhow", + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" +dependencies = [ + "bytes", +] + +[[package]] +name = "psm" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" +dependencies = [ + "cc", +] + +[[package]] +name = "quanta" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bd1fe6824cea6538803de3ff1bc0cf3949024db3d43c9643024bfb33a807c0e" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-xml" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "quinn" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +dependencies = [ + "bytes", + "futures-io", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.1.0", + "rustls", + "socket2", + "thiserror 2.0.11", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +dependencies = [ + "bytes", + "getrandom 0.2.15", + "rand 0.8.5", + "ring", + "rustc-hash 2.1.0", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.11", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "quote" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[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 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "raw-cpuid" +version = "11.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6928fa44c097620b706542d428957635951bade7143269085389d42c8a4927e" +dependencies = [ + "bitflags 2.8.0", +] + +[[package]] +name = "rcgen" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2" +dependencies = [ + "pem", + "ring", + "rustls-pki-types", + "time", + "yasna", +] + +[[package]] +name = "readonly" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a25d631e41bfb5fdcde1d4e2215f62f7f0afa3ff11e26563765bd6ea1d229aeb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[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.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" +dependencies = [ + "bitflags 2.8.0", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "ref-cast" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "reqwest" +version = "0.12.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-native-certs 0.8.1", + "rustls-pemfile", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tokio-util", + "tower 0.5.2", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots", + "windows-registry", +] + +[[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.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] + +[[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 = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "roaring" +version = "0.10.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a652edd001c53df0b3f96a36a8dc93fce6866988efc16808235653c6bcac8bf2" +dependencies = [ + "bytemuck", + "byteorder", +] + +[[package]] +name = "route-recognizer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" + +[[package]] +name = "rsa" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a77d189da1fee555ad95b7e50e7457d91c0e089ec68ca69ad2989413bbdab4" +dependencies = [ + "byteorder", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pkcs1", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sha2 0.10.8", + "signature 2.2.0", + "subtle", + "zeroize", +] + +[[package]] +name = "rust-argon2" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50162d19404029c1ceca6f6980fe40d45c8b369f6f44446fa14bb39573b5bb9" +dependencies = [ + "base64 0.13.1", + "blake2b_simd", + "constant_time_eq 0.1.5", + "crossbeam-utils", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hash" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + +[[package]] +name = "rustix" +version = "0.38.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" +dependencies = [ + "bitflags 2.8.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustls" +version = "0.23.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" +dependencies = [ + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "rustls-pki-types", + "schannel", + "security-framework 2.11.1", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework 3.2.0", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" +dependencies = [ + "web-time", +] + +[[package]] +name = "rustls-platform-verifier" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" +dependencies = [ + "core-foundation 0.9.4", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs 0.7.3", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework 2.11.1", + "security-framework-sys", + "webpki-roots", + "winapi", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" + +[[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.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[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 = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "either", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.96", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" +dependencies = [ + "pbkdf2 0.12.2", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der 0.7.9", + "generic-array", + "pkcs8 0.10.2", + "serdect", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.8.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "num-bigint 0.4.6", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +dependencies = [ + "bitflags 2.8.0", + "core-foundation 0.10.0", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-name" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5b14ebbcc4e4f2b3642fa99c388649da58d1dc3308c7d109f39f565d1710f0" +dependencies = [ + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "serde-reflection" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b6798a64289ff550d8d79847467789a5fd30b42c9c406a4d6dc0bc9b567e55c" +dependencies = [ + "once_cell", + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "serde_bytes" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.137" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" +dependencies = [ + "indexmap 2.7.1", + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[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.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.7.1", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +dependencies = [ + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +dependencies = [ + "indexmap 1.9.3", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "serdect" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" +dependencies = [ + "base16ct", + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[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.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + +[[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 = "shared-crypto" +version = "0.9.0-alpha" +dependencies = [ + "bcs", + "eyre", + "fastcrypto", + "serde", + "serde_repr", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "similar" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" + +[[package]] +name = "simple-server-timing-header" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e78919e05c9b8e123d435a4ad104b488ad1585631830e413830985c214086e" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slip10_ed25519" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be0ff28bf14f9610a342169084e87a4f435ad798ec528dc7579a3678fa9dc9a" +dependencies = [ + "hmac-sha512", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snafu" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soketto" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha1", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.9", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "stacker" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "windows-sys 0.59.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "stronghold-derive" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2835db23c4724c05a2f85b81c4681f4aa8ea158edc8a7f4ad791c916fb766c2e" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "stronghold-runtime" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18db7cc51450cefdab5f4990e128dd02c98da6d2992b93ffef8992ac0d2f3ddf" +dependencies = [ + "dirs 4.0.0", + "iota-crypto", + "libc", + "libsodium-sys-stable", + "log", + "nix", + "rand 0.8.5", + "serde", + "thiserror 1.0.69", + "windows", + "zeroize", +] + +[[package]] +name = "stronghold-utils" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8300214898af5e153e7f66e49dbd1c6a21585f2d592d9f24f58b969792475ed6" +dependencies = [ + "rand 0.8.5", + "stronghold-derive", +] + +[[package]] +name = "stronghold_engine" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd7371c42e557dd71a7f860bb2ec6b6fdb32f97a97987ccc2435fdd1f3a8615" +dependencies = [ + "anyhow", + "dirs-next", + "hex", + "iota-crypto", + "once_cell", + "paste", + "serde", + "stronghold-runtime", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.3", +] + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.96", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.96", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[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.96" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "tabled" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce69a5028cd9576063ec1f48edb2c75339fd835e6094ef3e05b3a079bf594a6" +dependencies = [ + "papergrid", + "tabled_derive", + "unicode-width", +] + +[[package]] +name = "tabled_derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99f688a08b54f4f02f0a3c382aefdb7884d3d69609f785bd253dc033243e3fe4" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tempfile" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" +dependencies = [ + "cfg-if", + "fastrand", + "getrandom 0.2.15", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" +dependencies = [ + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "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.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-bip39" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" +dependencies = [ + "anyhow", + "hmac", + "once_cell", + "pbkdf2 0.11.0", + "rand 0.8.5", + "rustc-hash 1.1.0", + "sha2 0.10.8", + "thiserror 1.0.69", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + +[[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.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" +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.39.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite", +] + +[[package]] +name = "tokio-util" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" + +[[package]] +name = "toml_edit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f" +dependencies = [ + "combine", + "indexmap 1.9.3", + "itertools 0.10.5", + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.7.1", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +dependencies = [ + "indexmap 2.7.1", + "toml_datetime", + "winnow 0.6.24", +] + +[[package]] +name = "tonic" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.22.1", + "bytes", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost", + "socket2", + "tokio", + "tokio-stream", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-health" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1eaf34ddb812120f5c601162d5429933c9b527d901ab0e7f930d3147e33a09b2" +dependencies = [ + "async-stream", + "prost", + "tokio", + "tokio-stream", + "tonic", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "hdrhistogram", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" +dependencies = [ + "async-compression", + "base64 0.21.7", + "bitflags 2.8.0", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "http-range-header", + "httpdate", + "iri-string", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "tokio", + "tokio-util", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing", + "uuid", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", +] + +[[package]] +name = "trait-set" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79e2e9c9ab44c6d7c20d5976961b47e8f49ac199154daa514b77cd1ab536625" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "treeline" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror 1.0.69", + "utf-8", +] + +[[package]] +name = "typed-store-error" +version = "0.9.0-alpha" +dependencies = [ + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "typeshare" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19be0f411120091e76e13e5a0186d8e2bcc3e7e244afdb70152197f1a8486ceb" +dependencies = [ + "chrono", + "serde", + "serde_json", + "typeshare-annotation", +] + +[[package]] +name = "typeshare-annotation" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a615d6c2764852a2e88a4f16e9ce1ea49bb776b5872956309e170d63a042a34f" +dependencies = [ + "quote", + "syn 2.0.96", +] + +[[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 = "unescape" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + +[[package]] +name = "unicode-ident" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "ureq" +version = "2.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" +dependencies = [ + "base64 0.22.1", + "log", + "once_cell", + "url", +] + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" +dependencies = [ + "getrandom 0.2.15", + "rand 0.8.5", +] + +[[package]] +name = "variant_count" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae2faf80ac463422992abf4de234731279c058aaf33171ca70277c98406b124" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "versions" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee97e1d97bd593fb513912a07691b742361b3dd64ad56f2c694ea2dbfe0665d3" +dependencies = [ + "itertools 0.10.5", + "nom", +] + +[[package]] +name = "vfs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4fe92cfc1bad19c19925d5eee4b30584dbbdee4ff10183b261acccbef74e2d" + +[[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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.96", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.26.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "whoami" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" +dependencies = [ + "redox_syscall 0.5.8", + "wasite", + "web-sys", +] + +[[package]] +name = "widestring" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" + +[[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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[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" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e53b97a83176b369b0eb2fd8158d4ae215357d02df9d40c1e1bf1879c5482c80" +dependencies = [ + "windows_aarch64_msvc 0.36.1", + "windows_i686_gnu 0.36.1", + "windows_i686_msvc 0.36.1", + "windows_x86_64_gnu 0.36.1", + "windows_x86_64_msvc 0.36.1", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" +dependencies = [ + "memchr", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x25519-dalek" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +dependencies = [ + "curve25519-dalek", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.1", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror 1.0.69", + "time", +] + +[[package]] +name = "xattr" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909" +dependencies = [ + "libc", + "linux-raw-sys", + "rustix", +] + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "synstructure 0.13.1", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "synstructure 0.13.1", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "serde", + "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.96", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "zip" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae9c1ea7b3a5e1f4b922ff856a129881167511563dc219869afe3787fc0c1a45" +dependencies = [ + "arbitrary", + "crc32fast", + "crossbeam-utils", + "displaydoc", + "flate2", + "indexmap 2.7.1", + "memchr", + "thiserror 2.0.11", + "zopfli", +] + +[[package]] +name = "zopfli" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946" +dependencies = [ + "bumpalo", + "crc32fast", + "lockfree-object-pool", + "log", + "once_cell", + "simd-adler32", +] + +[[package]] +name = "zstd" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.13+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/docs/examples/rust/Cargo.toml b/docs/examples/rust/Cargo.toml index b395318ce83..d30105bad54 100644 --- a/docs/examples/rust/Cargo.toml +++ b/docs/examples/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "docs-examples" -version.workspace = true +version = "0.1.0" authors = ["IOTA Stiftung"] edition = "2021" license = "Apache-2.0" @@ -8,24 +8,24 @@ publish = false [dependencies] # external dependencies -anyhow.workspace = true +anyhow = "1.0" # internal dependencies -iota-keys.workspace = true -iota-move-build.workspace = true -iota-sdk.workspace = true -move-binary-format = { workspace = true, features = ["fuzzing"] } -shared-crypto.workspace = true +iota-keys = { path = "../../../crates/iota-keys" } +iota-move-build = { path = "../../../crates/iota-move-build" } +iota-sdk = { path = "../../../crates/iota-sdk" } +move-binary-format = { path = "../../../external-crates/move/crates/move-binary-format", features = ["fuzzing"] } +shared-crypto = { path = "../../../crates/shared-crypto" } [dev-dependencies] # external dependencies -bcs.workspace = true -bip32.workspace = true -serde_json.workspace = true -tokio.workspace = true +bcs = "0.1" +bip32 = "0.5" +serde_json = "1.0" +tokio = "1.39" # internal dependencies -move-core-types.workspace = true +move-core-types = { path = "../../../external-crates/move/crates/move-core-types" } [[example]] name = "address-unlock-condition" diff --git a/examples/custom-indexer/rust/Cargo.toml b/examples/custom-indexer/rust/Cargo.toml index 179c9beaae9..269da75bf17 100644 --- a/examples/custom-indexer/rust/Cargo.toml +++ b/examples/custom-indexer/rust/Cargo.toml @@ -6,15 +6,15 @@ license = "Apache-2.0" [dependencies] # external dependencies -anyhow.workspace = true -async-trait.workspace = true -prometheus.workspace = true -tokio.workspace = true -tokio-util.workspace = true +anyhow = "1.0" +async-trait = "0.1" +prometheus = "0.13" +tokio = "1.39" +tokio-util = "0.7" # internal dependencies -iota-data-ingestion-core.workspace = true -iota-types.workspace = true +iota-data-ingestion-core = { path = "../../../crates/iota-data-ingestion-core" } +iota-types = { path = "../../../crates/iota-types" } [[bin]] name = "local_reader" diff --git a/examples/tic-tac-toe/cli/Cargo.toml b/examples/tic-tac-toe/cli/Cargo.toml index cadcf22ede6..f2d70eb33f5 100644 --- a/examples/tic-tac-toe/cli/Cargo.toml +++ b/examples/tic-tac-toe/cli/Cargo.toml @@ -6,13 +6,13 @@ license = "Apache-2.0" [dependencies] # external dependencies -anyhow = "1.0.86" -bcs = "0.1.6" +anyhow = "1.0" +bcs = "0.1" clap = { version = "4.5", features = ["derive", "env", "wrap_help"] } -dirs = "5.0.1" -fastcrypto = "0.1.8" -serde = { version = "1.0.203", features = ["derive"] } -tokio = { version = "1.38.0", features = ["time"] } +dirs = "6.0" +fastcrypto = "0.1" +serde = { version = "1.0", features = ["derive"] } +tokio = { version = "1.39", features = ["time"] } # internal dependencies iota-keys = { path = "../../../crates/iota-keys" } diff --git a/scripts/simtest/config-patch b/scripts/simtest/config-patch index c186afaf26a..c44c9c6cea5 100644 --- a/scripts/simtest/config-patch +++ b/scripts/simtest/config-patch @@ -12,10 +12,10 @@ index cc5620ecfe..d2ad8f1dac 100644 # 64 bit MSVC, override default 1M stack with 8M stack [target.x86_64-pc-windows-msvc] diff --git a/Cargo.toml b/Cargo.toml -index a2371ff16f..57a1fedaa5 100644 +index e91e9c7d48..d719828c54 100644 --- a/Cargo.toml +++ b/Cargo.toml -@@ -461,3 +461,7 @@ transaction-fuzzer = { path = "crates/transaction-fuzzer" } +@@ -466,3 +466,7 @@ transaction-fuzzer = { path = "crates/transaction-fuzzer" } typed-store = { path = "crates/typed-store" } typed-store-derive = { path = "crates/typed-store-derive" } typed-store-error = { path = "crates/typed-store-error" } From 86bfccea6e97f60624b444e081d36fff23532993 Mon Sep 17 00:00:00 2001 From: muXxer Date: Mon, 27 Jan 2025 13:57:17 +0100 Subject: [PATCH 02/12] fix: default node p2p `listen_address` port (#5030) --- crates/iota-config/src/p2p.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/iota-config/src/p2p.rs b/crates/iota-config/src/p2p.rs index 21fa661c274..46836873bc0 100644 --- a/crates/iota-config/src/p2p.rs +++ b/crates/iota-config/src/p2p.rs @@ -42,7 +42,7 @@ pub struct P2pConfig { } fn default_listen_address() -> SocketAddr { - "0.0.0.0:8080".parse().unwrap() + "0.0.0.0:8084".parse().unwrap() } impl Default for P2pConfig { From d367b1a03a5a1611dd6ae3fd8e751d8afb78d228 Mon Sep 17 00:00:00 2001 From: "Ching-Hua (Vivian) Lin" Date: Mon, 27 Jan 2025 21:03:05 +0800 Subject: [PATCH 03/12] fix: Ignore `verify_latest_tx_replay_testnet_mainnet` test for now (#5014) Co-authored-by: muXxer --- crates/iota-replay/src/tests.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/iota-replay/src/tests.rs b/crates/iota-replay/src/tests.rs index 73114511319..f88b0086f08 100644 --- a/crates/iota-replay/src/tests.rs +++ b/crates/iota-replay/src/tests.rs @@ -21,9 +21,11 @@ const NUM_CHECKPOINTS_TO_ATTEMPT: usize = 10_000; /// Checks that replaying the latest tx on each testnet and mainnet does not /// fail #[tokio::test] +#[ignore = "https://github.com/iotaledger/iota/issues/5031"] async fn verify_latest_tx_replay_testnet_mainnet() { let _ = verify_latest_tx_replay_impl().await; } + async fn verify_latest_tx_replay_impl() { let default_cfg = ReplayableNetworkConfigSet::default(); let urls: Vec<_> = default_cfg @@ -46,7 +48,7 @@ async fn verify_latest_tx_replay_impl() { .await .unwrap(); - let chain_id = rpc_client.read_api().get_chain_identifier().await.unwrap(); + let chain_id = rpc_client.read_api().get_chain_identifier().await.unwrap(); let mut subject_checkpoint = rpc_client .read_api() From 3c3d80d2465f6ea75b510ac10938e3449544e2b9 Mon Sep 17 00:00:00 2001 From: Thoralf-M <46689931+Thoralf-M@users.noreply.github.com> Date: Mon, 27 Jan 2025 14:35:35 +0100 Subject: [PATCH 04/12] feat(iota/docs): add dev inspect test and docs (#5022) * feat(iota): add dev inspect test * feat(iota): avoid potential useless allocation https://github.com/iotaledger/iota/pull/5021#discussion_r1928990920 * feat(docs): add dry run and dev inspect section * Apply suggestions from code review Co-authored-by: Thibault Martinez Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> --------- Co-authored-by: Thibault Martinez Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> --- crates/iota/src/client_commands.rs | 2 +- crates/iota/tests/cli_tests.rs | 15 ++ docs/content/references/cli/ptb.mdx | 241 +++++++++++++++++++++++++++- 3 files changed, 256 insertions(+), 2 deletions(-) diff --git a/crates/iota/src/client_commands.rs b/crates/iota/src/client_commands.rs index 58a0d3b1f9b..f77eb3ebfd5 100644 --- a/crates/iota/src/client_commands.rs +++ b/crates/iota/src/client_commands.rs @@ -2962,11 +2962,11 @@ async fn execute_dev_inspect( ) -> Result { let client = context.get_client().await?; let gas_budget = gas_budget.map(iota_serde::BigInt::from); - let mut gas_objs = vec![]; let gas_objects = if let Some(gas_payment) = gas_payment { if gas_payment.is_empty() { None } else { + let mut gas_objs = vec![]; for o in gas_payment.iter() { let obj_ref = context.get_object_ref(*o).await?; gas_objs.push(obj_ref); diff --git a/crates/iota/tests/cli_tests.rs b/crates/iota/tests/cli_tests.rs index 66798b196db..b4beae11e28 100644 --- a/crates/iota/tests/cli_tests.rs +++ b/crates/iota/tests/cli_tests.rs @@ -4578,3 +4578,18 @@ async fn test_call_command_emit_args() -> Result<(), anyhow::Error> { Ok(()) } + +#[sim_test] +async fn test_ptb_dev_inspect() -> Result<(), anyhow::Error> { + let mut test_cluster = TestClusterBuilder::new().build().await; + let context = &mut test_cluster.wallet; + + let publish_ptb_string = r#" + --assign hello_option "some('Hello')" \ + --move-call std::option::borrow "" hello_option \ + --dev-inspect + "#; + let args = shlex::split(publish_ptb_string).unwrap(); + iota::client_ptb::ptb::PTB { args }.execute(context).await?; + Ok(()) +} diff --git a/docs/content/references/cli/ptb.mdx b/docs/content/references/cli/ptb.mdx index 10218be1f6e..ac9f88cfbd2 100644 --- a/docs/content/references/cli/ptb.mdx +++ b/docs/content/references/cli/ptb.mdx @@ -30,7 +30,9 @@ Options: --dry-run Perform a dry run of the PTB instead of executing it. - + --dev-inspect + Perform a dev inspect of the PTB instead of executing it. + --gas-coin The object ID of the gas coin to use. If not specified, it will try to use the first gas coin that it finds that has at least the requested gas-budget balance. --make-move-vec <[VALUES]> Given n-values of the same type, it constructs a vector. For non objects or an empty vector, the type tag must be specified. --merge-coins <[COIN OBJECTS]> Merge N coins into the provided coin. @@ -237,3 +239,240 @@ You cannot use the following words for variable names: ## JSON output Append the `--json` flag to commands to format responses in JSON instead of the more human-friendly default IOTA CLI output. This can be useful for extremely large datasets, for example, as those results can have a troublesome display on smaller screens. In these cases, the `--json` flag is useful. + +## `dry-run` and `dev-inspect` + +Both flags can simulate a transaction block and show its effects without committing it to the blockchain, meaning no gas fees are charged. + +A `dry-run` is ideal for quickly checking whether a transaction will succeed or fail. +It's helpful for testing the transaction logic and confirming that the transaction behaves as expected. + +A `dev-inspect` is useful for in-depth analysis and troubleshooting of transaction logic or inspection of on-chain data. +`dev-inspect` enables users to call any Move function with specified arguments, returning outputs and modified inputs without altering the state. +Also, results don't need to be handled as usual, references to objects can be returned, and owned objects don't need to be destroyed or transferred. +The result for each PTB transaction is printed at the end of the `dev-inspect` output. + +### `dry-run` Example + +```bash +iota client ptb \ +--move-call iota::tx_context::sender \ +--assign sender \ +--split-coins gas "[1000000000]" \ +--assign coin \ +--transfer-objects "[coin]" sender \ +--dry-run +``` + +
+Output: + +``` +Dry run completed, execution status: success +╭──────────────────────────────────────────────────────────────────────────────────────╮ +│ Dry Run Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc │ +│ Gas Owner: 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc │ +│ Gas Budget: 50000000000 NANOS │ +│ Gas Price: 1000 NANOS │ +│ Gas Payment: │ +│ │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: u64, Value: "1000000000" │ │ +│ ╰──────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: sender │ │ +│ │ │ Module: tx_context │ │ +│ │ │ Package: 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 SplitCoins: │ │ +│ │ ┌ │ │ +│ │ │ Coin: GasCoin │ │ +│ │ │ Amounts: │ │ +│ │ │ Input 0 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 2 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 1 │ │ +│ │ │ Address: Result 0 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: DkkfwFB3qqojaKaijocXhWYwHhDysEQEceZpwDBaoBgv │ +│ Status: Success │ +│ Executed Epoch: 67 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x66cb2f98a4cbb9da278e197ec7fe675f9e47b12c13aac731c94f46d29153d425 │ +│ │ Owner: Account Address ( 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc ) │ +│ │ Version: 2 │ +│ │ Digest: Zy4jEt7kaFEjeaFRnbw9BRSo8CJibJXD2JtLeVe3duc │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0xc5ea5446fdabc9b87b5c5e42344d73d72b02c69e41e0a3bf8dd8fe1c9d27ecbf │ +│ │ Owner: Account Address ( 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc ) │ +│ │ Version: 2 │ +│ │ Digest: aennzwscgtoZmsGK1kcPq7VQobC1uYk1pj8oADhjCtj │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xc5ea5446fdabc9b87b5c5e42344d73d72b02c69e41e0a3bf8dd8fe1c9d27ecbf │ +│ │ Owner: Account Address ( 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc ) │ +│ │ Version: 2 │ +│ │ Digest: aennzwscgtoZmsGK1kcPq7VQobC1uYk1pj8oADhjCtj │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 1960800 NANOS │ +│ Computation Cost: 1000000 NANOS │ +│ Storage Rebate: 0 NANOS │ +│ Non-refundable Storage Fee: 0 NANOS │ +│ │ +│ Transaction Dependencies: │ +│ AS3GZusoMp8xxPvPBvwbUYnPPH7GxVNxnjkgLXzQAPPk │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x66cb2f98a4cbb9da278e197ec7fe675f9e47b12c13aac731c94f46d29153d425 │ +│ │ Sender: 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc │ +│ │ Owner: Account Address ( 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::iota::IOTA> │ +│ │ Version: 2 │ +│ │ Digest: Zy4jEt7kaFEjeaFRnbw9BRSo8CJibJXD2JtLeVe3duc │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0xc5ea5446fdabc9b87b5c5e42344d73d72b02c69e41e0a3bf8dd8fe1c9d27ecbf │ +│ │ Sender: 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc │ +│ │ Owner: Account Address ( 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::iota::IOTA> │ +│ │ Version: 2 │ +│ │ Digest: aennzwscgtoZmsGK1kcPq7VQobC1uYk1pj8oADhjCtj │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc ) │ +│ │ CoinType: 0x2::iota::IOTA │ +│ │ Amount: 1000000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +Dry run completed, execution status: success +Estimated gas cost (includes a small buffer): 3960800 NANOS +``` + +
+ +### `dev-inspect` Example + +```bash +iota client ptb \ +--move-call iota::tx_context::sender \ +--assign sender \ +--split-coins gas "[1000000000]" \ +--assign coin \ +--transfer-objects "[coin]" sender \ +--dev-inspect +``` + +
+Output: + +```bash +Dev inspect completed, execution status: success +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: DkkfwFB3qqojaKaijocXhWYwHhDysEQEceZpwDBaoBgv │ +│ Status: Success │ +│ Executed Epoch: 67 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x66cb2f98a4cbb9da278e197ec7fe675f9e47b12c13aac731c94f46d29153d425 │ +│ │ Owner: Account Address ( 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc ) │ +│ │ Version: 2 │ +│ │ Digest: Zy4jEt7kaFEjeaFRnbw9BRSo8CJibJXD2JtLeVe3duc │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0xbb846ea192d85cd7088f05571b0a324dbecd3e4d8cb0144af1383adbcc143644 │ +│ │ Owner: Account Address ( 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc ) │ +│ │ Version: 2 │ +│ │ Digest: 9nZx2QNK7hvBDXLHQazCg4p32pfGcXtXJ3HrEuYGgnjH │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xbb846ea192d85cd7088f05571b0a324dbecd3e4d8cb0144af1383adbcc143644 │ +│ │ Owner: Account Address ( 0xa5657935a0698bf654ce4ceb66b5a6d6a371a934a6afcfd1e191aa2ee460c8cc ) │ +│ │ Version: 2 │ +│ │ Digest: 9nZx2QNK7hvBDXLHQazCg4p32pfGcXtXJ3HrEuYGgnjH │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 1960800 NANOS │ +│ Computation Cost: 1000000 NANOS │ +│ Storage Rebate: 0 NANOS │ +│ Non-refundable Storage Fee: 0 NANOS │ +│ │ +│ Transaction Dependencies: │ +│ AS3GZusoMp8xxPvPBvwbUYnPPH7GxVNxnjkgLXzQAPPk │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ +Execution Result + Return values + IOTA TypeTag: IotaTypeTag("address") + Bytes: [165, 101, 121, 53, 160, 105, 139, 246, 84, 206, 76, 235, 102, 181, 166, 214, 163, 113, 169, 52, 166, 175, 207, 209, 225, 145, 170, 46, 228, 96, 200, 204] + Mutable Reference Outputs + IOTA Argument: GasCoin + IOTA TypeTag: IotaTypeTag("0x2::coin::Coin<0x2::iota::IOTA>") + Bytes: [187, 132, 110, 161, 146, 216, 92, 215, 8, 143, 5, 87, 27, 10, 50, 77, 190, 205, 62, 77, 140, 176, 20, 74, 241, 56, 58, 219, 204, 20, 54, 68, 0, 210, 206, 244, 220, 0, 0, 0] + Return values + IOTA TypeTag: IotaTypeTag("0x2::coin::Coin<0x2::iota::IOTA>") + Bytes: [102, 203, 47, 152, 164, 203, 185, 218, 39, 142, 25, 126, 199, 254, 103, 95, 158, 71, 177, 44, 19, 170, 199, 49, 201, 79, 70, 210, 145, 83, 212, 37, 0, 202, 154, 59, 0, 0, 0, 0] +``` + +
+ +The following example is only possible with `dev-inspect` as it returns a borrowed value from a function: + +```bash +iota client ptb \ +--assign hello_option "some('Hello')" \ +--move-call std::option::borrow "" hello_option \ +--dev-inspect +``` + +Result section from the output: +``` +Execution Result + Return values + IOTA TypeTag: IotaTypeTag("0x1::string::String") + Bytes: [5, 72, 101, 108, 108, 111] +``` \ No newline at end of file From c4db383e4bedb739391834ed913a0f3bfaf98e92 Mon Sep 17 00:00:00 2001 From: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> Date: Mon, 27 Jan 2025 11:10:47 -0300 Subject: [PATCH 05/12] fix(devx): Change Sidebar Label for Ts SDK's IotaClient (#5033) --- docs/content/ts-sdk/typescript/iota-client.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/content/ts-sdk/typescript/iota-client.mdx b/docs/content/ts-sdk/typescript/iota-client.mdx index c247114639d..cfdd6e6a83e 100644 --- a/docs/content/ts-sdk/typescript/iota-client.mdx +++ b/docs/content/ts-sdk/typescript/iota-client.mdx @@ -1,3 +1,7 @@ +--- +sidebar_label: IotaClient +--- + # Network Interactions with IotaClient The IOTA TypeScript SDK provides a `IotaClient` class to connect to a network's JSON-RPC server. Use From 7a3da10ab1345d331a64b8bf28f9718693193c19 Mon Sep 17 00:00:00 2001 From: DaughterOfMars Date: Mon, 27 Jan 2025 09:41:11 -0500 Subject: [PATCH 06/12] don't cancel in progress on develop (#5034) --- .github/workflows/_cargo_deny.yml | 2 +- .github/workflows/_docs_lint.yml | 2 +- .github/workflows/_docusaurus.yml | 2 +- .github/workflows/_e2e.yml | 2 +- .github/workflows/_ledgernano.yml | 2 +- .github/workflows/_move_ide.yml | 2 +- .github/workflows/_rust_lints.yml | 2 +- .github/workflows/_typos.yml | 2 +- .github/workflows/hierarchy.yml | 4 ++-- .github/workflows/preview_wiki.yml | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/_cargo_deny.yml b/.github/workflows/_cargo_deny.yml index aab5dac50a3..586228450f5 100644 --- a/.github/workflows/_cargo_deny.yml +++ b/.github/workflows/_cargo_deny.yml @@ -10,7 +10,7 @@ on: concurrency: group: cargo-deny-${{ inputs.manifest-path || './Cargo.toml' }}-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: bans-licenses-sources: diff --git a/.github/workflows/_docs_lint.yml b/.github/workflows/_docs_lint.yml index 35314d3f409..932219fe015 100644 --- a/.github/workflows/_docs_lint.yml +++ b/.github/workflows/_docs_lint.yml @@ -4,7 +4,7 @@ on: workflow_call concurrency: group: docs-lint-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: spelling: diff --git a/.github/workflows/_docusaurus.yml b/.github/workflows/_docusaurus.yml index e13b4f0e13b..dce810498b4 100644 --- a/.github/workflows/_docusaurus.yml +++ b/.github/workflows/_docusaurus.yml @@ -4,7 +4,7 @@ on: workflow_call concurrency: group: docusaurus-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: build: diff --git a/.github/workflows/_e2e.yml b/.github/workflows/_e2e.yml index 64a07525a37..c4cbf9539e0 100644 --- a/.github/workflows/_e2e.yml +++ b/.github/workflows/_e2e.yml @@ -25,7 +25,7 @@ on: concurrency: group: e2e-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} env: RUST_LOG: warn diff --git a/.github/workflows/_ledgernano.yml b/.github/workflows/_ledgernano.yml index 316714d376e..28ff06e5deb 100644 --- a/.github/workflows/_ledgernano.yml +++ b/.github/workflows/_ledgernano.yml @@ -4,7 +4,7 @@ on: workflow_call concurrency: group: ledgernano-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: ledgernano: diff --git a/.github/workflows/_move_ide.yml b/.github/workflows/_move_ide.yml index d6fba17c64c..08930145660 100644 --- a/.github/workflows/_move_ide.yml +++ b/.github/workflows/_move_ide.yml @@ -4,7 +4,7 @@ on: workflow_call concurrency: group: move-ide-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: move-auto-formatter-test: diff --git a/.github/workflows/_rust_lints.yml b/.github/workflows/_rust_lints.yml index 09235d70b1d..943d0c8232a 100644 --- a/.github/workflows/_rust_lints.yml +++ b/.github/workflows/_rust_lints.yml @@ -10,7 +10,7 @@ on: concurrency: group: rust-lints-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} env: CARGO_TERM_COLOR: always diff --git a/.github/workflows/_typos.yml b/.github/workflows/_typos.yml index 1747c0ca15a..0732bb13002 100644 --- a/.github/workflows/_typos.yml +++ b/.github/workflows/_typos.yml @@ -4,7 +4,7 @@ on: workflow_call concurrency: group: typos-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: run: diff --git a/.github/workflows/hierarchy.yml b/.github/workflows/hierarchy.yml index 4d333cd3f70..8d3465af6b0 100644 --- a/.github/workflows/hierarchy.yml +++ b/.github/workflows/hierarchy.yml @@ -47,7 +47,7 @@ jobs: runs-on: [self-hosted] concurrency: group: dprint-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} steps: - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 - name: Check dprint formatting @@ -60,7 +60,7 @@ jobs: name: license-check concurrency: group: license-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} needs: diff if: (!cancelled() && needs.diff.outputs.isRust == 'true') runs-on: [self-hosted] diff --git a/.github/workflows/preview_wiki.yml b/.github/workflows/preview_wiki.yml index fa9b9733b3a..53934398783 100644 --- a/.github/workflows/preview_wiki.yml +++ b/.github/workflows/preview_wiki.yml @@ -17,7 +17,7 @@ on: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: wiki-preview: From 4c85a6efca4372e730bb491b51a3b52c59f4e771 Mon Sep 17 00:00:00 2001 From: vivekjain23 <165671934+vivekjain23@users.noreply.github.com> Date: Mon, 27 Jan 2025 20:17:52 +0530 Subject: [PATCH 07/12] feat(docs): shared object example (#4789) * Create shared object example docs * Add docs path * Minor fixes * Resolve comments * Minor fixes * Minor fixes --- .../objects/shared-object-example.mdx | 56 +++++++++++++++++++ docs/content/sidebars/developer.js | 1 + 2 files changed, 57 insertions(+) create mode 100644 docs/content/developer/iota-101/objects/shared-object-example.mdx diff --git a/docs/content/developer/iota-101/objects/shared-object-example.mdx b/docs/content/developer/iota-101/objects/shared-object-example.mdx new file mode 100644 index 00000000000..4942411fb43 --- /dev/null +++ b/docs/content/developer/iota-101/objects/shared-object-example.mdx @@ -0,0 +1,56 @@ +--- +title: Shared Object Example +description: An example of how to efficiently utilize shared objects. +--- + +# Shared Object Example + +In the [previous sections](./shared-owned.mdx), we discussed comparing a shared object with an owned object. In this guide, we will create a smart contract that can receive objects to a shared object and transfer them to gain a deeper understanding of shared objects. + +## Create Move Package + +To [create a new move package](../../getting-started/create-a-package.mdx) run the following command: + +```shell +iota move new transfer-to-shared-object +``` +## Package Overview + +In this example, we will create a package that allows users to create new shared objects of type [`SharedCoins`](https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L11-L14), delete them, add new coins to the [`SharedCoins`](https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L11-L14), and transfer coins to a recipient address from a [`SharedCoins`](https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L11-L14). + +[`SharedCoins`](https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L11-L14) will hold IOTA coins, enabling anyone to deposit and withdraw coins from it. + +### [`create`](https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L16-L22) + +This function initializes a shared object with an empty array named `coins`. + +```move reference +https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L16-L22 +``` + +### [`delete`](https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L25-L29) + +This function destroys the `SharedCoins` shared object. + +```move reference +https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L25-L29 +``` + +### [`deposit_coin`](https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L31-L38) + +This function deposits IOTA coins into `SharedCoins` by adding them to the `coins` array of `SharedCoins`. +Before using this function, ensure that some IOTA coins have been transferred to the address/object ID of the `SharedCoins` object. +For the `coin` parameter, provide the address/object ID of the IOTA coin you transferred to `SharedCoins`. For further details, refer to [Receiving](../../../references/framework/iota-framework/transfer.mdx#0x2_transfer_Receiving) and [public_receive](../../../references/framework/iota-framework/transfer.mdx#function-public_receive). + +```move reference +https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L31-L38 +``` + +### [`transfer_coin`](https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L41-L48) + +This function transfers an IOTA coin to the specified `recipient` address. It removes the coin object from the `coins` array and utilizes the [`public_transfer`](../../../references/framework/iota-framework/transfer.mdx#function-public_transfer) function to complete the transfer. + +```move reference +https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move#L41-L48 +``` +- You can view the complete contract code [here](https://github.com/iotaledger/iota/blob/0494dad2b1d64c054795bac75342597e2eda1e9a/examples/move/transfer-to-shared-object/sources/shared_coins.move). diff --git a/docs/content/sidebars/developer.js b/docs/content/sidebars/developer.js index 5cf53de9dc2..1c96f8c3a9f 100644 --- a/docs/content/sidebars/developer.js +++ b/docs/content/sidebars/developer.js @@ -117,6 +117,7 @@ const developer = [ items: [ 'developer/iota-101/objects/object-model', 'developer/iota-101/objects/shared-owned', + 'developer/iota-101/objects/shared-object-example', { type: 'category', label: 'Object Ownership', From ec9f7eb166f04f04d0ca74e7f95f5db97dd74d40 Mon Sep 17 00:00:00 2001 From: salaheldinsoliman <49910731+salaheldinsoliman@users.noreply.github.com> Date: Mon, 27 Jan 2025 15:55:28 +0100 Subject: [PATCH 08/12] fix(docs): edit sequence diagrams in sponsored-tx article (#4796) * fix(docs): edit sequence diagrams in sponsored-tx Signed-off-by: salaheldinsoliman * Update docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * fix: fix similar images Signed-off-by: salaheldinsoliman * Apply suggestions from code review Co-authored-by: Dr-Electron --------- Signed-off-by: salaheldinsoliman Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> Co-authored-by: Dr-Electron --- .../about-sponsored-transactions.mdx | 9 +++++++-- .../sponsored-proposed-tx.png | Bin 0 -> 55073 bytes .../sponsored-transactions/sponsored-txn.png | Bin 54769 -> 0 bytes .../user-proposed-tx-1.png | Bin 0 -> 61664 bytes .../user-proposed-tx-2.png | Bin 0 -> 68682 bytes .../user-proposed-txn.png | Bin 151771 -> 0 bytes 6 files changed, 7 insertions(+), 2 deletions(-) create mode 100755 docs/site/static/img/developer/iota-101/transactions/sponsored-transactions/sponsored-proposed-tx.png delete mode 100644 docs/site/static/img/developer/iota-101/transactions/sponsored-transactions/sponsored-txn.png create mode 100755 docs/site/static/img/developer/iota-101/transactions/sponsored-transactions/user-proposed-tx-1.png create mode 100755 docs/site/static/img/developer/iota-101/transactions/sponsored-transactions/user-proposed-tx-2.png delete mode 100644 docs/site/static/img/developer/iota-101/transactions/sponsored-transactions/user-proposed-txn.png diff --git a/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx b/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx index 12afbfafeb0..b9967814efd 100644 --- a/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx +++ b/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx @@ -104,14 +104,19 @@ There are three common workflows for sponsored transactions: #### User-Proposed Transaction In this flow, the user initiates the transaction and requests sponsorship. +There are two possible scenarios -![User-Proposed Transaction](/img/developer/iota-101/transactions/sponsored-transactions/user-proposed-txn.png) +##### The gas station responds with the signed transaction and the signature, and the user submits the transaction to the network: +![User-Proposed Transaction](/img/developer/iota-101/transactions/sponsored-transactions/user-proposed-tx-1.png) + +##### The gas station submits the transaction to the network on behalf of the user: +![User-Proposed Transaction](/img/developer/iota-101/transactions/sponsored-transactions/user-proposed-tx-2.png) #### Sponsor-Proposed Transaction Here, the sponsor initiates the transaction, and the user must approve and sign it. -![Sponsor-Proposed Transaction](/img/developer/iota-101/transactions/sponsored-transactions/sponsored-txn.png) +![Sponsor-Proposed Transaction](/img/developer/iota-101/transactions/sponsored-transactions/sponsored-proposed-tx.png) #### Wildcard Gas Payment diff --git a/docs/site/static/img/developer/iota-101/transactions/sponsored-transactions/sponsored-proposed-tx.png b/docs/site/static/img/developer/iota-101/transactions/sponsored-transactions/sponsored-proposed-tx.png new file mode 100755 index 0000000000000000000000000000000000000000..1f82c621d0669051916359e877bddd65e58245c5 GIT binary patch literal 55073 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 LJ5x7f(Z+uPQ9|Fz diff --git a/docs/site/static/img/developer/iota-101/transactions/sponsored-transactions/user-proposed-tx-1.png b/docs/site/static/img/developer/iota-101/transactions/sponsored-transactions/user-proposed-tx-1.png new file mode 100755 index 0000000000000000000000000000000000000000..d23cb0aea92afcab3c23e1b8701ea8caf323c18b GIT binary patch literal 61664 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�hV{Lo19y)_$>GwaOQR1>+dxv< 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%0D&MnL+H%8627&WSZ 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

BAZuEi@LwuTbom^6ja2{-W&ddZWI&msjc6 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 TbPf}7my-PD?do>IIXHqz;IeMkS7wFw!1i90F3 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%0DmxPyB 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 G@;?AtGNjS~ From 495fc843823e7c8bb3b4ca4c0d277d7e728c6043 Mon Sep 17 00:00:00 2001 From: Gino Osahon Date: Mon, 27 Jan 2025 17:14:04 +0100 Subject: [PATCH 09/12] update(docs) fix typo in getting started section (#5039) --- docs/content/developer/getting-started/connect.mdx | 2 +- docs/content/developer/getting-started/local-network.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/content/developer/getting-started/connect.mdx b/docs/content/developer/getting-started/connect.mdx index 82383955f8d..d300f4e5714 100644 --- a/docs/content/developer/getting-started/connect.mdx +++ b/docs/content/developer/getting-started/connect.mdx @@ -126,7 +126,7 @@ localnet => http://0.0.0.0:9000 (active) testnet => https://api.testnet.iota.cafe ``` -You can add a new environment using the `iota client new` command. You should specify and `alias` and `rpc` URL, for +You can add a new environment using the `iota client new` command. You should specify an `alias` and `rpc` URL, for example: ```bash diff --git a/docs/content/developer/getting-started/local-network.mdx b/docs/content/developer/getting-started/local-network.mdx index 999595ef100..3645a7b6aa1 100644 --- a/docs/content/developer/getting-started/local-network.mdx +++ b/docs/content/developer/getting-started/local-network.mdx @@ -139,8 +139,8 @@ or public one, you must pass the URL to the faucet server. :::note IOTA Wallet -To send coins to a -IOTA Wallet is connected to your local network. See [Set up a local IOTA Wallet](#set-up-a-local-iota-wallet). You can use +To send coins to an +IOTA Wallet that is connected to your local network. See [Set up a local IOTA Wallet](#set-up-a-local-iota-wallet). You can use the address for the local IOTA Wallet with the faucet. ::: From 6b5cb5cfc9457e60c07de3fe285e534d134cefcc Mon Sep 17 00:00:00 2001 From: Dr-Electron Date: Mon, 27 Jan 2025 19:30:50 +0100 Subject: [PATCH 10/12] fix(docs): fix statement about gas fees (#5043) --- .../sponsored-transactions/about-sponsored-transactions.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx b/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx index b9967814efd..1464e969569 100644 --- a/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx +++ b/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx @@ -11,7 +11,7 @@ Sponsored transactions are a powerful feature in the IOTA blockchain that allow ## Understanding Sponsored Transactions -On the IOTA network, executing a transaction requires a gas payment, which is a list of [`0x2::coin::Coin<0x2::iota::IOTA>`](../../../../references/framework/iota-framework/coin.mdx) objects paid to validators to secure the network. +On the IOTA network, executing a transaction requires a gas payment, which is a list of [`0x2::coin::Coin<0x2::iota::IOTA>`](../../../../references/framework/iota-framework/coin.mdx) objects that get burned. While gas fees are essential to the [IOTA tokenomics](../../../../about-iota/tokenomics/tokenomics.mdx), they can present challenges for new users, especially those accustomed to traditional web applications. Sponsored transactions aim to simplify the onboarding process by allowing transactions to be executed without the user having to provide the gas payment themselves. Instead, a sponsor covers the gas fees, enhancing the user experience and reducing friction. From 5e4eed59934983288352282df2fad9e6f56e0196 Mon Sep 17 00:00:00 2001 From: Marc Espin Date: Mon, 27 Jan 2025 19:32:05 +0100 Subject: [PATCH 11/12] feat(wallet): Update host permissions (#5011) --- apps/wallet/src/manifest/manifest.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/wallet/src/manifest/manifest.json b/apps/wallet/src/manifest/manifest.json index f768672d907..9847c5479b1 100644 --- a/apps/wallet/src/manifest/manifest.json +++ b/apps/wallet/src/manifest/manifest.json @@ -10,7 +10,12 @@ "action": { "default_popup": "ui.html?type=popup" }, - "host_permissions": ["https://api.devnet.iota.cafe/", "https://api.testnet.iota.cafe/"], + "host_permissions": [ + "http://localhost:9000/", + "http://localhost:9124/", + "http://*/*", + "https://*/*" + ], "icons": { "16": "manifest/icons/iota-icon-16.png", "32": "manifest/icons/iota-icon-32.png", From f8e45d8839e9972847a702d79aacbed008da7d41 Mon Sep 17 00:00:00 2001 From: Dr-Electron Date: Mon, 27 Jan 2025 19:34:04 +0100 Subject: [PATCH 12/12] chore(docs): format rust code in sponsored tx code (#5044) --- .../about-sponsored-transactions.mdx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx b/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx index 1464e969569..e070e4a86ff 100644 --- a/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx +++ b/docs/content/developer/iota-101/transactions/sponsored-transactions/about-sponsored-transactions.mdx @@ -61,25 +61,25 @@ A transaction in IOTA has a specific data structure, which can be represented as ```rust pub struct SenderSignedTransaction { -pub intent_message: IntentMessage, -/// A list of signatures signed by all transaction participants. -/// 1. Non-participant signatures must not be present. -/// 2. Signature order does not matter. -pub tx_signatures: Vec, + pub intent_message: IntentMessage, + /// A list of signatures signed by all transaction participants. + /// 1. Non-participant signatures must not be present. + /// 2. Signature order does not matter. + pub tx_signatures: Vec, } pub struct TransactionDataV1 { // <-- A variant of `TransactionData` -pub kind: TransactionKind, // <-- This contains the transaction details -pub sender: IOTAAddress, -pub gas_data: GasData, -pub expiration: TransactionExpiration, + pub kind: TransactionKind, // <-- This contains the transaction details + pub sender: IOTAAddress, + pub gas_data: GasData, + pub expiration: TransactionExpiration, } pub struct GasData { -pub payment: Vec, -pub owner: IOTAAddress, -pub price: u64, -pub budget: u64, + pub payment: Vec, + pub owner: IOTAAddress, + pub price: u64, + pub budget: u64, } ```