diff --git a/.github/workflows/stats.yml b/.github/workflows/stats.yml index f2829011e..211c5ad23 100644 --- a/.github/workflows/stats.yml +++ b/.github/workflows/stats.yml @@ -73,10 +73,8 @@ jobs: if: steps.swapfile.outcome == 'success' run: RUST_BACKTRACE=1 cargo test --no-run --locked --workspace --all-features --jobs $JOBS - - name: ENVs in documentation - run: cargo run --bin env-docs-generation - env: - VALIDATE_ONLY: true + - name: Verify ENVs in README.md + run: cargo run --bin env-docs-generation -- --validate-only - name: Unit tests run: RUST_BACKTRACE=1 RUST_LOG=info cargo test --locked --workspace --all-features --lib --bins --jobs $JOBS -- --nocapture diff --git a/.github/workflows/user-ops-indexer.yml b/.github/workflows/user-ops-indexer.yml index 9b46d4068..448a339f6 100644 --- a/.github/workflows/user-ops-indexer.yml +++ b/.github/workflows/user-ops-indexer.yml @@ -48,6 +48,13 @@ jobs: with: working-directory: user-ops-indexer + - name: Build + id: build + run: RUST_BACKTRACE=1 cargo test --no-run --locked --workspace --all-features + + - name: Verify ENVs in README.md + run: cargo run --bin env-docs-generation -- --validate-only + - name: Unit tests run: RUST_BACKTRACE=1 RUST_LOG=info cargo test --locked --workspace --all-features --lib --bins -- --nocapture if: success() || failure() @@ -92,4 +99,4 @@ jobs: service_name: 'user-ops-indexer' swagger_path: 'user-ops-indexer/user-ops-indexer-proto/swagger/user-ops-indexer.swagger.yaml' secrets: - api_token_github: ${{ secrets.BLOCKSCOUT_BOT_TOKEN }} \ No newline at end of file + api_token_github: ${{ secrets.BLOCKSCOUT_BOT_TOKEN }} diff --git a/libs/env-collector/Cargo.toml b/libs/env-collector/Cargo.toml index f26122e46..ab942fa15 100644 --- a/libs/env-collector/Cargo.toml +++ b/libs/env-collector/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "env-collector" -version = "0.3.0" +version = "0.3.1" edition = "2021" [dependencies] diff --git a/libs/env-collector/README.md b/libs/env-collector/README.md index 181b963b2..471577a00 100644 --- a/libs/env-collector/README.md +++ b/libs/env-collector/README.md @@ -16,15 +16,24 @@ This is a simple tool to collect possible environment variables from `Settings` ```rust // check-envs.rs use ::Settings; - use env_collector::{run_env_collector_cli, PrefixFilter}; + use env_collector::{run_env_collector_cli, EnvCollectorSettingsBuilder, PrefixFilter}; fn main() { run_env_collector_cli::( - "", - "README.md", - "", - PrefixFilter::blacklist(&[""]), - Some("some_postfix"), + EnvCollectorSettingsBuilder::default() + .service_name("") + .markdown_path("README.md") + .config_path("") + .vars_filter(PrefixFilter::blacklist(&[ + "", + "__SERVER", + "__JAEGER", + "__METRICS", + "__TRACING" + ])) + .anchor_postfix(Some("some_postfix".to_string())) + .build() + .expect("failed to build env collector settings"), ); } ``` @@ -37,24 +46,25 @@ This is a simple tool to collect possible environment variables from `Settings` [anchor]: <> (anchors.envs.end.some_postfix) ``` -4. (Optional) In your `justfile` add new command to run `check-envs.rs`: +4. (Optional) In your `justfile` add new commands to run `check-envs.rs`: ```just # justfile - check-envs: - cargo run --bin check-envs + check-envs *args: + cargo run --bin env-docs-generation -- --validate-only {{args}} + + generate-envs *args: + cargo run --bin env-docs-generation -- {{args}} ``` -5. Run command `just check-envs` to generate ENVs table in `README.md` file. +5. Run command `just generate-envs` (or `cargo run --bin env-docs-generation`) to generate ENVs table in `README.md` file. 6. Add github action to run this binary on every push to validate ENVs table in `README.md` file: ```yaml [... other steps of `test` job ...] - - name: ENVs in doc tests - run: cargo run --bin check-envs - env: - VALIDATE_ONLY: true + - name: Verify ENVs in README + run: cargo run --bin check-envs -- --validate-only [... other steps of `test` job ...] - ``` \ No newline at end of file + ``` diff --git a/libs/env-collector/src/lib.rs b/libs/env-collector/src/lib.rs index e0a8684ba..63cec2b79 100644 --- a/libs/env-collector/src/lib.rs +++ b/libs/env-collector/src/lib.rs @@ -317,6 +317,7 @@ impl Envs { if !ignore_defaults { entry.default_value = value.default_value; } + entry.required = value.required; } } diff --git a/service-template/{{project-name}}-server/src/bin/check-envs.rs b/service-template/{{project-name}}-server/src/bin/check-envs.rs index d7cbf7ae1..ccbcfdeb3 100644 --- a/service-template/{{project-name}}-server/src/bin/check-envs.rs +++ b/service-template/{{project-name}}-server/src/bin/check-envs.rs @@ -10,6 +10,8 @@ fn main() { .vars_filter(PrefixFilter::blacklist(&[ "{{CRATE_NAME}}__SERVER", "{{CRATE_NAME}}__JAEGER", + "{{CRATE_NAME}}__METRICS", + "{{CRATE_NAME}}__TRACING" ])) .build() .expect("failed to build env collector settings"), diff --git a/stats/Cargo.lock b/stats/Cargo.lock index 26b856f6a..7b74d2a53 100644 --- a/stats/Cargo.lock +++ b/stats/Cargo.lock @@ -1614,8 +1614,8 @@ dependencies = [ [[package]] name = "env-collector" -version = "0.3.0" -source = "git+https://github.com/blockscout/blockscout-rs?rev=431b6bafe498d7a8b1bb1495d92a0bda7f05d006#431b6bafe498d7a8b1bb1495d92a0bda7f05d006" +version = "0.3.1" +source = "git+https://github.com/blockscout/blockscout-rs?rev=1e9d3c8a06f82626525217f6c2c51c1368868cd8#1e9d3c8a06f82626525217f6c2c51c1368868cd8" dependencies = [ "anyhow", "clap", diff --git a/stats/env-docs-generation/Cargo.toml b/stats/env-docs-generation/Cargo.toml index 16de06ccf..739e56396 100644 --- a/stats/env-docs-generation/Cargo.toml +++ b/stats/env-docs-generation/Cargo.toml @@ -4,5 +4,5 @@ version = "0.1.0" edition = "2024" [dependencies] -env-collector = { git = "https://github.com/blockscout/blockscout-rs", rev = "431b6bafe498d7a8b1bb1495d92a0bda7f05d006" } # latest main +env-collector = { git = "https://github.com/blockscout/blockscout-rs", rev = "1e9d3c8a06f82626525217f6c2c51c1368868cd8" } # latest almost merged PR version stats-server = { path = "../stats-server" } diff --git a/stats/justfile b/stats/justfile index ab3bdfb62..f4183e473 100644 --- a/stats/justfile +++ b/stats/justfile @@ -53,7 +53,7 @@ start-postgres-and-build-tests: echo "finished postgres wait" check-envs: - VALIDATE_ONLY=true cargo run --bin env-docs-generation + cargo run --bin env-docs-generation -- --validate-only generate-envs: cargo run --bin env-docs-generation diff --git a/user-ops-indexer/Cargo.lock b/user-ops-indexer/Cargo.lock index 9b156f253..e2d444db6 100644 --- a/user-ops-indexer/Cargo.lock +++ b/user-ops-indexer/Cargo.lock @@ -8,7 +8,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.10.0", "bytes", "futures-core", "futures-sink", @@ -21,13 +21,13 @@ dependencies = [ [[package]] name = "actix-cors" -version = "0.6.5" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0346d8c1f762b41b458ed3145eea914966bb9ad20b9be0d6d463b20d45586370" +checksum = "daa239b93927be1ff123eebada5a3ff23e89f0124ccb8609234e5103d5a5ae6d" dependencies = [ "actix-utils", "actix-web", - "derive_more 0.99.18", + "derive_more 2.0.1", "futures-util", "log", "once_cell", @@ -44,7 +44,7 @@ dependencies = [ "actix-service", "actix-utils", "actix-web", - "bitflags 2.6.0", + "bitflags 2.10.0", "bytes", "derive_more 0.99.18", "futures-core", @@ -69,7 +69,7 @@ dependencies = [ "actix-utils", "ahash 0.8.11", "base64 0.22.1", - "bitflags 2.6.0", + "bitflags 2.10.0", "brotli", "bytes", "bytestring", @@ -77,7 +77,7 @@ dependencies = [ "encoding_rs", "flate2", "futures-core", - "h2", + "h2 0.3.26", "http 0.2.12", "httparse", "httpdate", @@ -87,7 +87,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rand", + "rand 0.8.5", "sha1", "smallvec", "tokio", @@ -109,24 +109,26 @@ dependencies = [ [[package]] name = "actix-prost" version = "0.1.0" -source = "git+https://github.com/blockscout/actix-prost#ec0aa8dc449ed42ab89d0e34d2a08bc73f5c7473" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b21f38250c741c5c7138cef4725b98b0f545ae7924d0b671e5c9bb8acd17b2" dependencies = [ "actix-http", "actix-web", - "http 0.2.12", - "prost 0.11.9", + "http 1.2.0", + "prost", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.16.0", "tonic", ] [[package]] name = "actix-prost-build" version = "0.1.0" -source = "git+https://github.com/blockscout/actix-prost#ec0aa8dc449ed42ab89d0e34d2a08bc73f5c7473" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9097e836af1944d20403bda1c187f0b9ffaafa59425627f2ea2900cd7956fed2" dependencies = [ - "prettyplease 0.2.25", + "prettyplease", "proc-macro2", "prost-build", "prost-reflect", @@ -134,15 +136,15 @@ dependencies = [ "serde", "serde_yaml", "syn 2.0.100", - "thiserror 1.0.69", + "thiserror 2.0.9", ] [[package]] name = "actix-prost-macros" -version = "0.1.1" -source = "git+https://github.com/blockscout/actix-prost#ec0aa8dc449ed42ab89d0e34d2a08bc73f5c7473" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9677f9a2fe25823dee9f03383a02f4741f4d2009309f5e79b99f80643676a658" dependencies = [ - "proc-macro2", "quote", "syn 1.0.109", ] @@ -184,7 +186,7 @@ dependencies = [ "futures-core", "futures-util", "mio", - "socket2", + "socket2 0.5.8", "tokio", "tracing", ] @@ -247,7 +249,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "smallvec", - "socket2", + "socket2 0.5.8", "time", "url", ] @@ -276,15 +278,6 @@ dependencies = [ "prometheus", ] -[[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" @@ -297,7 +290,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", ] @@ -309,7 +302,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", "zerocopy", @@ -353,9 +346,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239e728d663a3bdababa24dfdc697faec987593161c5ff54d72ee01df6721d59" +checksum = "9e15860af634cad451f598712c24ca7fd9b45d84fff68ab8d4967567fa996c64" dependencies = [ "alloy-consensus", "alloy-contract", @@ -373,47 +366,52 @@ dependencies = [ "alloy-transport", "alloy-transport-http", "alloy-transport-ws", + "alloy-trie", ] [[package]] name = "alloy-chains" -version = "0.1.51" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e0f0136c085132939da6b753452ebed4efaa73fe523bb855b10c199c2ebfaf" +checksum = "4bc32535569185cbcb6ad5fa64d989a47bccb9a08e27284b1f2a3ccf16e6d010" dependencies = [ "alloy-primitives", "num_enum", - "strum", + "strum 0.27.2", ] [[package]] name = "alloy-consensus" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27d301f5bcfd37e3aac727c360d8b50c33ddff9169ce0370198dedda36a9927d" +checksum = "8b6440213a22df93a87ed512d2f668e7dc1d62a05642d107f82d61edc9e12370" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-serde", "alloy-trie", + "alloy-tx-macros", "auto_impl", + "borsh", "c-kzg", "derive_more 2.0.1", "either", "k256", "once_cell", - "rand", + "rand 0.8.5", + "secp256k1", "serde", - "serde_with 3.11.0", + "serde_json", + "serde_with 3.16.0", "thiserror 2.0.9", ] [[package]] name = "alloy-consensus-any" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f4f97a85a45965e0e4f9f5b94bbafaa3e4ee6868bdbcf2e4a9acb4b358038fe" +checksum = "15d0bea09287942405c4f9d2a4f22d1e07611c2dbd9d5bf94b75366340f9e6e0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -425,9 +423,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f39e8b96c9e25dde7222372332489075f7e750e4fd3e81c11eec0939b78b71b8" +checksum = "d69af404f1d00ddb42f2419788fa87746a4cd13bab271916d7726fda6c792d94" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -442,14 +440,15 @@ dependencies = [ "alloy-transport", "futures", "futures-util", + "serde_json", "thiserror 2.0.9", ] [[package]] name = "alloy-core" -version = "0.8.24" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23ccdb29eedfa1d83f32efbc958d0944e6928e252295dd5eafc516ed57f3a0a" +checksum = "5ca96214615ec8cf3fa2a54b32f486eb49100ca7fe7eb0b8c1137cd316e7250a" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -460,15 +459,14 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.8.24" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ada55b5ab26624766bb8c65f72516dee93eaf28d5d87fc18ff4324cd8c2a948d" +checksum = "3fdff496dd4e98a81f4861e66f7eaf5f2488971848bb42d9c892f871730245c8" dependencies = [ "alloy-json-abi", "alloy-primitives", "alloy-sol-type-parser", "alloy-sol-types", - "const-hex", "itoa", "serde", "serde_json", @@ -477,9 +475,9 @@ dependencies = [ [[package]] name = "alloy-eip2124" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675264c957689f0fd75f5993a73123c2cc3b5c235a38f5b9037fe6c826bfb2c0" +checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -490,32 +488,34 @@ dependencies = [ [[package]] name = "alloy-eip2930" -version = "0.1.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "serde", ] [[package]] name = "alloy-eip7702" -version = "0.5.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b15b13d38b366d01e818fe8e710d4d702ef7499eacd44926a06171dd9585d0c" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "serde", "thiserror 2.0.9", ] [[package]] name = "alloy-eips" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b11c382ca8075128d1ae6822b60921cf484c911d9a5831797a01218f98125f" +checksum = "4bd2c7ae05abcab4483ce821f12f285e01c0b33804e6883dd9ca1569a87ee2be" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -524,31 +524,36 @@ dependencies = [ "alloy-rlp", "alloy-serde", "auto_impl", + "borsh", "c-kzg", "derive_more 2.0.1", "either", "serde", + "serde_with 3.16.0", "sha2", + "thiserror 2.0.9", ] [[package]] name = "alloy-genesis" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd9e75c5dd40319ebbe807ebe9dfb10c24e4a70d9c7d638e62921d8dd093c8b" +checksum = "fc47eaae86488b07ea8e20236184944072a78784a1f4993f8ec17b3aa5d08c21" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-serde", "alloy-trie", + "borsh", "serde", + "serde_with 3.16.0", ] [[package]] name = "alloy-json-abi" -version = "0.8.24" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df4054f177d1600f17e2bc152f6a927592641b19861e6005cc51bdf7d4fa27a6" +checksum = "5513d5e6bd1cba6bdcf5373470f559f320c05c8c59493b6e98912fbe6733943f" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -558,12 +563,13 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbcf26d02a72e23d5bc245425ea403c93ba17d254f20f9c23556a249c6c7e143" +checksum = "003f46c54f22854a32b9cc7972660a476968008ad505427eabab49225309ec40" dependencies = [ "alloy-primitives", "alloy-sol-types", + "http 1.2.0", "serde", "serde_json", "thiserror 2.0.9", @@ -572,9 +578,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b44dd4429e190f727358571175ebf323db360a303bf4e1731213f510ced1c2e6" +checksum = "4f4029954d9406a40979f3a3b46950928a0fdcfe3ea8a9b0c17490d57e8aa0e3" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -598,9 +604,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f736e1d1eb1b770dbd32919bdf46d4dcd4617f2eed07947dfb32649962baba" +checksum = "7805124ad69e57bbae7731c9c344571700b2a18d351bda9e0eba521c991d1bcb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -611,24 +617,24 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.24" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7283185baefbe66136649dc316c9dcc6f0e9f1d635ae19783615919f83bc298a" +checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more 2.0.1", - "foldhash", - "hashbrown 0.15.2", + "foldhash 0.2.0", + "hashbrown 0.16.1", "indexmap 2.7.0", "itoa", "k256", "keccak-asm", "paste", "proptest", - "rand", + "rand 0.9.2", "ruint", "rustc-hash", "serde", @@ -638,9 +644,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a557f9e3ec89437b06db3bfc97d20782b1f7cc55b5b602b6a82bf3f64d7efb0e" +checksum = "d369e12c92870d069e0c9dc5350377067af8a056e29e3badf8446099d7e00889" dependencies = [ "alloy-chains", "alloy-consensus", @@ -681,13 +687,14 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0a261caff6c2ec6fe1d6eb77ba41159024c8387d05e4138804a387d403def55" +checksum = "f77d20cdbb68a614c7a86b3ffef607b37d087bb47a03c58f4c3f8f99bc3ace3b" dependencies = [ "alloy-json-rpc", "alloy-primitives", "alloy-transport", + "auto_impl", "bimap", "futures", "parking_lot", @@ -697,6 +704,7 @@ dependencies = [ "tokio-stream", "tower 0.5.2", "tracing", + "wasmtimer", ] [[package]] @@ -723,9 +731,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec6dc89c4c3ef166f9fa436d1831f8142c16cf2e637647c936a6aaaabd8d898" +checksum = "31c89883fe6b7381744cbe80fef638ac488ead4f1956a4278956a1362c71cd2e" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -733,7 +741,6 @@ dependencies = [ "alloy-transport", "alloy-transport-http", "alloy-transport-ws", - "async-stream", "futures", "pin-project", "reqwest", @@ -743,18 +750,18 @@ dependencies = [ "tokio-stream", "tower 0.5.2", "tracing", - "tracing-futures", "url", "wasmtimer", ] [[package]] name = "alloy-rpc-types" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3849f8131a18cc5d7f95f301d68a6af5aa2db28ad8522fb9db1f27b3794e8b68" +checksum = "64e279e6d40ee40fe8f76753b678d8d5d260cb276dc6c8a8026099b16d2b43f4" dependencies = [ "alloy-primitives", + "alloy-rpc-types-debug", "alloy-rpc-types-eth", "alloy-rpc-types-trace", "alloy-serde", @@ -763,9 +770,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd6d480e4e6e456f30eeeb3aef1512aaecb68df2a35d1f78865dbc4d20dc0fd" +checksum = "b43c1622aac2508d528743fd4cfdac1dea92d5a8fa894038488ff7edd0af0b32" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -774,19 +781,21 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "805eb9fa07f92f1225253e842b5454b4b3e258813445c1a1c9d8dd0fd90817c1" +checksum = "1b2ca3a434a6d49910a7e8e51797eb25db42ef8a5578c52d877fcb26d0afe7bc" dependencies = [ "alloy-primitives", + "derive_more 2.0.1", "serde", + "serde_with 3.16.0", ] [[package]] name = "alloy-rpc-types-eth" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8b6d55bdaa0c4a08650d4b32f174494cbade56adf6f2fcfa2a4f3490cb5511" +checksum = "ed5fafb741c19b3cca4cdd04fa215c89413491f9695a3e928dee2ae5657f607e" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -799,14 +808,15 @@ dependencies = [ "itertools 0.13.0", "serde", "serde_json", + "serde_with 3.16.0", "thiserror 2.0.9", ] [[package]] name = "alloy-rpc-types-trace" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6019cd6a89230d765a621a7b1bc8af46a6a9cde2d2e540e6f9ce930e0fb7c6db" +checksum = "c55324323aa634b01bdecb2d47462a8dce05f5505b14a6e5db361eef16eda476" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -818,9 +828,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1824791912f468a481dedc1db50feef3e85a078f6d743a62db2ee9c2ca674882" +checksum = "a6f180c399ca7c1e2fe17ea58343910cad0090878a696ff5a50241aee12fc529" dependencies = [ "alloy-primitives", "serde", @@ -829,9 +839,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d087fe5aea96a93fbe71be8aaed5c57c3caac303c09e674bc5b1647990d648b" +checksum = "ecc39ad2c0a3d2da8891f4081565780703a593f090f768f884049aa3aa929cbc" dependencies = [ "alloy-primitives", "async-trait", @@ -844,9 +854,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2940353d2425bb75965cd5101075334e6271051e35610f903bf8099a52b0b1a9" +checksum = "930e17cb1e46446a193a593a3bfff8d0ecee4e510b802575ebe300ae2e43ef75" dependencies = [ "alloy-consensus", "alloy-network", @@ -854,15 +864,15 @@ dependencies = [ "alloy-signer", "async-trait", "k256", - "rand", + "rand 0.8.5", "thiserror 2.0.9", ] [[package]] name = "alloy-sol-macro" -version = "0.8.24" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f99b007e002f1082b28827cc47d9c72562d412a98c06f29aa438118ff3036c43" +checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -874,9 +884,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.24" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c0a9cb9b1afbcd3325e0fff9fdf98e6d095643fae9e5584e80597f0b79b6d6e" +checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", @@ -893,9 +903,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.24" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "530c4863e707b95f99b37792cdfa94d30004ec552aed41e200a1d9264d44e669" +checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" dependencies = [ "alloy-json-abi", "const-hex", @@ -911,9 +921,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.24" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b210dd863afa9da93c488601a1f23bee1e3ce47e15519582320c205645a7a0" +checksum = "954d1b2533b9b2c7959652df3076954ecb1122a28cc740aa84e7b0a49f6ac0a9" dependencies = [ "serde", "winnow 0.7.4", @@ -921,24 +931,24 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.24" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5ff802859e2797d022dc812b5b4ee40d829e0fb446c269a87826c7f0021976" +checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" dependencies = [ "alloy-json-abi", "alloy-primitives", "alloy-sol-macro", - "const-hex", "serde", ] [[package]] name = "alloy-transport" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6818b4c82a474cc01ac9e88ccfcd9f9b7bc893b2f8aea7e890a28dcd55c0a7aa" +checksum = "cae82426d98f8bc18f53c5223862907cac30ab8fc5e4cd2bb50808e6d3ab43d8" dependencies = [ "alloy-json-rpc", + "auto_impl", "base64 0.22.1", "derive_more 2.0.1", "futures", @@ -956,9 +966,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cc3079a33483afa1b1365a3add3ea3e21c75b10f704870198ba7846627d10f2" +checksum = "90aa6825760905898c106aba9c804b131816a15041523e80b6d4fe7af6380ada" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -971,15 +981,15 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.13.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef7a4301e8967c1998f193755fd9429e0ca81730e2e134e30c288c43dbf96f0" +checksum = "86c9ab4c199e3a8f3520b60ba81aa67bb21fed9ed0d8304e0569094d0758a56f" dependencies = [ "alloy-pubsub", "alloy-transport", "futures", "http 1.2.0", - "rustls 0.23.20", + "rustls", "serde_json", "tokio", "tokio-tungstenite", @@ -989,20 +999,32 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.7.7" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e428104b2445a4f929030891b3dbf8c94433a8349ba6480946bf6af7975c2f6" +checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" dependencies = [ "alloy-primitives", "alloy-rlp", "arrayvec", - "derive_more 1.0.0", + "derive_more 2.0.1", "nybbles", "serde", "smallvec", "tracing", ] +[[package]] +name = "alloy-tx-macros" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae109e33814b49fc0a62f2528993aa8a2dd346c26959b151f05441dc0b9da292" +dependencies = [ + "darling 0.21.3", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -1073,15 +1095,6 @@ version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" -[[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-ff" version = "0.3.0" @@ -1120,6 +1133,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint", + "num-traits", + "paste", + "zeroize", +] + [[package]] name = "ark-ff-asm" version = "0.3.0" @@ -1140,6 +1173,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.100", +] + [[package]] name = "ark-ff-macros" version = "0.3.0" @@ -1165,6 +1208,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -1186,6 +1242,18 @@ dependencies = [ "num-bigint", ] +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -1193,7 +1261,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -1203,9 +1271,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.5", ] +[[package]] +name = "arraydeque" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" + [[package]] name = "arrayvec" version = "0.7.6" @@ -1418,18 +1502,17 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -version = "0.6.20" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", - "bitflags 1.3.2", "bytes", "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", + "http 1.2.0", + "http-body", + "http-body-util", "itoa", "matchit", "memchr", @@ -1438,44 +1521,32 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper 0.1.2", - "tower 0.4.13", + "sync_wrapper", + "tower 0.5.2", "tower-layer", "tower-service", ] [[package]] name = "axum-core" -version = "0.3.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", "bytes", "futures-util", - "http 0.2.12", - "http-body 0.4.6", + "http 1.2.0", + "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 = "base16ct" version = "0.2.0" @@ -1508,13 +1579,16 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bigdecimal" -version = "0.3.1" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa" +checksum = "560f42649de9fa436b73517378a147ec21f6c997a546581df4b4b31677828934" dependencies = [ + "autocfg", + "libm", "num-bigint", "num-integer", "num-traits", + "serde", ] [[package]] @@ -1525,18 +1599,34 @@ checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" [[package]] name = "bit-set" -version = "0.5.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitcoin-io" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" + +[[package]] +name = "bitcoin_hashes" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +dependencies = [ + "bitcoin-io", + "hex-conservative", +] [[package]] name = "bitflags" @@ -1546,11 +1636,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -1589,8 +1679,8 @@ dependencies = [ [[package]] name = "blockscout-db" -version = "0.3.0+blockscout.6.10.1" -source = "git+https://github.com/blockscout/blockscout-rs?rev=8f2caa9#8f2caa937aebf8d320233876b81f59a1c2cd5794" +version = "0.5.0+blockscout.7.0.2" +source = "git+https://github.com/blockscout/blockscout-rs?rev=e860a53#e860a536cc24f59d46ec8536dc761b8589db758e" dependencies = [ "blockscout-db-entity", "blockscout-db-migration", @@ -1598,16 +1688,16 @@ dependencies = [ [[package]] name = "blockscout-db-entity" -version = "0.3.0+blockscout.6.10.1" -source = "git+https://github.com/blockscout/blockscout-rs?rev=8f2caa9#8f2caa937aebf8d320233876b81f59a1c2cd5794" +version = "0.5.0+blockscout.7.0.2" +source = "git+https://github.com/blockscout/blockscout-rs?rev=e860a53#e860a536cc24f59d46ec8536dc761b8589db758e" dependencies = [ "sea-orm", ] [[package]] name = "blockscout-db-migration" -version = "0.2.0+blockscout.6.8.0" -source = "git+https://github.com/blockscout/blockscout-rs?rev=8f2caa9#8f2caa937aebf8d320233876b81f59a1c2cd5794" +version = "0.5.0+blockscout.7.0.2" +source = "git+https://github.com/blockscout/blockscout-rs?rev=e860a53#e860a536cc24f59d46ec8536dc761b8589db758e" dependencies = [ "async-std", "sea-orm-migration", @@ -1624,9 +1714,9 @@ dependencies = [ [[package]] name = "blockscout-service-launcher" -version = "0.16.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb9859602937cce1d32a8e6042deadc9d3011687ea0b5d2ce7b7209b850d84a" +checksum = "7bf074a9cd2f5abd65b033437fba2505321bfc11921ee02d50f544f5a0f63eb3" dependencies = [ "actix-cors", "actix-web", @@ -1634,7 +1724,7 @@ dependencies = [ "anyhow", "blockscout-tracing-actix-web", "cfg-if", - "config", + "config 0.13.4", "futures", "keccak-hash", "once_cell", @@ -1645,8 +1735,9 @@ dependencies = [ "sea-orm-migration", "serde", "serde_json", - "serde_with 3.11.0", + "serde_with 3.16.0", "tokio", + "tokio-util", "tonic", "tracing", "tracing-opentelemetry", @@ -1670,9 +1761,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.14" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c79a94619fade3c0b887670333513a67ac28a6a7e653eb260bf0d4103db38d" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" dependencies = [ "cc", "glob", @@ -1784,11 +1875,10 @@ dependencies = [ [[package]] name = "c-kzg" -version = "2.1.0" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7e3c397401eb76228c89561cf22f85f41c95aa799ee9d860de3ea1cbc728fc" +checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" dependencies = [ - "arbitrary", "blst", "cc", "glob", @@ -1838,9 +1928,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.23" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" +checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" dependencies = [ "clap_builder", "clap_derive", @@ -1848,21 +1938,21 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.23" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" +checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim", + "strsim 0.11.1", ] [[package]] name = "clap_derive" -version = "4.5.18" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -1882,6 +1972,22 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +[[package]] +name = "comrak" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82c995deda3bfdebd07d0e2af79e9da13e4b1be652b21a746f3f5b24bf0a49ef" +dependencies = [ + "derive_builder 0.12.0", + "entities", + "memchr", + "once_cell", + "regex", + "slug", + "typed-arena", + "unicode_categories", +] + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -1902,14 +2008,33 @@ dependencies = [ "lazy_static", "nom", "pathdiff", - "ron", - "rust-ini", + "ron 0.7.1", + "rust-ini 0.18.0", "serde", "serde_json", - "toml", + "toml 0.5.11", "yaml-rust", ] +[[package]] +name = "config" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68578f196d2a33ff61b27fae256c3164f65e36382648e30666dde05b8cc9dfdf" +dependencies = [ + "async-trait", + "convert_case 0.6.0", + "json5", + "nom", + "pathdiff", + "ron 0.8.1", + "rust-ini 0.20.0", + "serde", + "serde_json", + "toml 0.8.19", + "yaml-rust2", +] + [[package]] name = "const-hex" version = "1.14.0" @@ -1930,30 +2055,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "cookie" -version = "0.16.2" +name = "const-random" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ - "percent-encoding", - "time", - "version_check", + "const-random-macro", ] [[package]] -name = "core-foundation" -version = "0.9.4" +name = "const-random-macro" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "core-foundation-sys", - "libc", + "getrandom 0.2.15", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "cookie" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" +dependencies = [ + "percent-encoding", + "time", + "version_check", ] [[package]] @@ -2032,7 +2176,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "rand_core", + "rand_core 0.6.4", "subtle", "zeroize", ] @@ -2047,14 +2191,48 @@ dependencies = [ "typenum", ] +[[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", - "darling_macro", + "darling_core 0.20.10", + "darling_macro 0.20.10", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[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]] @@ -2067,17 +2245,54 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", + "strsim 0.11.1", + "syn 2.0.100", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "serde", + "strsim 0.11.1", "syn 2.0.100", ] +[[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", + "darling_core 0.20.10", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", "quote", "syn 2.0.100", ] @@ -2148,58 +2363,89 @@ dependencies = [ ] [[package]] -name = "derive_arbitrary" -version = "1.4.1" +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro 0.12.0", +] + +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro 0.20.2", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" dependencies = [ + "darling 0.14.4", "proc-macro2", "quote", - "syn 2.0.100", + "syn 1.0.109", ] [[package]] -name = "derive_more" -version = "0.99.18" +name = "derive_builder_core" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" dependencies = [ - "convert_case", + "darling 0.20.10", "proc-macro2", "quote", - "rustc_version 0.4.1", "syn 2.0.100", ] [[package]] -name = "derive_more" -version = "1.0.0" +name = "derive_builder_macro" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" dependencies = [ - "derive_more-impl 1.0.0", + "derive_builder_core 0.12.0", + "syn 1.0.109", ] [[package]] -name = "derive_more" -version = "2.0.1" +name = "derive_builder_macro" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ - "derive_more-impl 2.0.1", + "derive_builder_core 0.20.2", + "syn 2.0.100", ] [[package]] -name = "derive_more-impl" -version = "1.0.0" +name = "derive_more" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ + "convert_case 0.4.0", "proc-macro2", "quote", + "rustc_version 0.4.1", "syn 2.0.100", ] +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl", +] + [[package]] name = "derive_more-impl" version = "2.0.1" @@ -2212,6 +2458,12 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "deunicode" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abd57806937c9cc163efc8ea3910e00a62e2aeb0b8119f1793a978088f8f6b04" + [[package]] name = "diff" version = "0.1.13" @@ -2256,6 +2508,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257" +[[package]] +name = "dlv-list" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" +dependencies = [ + "const-random", +] + [[package]] name = "dotenvy" version = "0.15.7" @@ -2268,6 +2529,12 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + [[package]] name = "ecdsa" version = "0.16.9" @@ -2285,9 +2552,9 @@ dependencies = [ [[package]] name = "educe" -version = "0.5.11" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4bd92664bf78c4d3dba9b7cdafce6fa15b13ed3ed16175218196942e99168a8" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" dependencies = [ "enum-ordinalize", "proc-macro2", @@ -2317,7 +2584,7 @@ dependencies = [ "generic-array", "group", "pkcs8", - "rand_core", + "rand_core 0.6.4", "sec1", "serdect", "subtle", @@ -2333,26 +2600,57 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "entities" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca" + [[package]] name = "enum-ordinalize" -version = "4.3.0" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" dependencies = [ "enum-ordinalize-derive", ] [[package]] name = "enum-ordinalize-derive" -version = "4.3.1" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", "syn 2.0.100", ] +[[package]] +name = "env-collector" +version = "0.3.1" +source = "git+https://github.com/blockscout/blockscout-rs?rev=1e9d3c8a06f82626525217f6c2c51c1368868cd8#1e9d3c8a06f82626525217f6c2c51c1368868cd8" +dependencies = [ + "anyhow", + "clap", + "config 0.14.1", + "derive_builder 0.20.2", + "itertools 0.13.0", + "json_dotpath", + "markdown-table-formatter", + "regex", + "serde", + "serde_json", +] + +[[package]] +name = "env-docs-generation" +version = "0.1.0" +dependencies = [ + "env-collector", + "user-ops-indexer-server", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -2376,7 +2674,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2451,7 +2749,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -2462,7 +2760,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] @@ -2507,19 +2805,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" [[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" +name = "foldhash" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "form_urlencoded" @@ -2673,15 +2962,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] -name = "gimli" -version = "0.31.1" +name = "getrandom" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", +] [[package]] name = "glob" @@ -2708,7 +3005,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -2731,6 +3028,25 @@ dependencies = [ "tracing", ] +[[package]] +name = "h2" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.2.0", + "indexmap 2.7.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -2758,8 +3074,18 @@ checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.4", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "foldhash 0.2.0", "serde", + "serde_core", ] [[package]] @@ -2771,14 +3097,20 @@ dependencies = [ "hashbrown 0.14.5", ] +[[package]] +name = "hashlink" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +dependencies = [ + "hashbrown 0.15.2", +] + [[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -dependencies = [ - "unicode-segmentation", -] [[package]] name = "heck" @@ -2807,6 +3139,15 @@ dependencies = [ "serde", ] +[[package]] +name = "hex-conservative" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +dependencies = [ + "arrayvec", +] + [[package]] name = "hkdf" version = "0.12.4" @@ -2856,17 +3197,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -2886,7 +3216,7 @@ dependencies = [ "bytes", "futures-util", "http 1.2.0", - "http-body 1.0.1", + "http-body", "pin-project-lite", ] @@ -2910,73 +3240,53 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.32" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", + "h2 0.4.12", + "http 1.2.0", + "http-body", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] -name = "hyper" -version = "1.5.2" +name = "hyper-rustls" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "bytes", - "futures-channel", - "futures-util", "http 1.2.0", - "http-body 1.0.1", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", "tokio", - "want", + "tokio-rustls", + "tower-service", + "webpki-roots 1.0.4", ] [[package]] name = "hyper-timeout" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 0.14.32", + "hyper", + "hyper-util", "pin-project-lite", "tokio", - "tokio-io-timeout", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper 1.5.2", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", + "tower-service", ] [[package]] @@ -2989,10 +3299,10 @@ dependencies = [ "futures-channel", "futures-util", "http 1.2.0", - "http-body 1.0.1", - "hyper 1.5.2", + "http-body", + "hyper", "pin-project-lite", - "socket2", + "socket2 0.5.8", "tokio", "tower-service", "tracing", @@ -3261,15 +3571,6 @@ 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" @@ -3315,6 +3616,18 @@ dependencies = [ "serde", ] +[[package]] +name = "json_dotpath" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbdcfef3cf5591f0cef62da413ae795e3d1f5a00936ccec0b2071499a32efd1a" +dependencies = [ + "serde", + "serde_derive", + "serde_json", + "thiserror 1.0.69", +] + [[package]] name = "k256" version = "0.13.4" @@ -3350,11 +3663,11 @@ dependencies = [ [[package]] name = "keccak-hash" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b286e6b663fb926e1eeb68528e69cb70ed46c6d65871a21b2215ae8154c6d3c" +checksum = "3e1b8590eb6148af2ea2d75f38e7d29f5ca970d5a4df456b3ef19b8b415d0264" dependencies = [ - "primitive-types", + "primitive-types 0.13.1", "tiny-keccak", ] @@ -3384,9 +3697,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.169" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libm" @@ -3396,9 +3709,9 @@ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libsqlite3-sys" -version = "0.27.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" dependencies = [ "cc", "pkg-config", @@ -3488,6 +3801,18 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "markdown-table-formatter" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0346176494060da2287d0c44cb7bd7d751f16601282a59ccb780585419f91769" +dependencies = [ + "comrak", + "unicode-display-width", + "unicode-segmentation", + "wasm-bindgen", +] + [[package]] name = "matchers" version = "0.1.0" @@ -3574,23 +3899,6 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d02c0b00610773bb7fc61d85e13d86c7858cbdf00e1a120bfc41bc055dbaa0e" -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "nom" version = "7.1.3" @@ -3633,7 +3941,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand", + "rand 0.8.5", "smallvec", "zeroize", ] @@ -3706,76 +4014,24 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.3.0" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55a62e678a89501192cc5ebf47dcbc656b608ae5e1c61c9251fe35230f119fe3" +checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" dependencies = [ "alloy-rlp", - "const-hex", + "cfg-if", "proptest", + "ruint", "serde", "smallvec", ] -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "opentelemetry" version = "0.19.0" @@ -3844,7 +4100,7 @@ dependencies = [ "once_cell", "opentelemetry_api", "percent-encoding", - "rand", + "rand 0.8.5", "thiserror 1.0.69", "tokio", "tokio-stream", @@ -3861,9 +4117,9 @@ dependencies = [ [[package]] name = "ordered-float" -version = "3.9.2" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" dependencies = [ "num-traits", ] @@ -3874,15 +4130,25 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a" dependencies = [ - "dlv-list", + "dlv-list 0.3.0", "hashbrown 0.12.3", ] +[[package]] +name = "ordered-multimap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" +dependencies = [ + "dlv-list 0.5.2", + "hashbrown 0.14.5", +] + [[package]] name = "ouroboros" -version = "0.17.2" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954" +checksum = "1e0f050db9c44b97a94723127e6be766ac5c340c48f2c4bb3ffa11713744be59" dependencies = [ "aliasable", "ouroboros_macro", @@ -3891,13 +4157,13 @@ dependencies = [ [[package]] name = "ouroboros_macro" -version = "0.17.2" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8" +checksum = "3c7028bdd3d43083f6d8d4d5187680d0d3560d54df4cc9d752005268b41e64d0" dependencies = [ "heck 0.4.1", - "proc-macro-error", "proc-macro2", + "proc-macro2-diagnostics", "quote", "syn 2.0.100", ] @@ -4045,6 +4311,15 @@ dependencies = [ "indexmap 2.7.0", ] +[[package]] +name = "pgvector" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc58e2d255979a31caa7cabfa7aac654af0354220719ab7a68520ae7a91e8c0b" +dependencies = [ + "serde", +] + [[package]] name = "pharos" version = "0.5.3" @@ -4165,16 +4440,6 @@ dependencies = [ "yansi", ] -[[package]] -name = "prettyplease" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" -dependencies = [ - "proc-macro2", - "syn 1.0.109", -] - [[package]] name = "prettyplease" version = "0.2.25" @@ -4193,40 +4458,26 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" -dependencies = [ - "toml_edit", + "uint 0.9.5", ] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "primitive-types" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", + "fixed-hash", + "uint 0.10.0", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "proc-macro-crate" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "proc-macro2", - "quote", - "version_check", + "toml_edit", ] [[package]] @@ -4260,6 +4511,19 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "proc-macro2-diagnostics" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "version_check", + "yansi", +] + [[package]] name = "prometheus" version = "0.13.4" @@ -4277,17 +4541,16 @@ dependencies = [ [[package]] name = "proptest" -version = "1.5.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", - "lazy_static", + "bitflags 2.10.0", "num-traits", - "rand", - "rand_chacha", + "rand 0.9.2", + "rand_chacha 0.9.0", "rand_xorshift", "regex-syntax 0.8.5", "rusty-fork", @@ -4297,67 +4560,42 @@ dependencies = [ [[package]] name = "prost" -version = "0.11.9" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" dependencies = [ "bytes", - "prost-derive 0.11.9", -] - -[[package]] -name = "prost" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" -dependencies = [ - "bytes", - "prost-derive 0.12.6", + "prost-derive", ] [[package]] name = "prost-build" -version = "0.11.9" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "bytes", "heck 0.4.1", - "itertools 0.10.5", - "lazy_static", + "itertools 0.13.0", "log", "multimap", + "once_cell", "petgraph", - "prettyplease 0.1.25", - "prost 0.11.9", - "prost-types 0.11.9", + "prettyplease", + "prost", + "prost-types", "regex", - "syn 1.0.109", + "syn 2.0.100", "tempfile", - "which", -] - -[[package]] -name = "prost-derive" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" -dependencies = [ - "anyhow", - "itertools 0.10.5", - "proc-macro2", - "quote", - "syn 1.0.109", ] [[package]] name = "prost-derive" -version = "0.12.6" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.100", @@ -4365,42 +4603,33 @@ dependencies = [ [[package]] name = "prost-reflect" -version = "0.12.0" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057237efdb71cf4b3f9396302a3d6599a92fa94063ba537b66130980ea9909f3" +checksum = "7b5edd582b62f5cde844716e66d92565d7faf7ab1445c8cebce6e00fba83ddb2" dependencies = [ "once_cell", - "prost 0.12.6", - "prost-types 0.12.6", -] - -[[package]] -name = "prost-types" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" -dependencies = [ - "prost 0.11.9", + "prost", + "prost-types", ] [[package]] name = "prost-types" -version = "0.12.6" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" dependencies = [ - "prost 0.12.6", + "prost", ] [[package]] name = "prost-wkt" -version = "0.4.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562788060bcf2bfabe055194bd991ed2442457661744c88e0a0828ff9a08c08b" +checksum = "497e1e938f0c09ef9cabe1d49437b4016e03e8f82fbbe5d1c62a9b61b9decae1" dependencies = [ "chrono", "inventory", - "prost 0.11.9", + "prost", "serde", "serde_derive", "serde_json", @@ -4409,27 +4638,27 @@ dependencies = [ [[package]] name = "prost-wkt-build" -version = "0.4.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4dca8bcead3b728a6a7da017cc95e7f4cb2320ec4f6896bc593a1c4700f7328" +checksum = "07b8bf115b70a7aa5af1fd5d6e9418492e9ccb6e4785e858c938e28d132a884b" dependencies = [ "heck 0.4.1", - "prost 0.11.9", + "prost", "prost-build", - "prost-types 0.11.9", + "prost-types", "quote", ] [[package]] name = "prost-wkt-types" -version = "0.4.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2377c5680f2342871823045052e791b4487f7c90aae17e0feaee24cf59578a34" +checksum = "c8cdde6df0a98311c839392ca2f2f0bcecd545f86a62b4e3c6a49c336e970fe5" dependencies = [ "chrono", - "prost 0.11.9", + "prost", "prost-build", - "prost-types 0.11.9", + "prost-types", "prost-wkt", "prost-wkt-build", "regex", @@ -4470,6 +4699,58 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quinn" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2 0.5.8", + "thiserror 2.0.9", + "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", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.9", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2 0.6.1", + "tracing", + "windows-sys 0.60.2", +] + [[package]] name = "quote" version = "1.0.37" @@ -4479,6 +4760,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "radium" version = "0.7.0" @@ -4492,8 +4779,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "serde", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", "serde", ] @@ -4504,7 +4802,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] @@ -4513,16 +4821,26 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.4", + "serde", ] [[package]] name = "rand_xorshift" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "rand_core", + "rand_core 0.9.3", ] [[package]] @@ -4531,18 +4849,38 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.10.0", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", + "regex-automata 0.4.13", "regex-syntax 0.8.5", ] @@ -4557,9 +4895,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -4604,31 +4942,34 @@ dependencies = [ "futures-core", "futures-util", "http 1.2.0", - "http-body 1.0.1", + "http-body", "http-body-util", - "hyper 1.5.2", - "hyper-tls", + "hyper", + "hyper-rustls", "hyper-util", "ipnet", "js-sys", "log", "mime", - "native-tls", "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile 2.2.0", + "quinn", + "rustls", + "rustls-pemfile", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", - "tokio-native-tls", + "tokio-rustls", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", + "webpki-roots 0.26.7", "windows-registry", ] @@ -4650,7 +4991,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", - "getrandom", + "getrandom 0.2.15", "libc", "spin", "untrusted", @@ -4707,6 +5048,18 @@ dependencies = [ "serde", ] +[[package]] +name = "ron" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" +dependencies = [ + "base64 0.21.7", + "bitflags 2.10.0", + "serde", + "serde_derive", +] + [[package]] name = "rsa" version = "0.9.7" @@ -4720,7 +5073,7 @@ dependencies = [ "num-traits", "pkcs1", "pkcs8", - "rand_core", + "rand_core 0.6.4", "signature", "spki", "subtle", @@ -4729,13 +5082,14 @@ dependencies = [ [[package]] name = "ruint" -version = "1.12.4" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5ef8fb1dd8de3870cb8400d51b4c2023854bbafd5431a3ac7e7317243e22d2f" +checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", + "ark-ff 0.5.0", "bytes", "fastrlp 0.3.1", "fastrlp 0.4.0", @@ -4743,12 +5097,13 @@ dependencies = [ "num-integer", "num-traits", "parity-scale-codec", - "primitive-types", + "primitive-types 0.12.2", "proptest", - "rand", + "rand 0.8.5", + "rand 0.9.2", "rlp", "ruint-macro", - "serde", + "serde_core", "valuable", "zeroize", ] @@ -4766,7 +5121,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df" dependencies = [ "cfg-if", - "ordered-multimap", + "ordered-multimap 0.4.3", +] + +[[package]] +name = "rust-ini" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" +dependencies = [ + "cfg-if", + "ordered-multimap 0.7.3", ] [[package]] @@ -4779,18 +5144,12 @@ dependencies = [ "borsh", "bytes", "num-traits", - "rand", + "rand 0.8.5", "rkyv", "serde", "serde_json", ] -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - [[package]] name = "rustc-hash" version = "2.1.0" @@ -4827,22 +5186,11 @@ version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "ring", - "rustls-webpki 0.101.7", - "sct", + "windows-sys 0.52.0", ] [[package]] @@ -4854,20 +5202,11 @@ dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki", "subtle", "zeroize", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.2.0" @@ -4882,15 +5221,8 @@ name = "rustls-pki-types" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring", - "untrusted", + "web-time", ] [[package]] @@ -4929,29 +5261,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] -name = "schannel" -version = "0.1.27" +name = "schemars" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" dependencies = [ - "windows-sys 0.59.0", + "dyn-clone", + "ref-cast", + "serde", + "serde_json", ] [[package]] -name = "scopeguard" -version = "1.2.0" +name = "schemars" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] [[package]] -name = "sct" -version = "0.7.1" +name = "scopeguard" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sea-bae" @@ -4968,17 +5305,19 @@ dependencies = [ [[package]] name = "sea-orm" -version = "1.0.1" +version = "1.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea1fee0cf8528dbe6eda29d5798afc522a63b75e44c5b15721e6e64af9c7cc4b" +checksum = "6d945f62558fac19e5988680d2fdf747b734c2dbc6ce2cb81ba33ed8dde5b103" dependencies = [ "async-stream", "async-trait", "bigdecimal", "chrono", - "futures", + "derive_more 2.0.1", + "futures-util", "log", "ouroboros", + "pgvector", "rust_decimal", "sea-orm-macros", "sea-query", @@ -4986,8 +5325,8 @@ dependencies = [ "serde", "serde_json", "sqlx", - "strum", - "thiserror 1.0.69", + "strum 0.26.3", + "thiserror 2.0.9", "time", "tracing", "url", @@ -4996,9 +5335,9 @@ dependencies = [ [[package]] name = "sea-orm-cli" -version = "1.0.1" +version = "1.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0b8869c75cf3fbb1bd860abb025033cd2e514c5f4fa43e792697cb1fe6c882" +checksum = "c94492e2ab6c045b4cc38013809ce255d14c3d352c9f0d11e6b920e2adc948ad" dependencies = [ "chrono", "clap", @@ -5006,6 +5345,8 @@ dependencies = [ "glob", "regex", "sea-schema", + "sqlx", + "tokio", "tracing", "tracing-subscriber", "url", @@ -5013,11 +5354,11 @@ dependencies = [ [[package]] name = "sea-orm-macros" -version = "1.0.1" +version = "1.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8737b566799ed0444f278d13c300c4c6f1a91782f60ff5825a591852d5502030" +checksum = "84c2e64a50a9cc8339f10a27577e10062c7f995488e469f2c95762c5ee847832" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", "sea-bae", @@ -5027,14 +5368,13 @@ dependencies = [ [[package]] name = "sea-orm-migration" -version = "1.0.1" +version = "1.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216643749e26ce27ab6c51d3475f2692981d4a902d34455bcd322f412900df5c" +checksum = "7315c0cadb7e60fb17ee2bb282aa27d01911fc2a7e5836ec1d4ac37d19250bb4" dependencies = [ "async-trait", "clap", "dotenvy", - "futures", "sea-orm", "sea-orm-cli", "sea-schema", @@ -5044,15 +5384,14 @@ dependencies = [ [[package]] name = "sea-query" -version = "0.31.1" +version = "0.32.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4fd043b8117af233e221f73e3ea8dfbc8e8c3c928017c474296db45c649105c" +checksum = "8a5d1c518eaf5eda38e5773f902b26ab6d5e9e9e2bb2349ca6c64cf96f80448c" dependencies = [ "bigdecimal", "chrono", - "educe", "inherent", - "ordered-float 3.9.2", + "ordered-float 4.6.0", "rust_decimal", "sea-query-derive", "serde_json", @@ -5062,9 +5401,9 @@ dependencies = [ [[package]] name = "sea-query-binder" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "754965d4aee6145bec25d0898e5c931e6c22859789ce62fd85a42a15ed5a8ce3" +checksum = "b0019f47430f7995af63deda77e238c17323359af241233ec768aba1faea7608" dependencies = [ "bigdecimal", "chrono", @@ -5082,7 +5421,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9834af2c4bd8c5162f00c89f1701fb6886119a88062cf76fe842ea9e232b9839" dependencies = [ - "darling", + "darling 0.20.10", "heck 0.4.1", "proc-macro2", "quote", @@ -5092,13 +5431,15 @@ dependencies = [ [[package]] name = "sea-schema" -version = "0.15.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad52149fc81836ea7424c3425d8f6ed8ad448dd16d2e4f6a3907ba46f3f2fd78" +checksum = "2239ff574c04858ca77485f112afea1a15e53135d3097d0c86509cef1def1338" dependencies = [ "futures", "sea-query", + "sea-query-binder", "sea-schema-derive", + "sqlx", ] [[package]] @@ -5135,26 +5476,24 @@ dependencies = [ ] [[package]] -name = "security-framework" -version = "2.11.1" +name = "secp256k1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ - "bitflags 2.6.0", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys", + "serde", ] [[package]] -name = "security-framework-sys" -version = "2.13.0" +name = "secp256k1-sys" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" dependencies = [ - "core-foundation-sys", - "libc", + "cc", ] [[package]] @@ -5185,22 +5524,32 @@ dependencies = [ name = "send_wrapper" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] [[package]] -name = "serde" -version = "1.0.216" +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.216" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -5209,14 +5558,24 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.134" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", ] [[package]] @@ -5249,19 +5608,20 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.11.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" +checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", "indexmap 2.7.0", - "serde", - "serde_derive", + "schemars 0.9.0", + "schemars 1.1.0", + "serde_core", "serde_json", - "serde_with_macros 3.11.0", + "serde_with_macros 3.16.0", "time", ] @@ -5271,7 +5631,7 @@ version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" dependencies = [ - "darling", + "darling 0.20.10", "proc-macro2", "quote", "syn 2.0.100", @@ -5279,11 +5639,11 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.11.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" +checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b" dependencies = [ - "darling", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.100", @@ -5385,7 +5745,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest 0.10.7", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -5403,6 +5763,16 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slug" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" +dependencies = [ + "deunicode", + "wasm-bindgen", +] + [[package]] name = "smallvec" version = "1.13.2" @@ -5422,6 +5792,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + [[package]] name = "spin" version = "0.9.8" @@ -5441,21 +5821,11 @@ dependencies = [ "der", ] -[[package]] -name = "sqlformat" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" -dependencies = [ - "nom", - "unicode_categories", -] - [[package]] name = "sqlx" -version = "0.7.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" +checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" dependencies = [ "sqlx-core", "sqlx-macros", @@ -5466,73 +5836,67 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.7.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" +checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" dependencies = [ - "ahash 0.8.11", - "atoi", + "base64 0.22.1", "bigdecimal", - "byteorder", "bytes", "chrono", "crc", "crossbeam-queue", "either", - "event-listener 2.5.3", - "futures-channel", + "event-listener 5.3.1", "futures-core", "futures-intrusive", "futures-io", "futures-util", - "hashlink", - "hex", + "hashbrown 0.15.2", + "hashlink 0.10.0", "indexmap 2.7.0", "log", "memchr", "once_cell", - "paste", "percent-encoding", "rust_decimal", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", + "rustls", "serde", "serde_json", "sha2", "smallvec", - "sqlformat", - "thiserror 1.0.69", + "thiserror 2.0.9", "time", "tokio", "tokio-stream", "tracing", "url", "uuid", - "webpki-roots 0.25.4", + "webpki-roots 0.26.7", ] [[package]] name = "sqlx-macros" -version = "0.7.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" +checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" dependencies = [ "proc-macro2", "quote", "sqlx-core", "sqlx-macros-core", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "sqlx-macros-core" -version = "0.7.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" +checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" dependencies = [ "dotenvy", "either", - "heck 0.4.1", + "heck 0.5.0", "hex", "once_cell", "proc-macro2", @@ -5544,22 +5908,21 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 1.0.109", - "tempfile", + "syn 2.0.100", "tokio", "url", ] [[package]] name = "sqlx-mysql" -version = "0.7.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" +checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" dependencies = [ "atoi", - "base64 0.21.7", + "base64 0.22.1", "bigdecimal", - "bitflags 2.6.0", + "bitflags 2.10.0", "byteorder", "bytes", "chrono", @@ -5581,7 +5944,7 @@ dependencies = [ "memchr", "once_cell", "percent-encoding", - "rand", + "rand 0.8.5", "rsa", "rust_decimal", "serde", @@ -5590,7 +5953,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 1.0.69", + "thiserror 2.0.9", "time", "tracing", "uuid", @@ -5599,14 +5962,14 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.7.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" +checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" dependencies = [ "atoi", - "base64 0.21.7", + "base64 0.22.1", "bigdecimal", - "bitflags 2.6.0", + "bitflags 2.10.0", "byteorder", "chrono", "crc", @@ -5614,7 +5977,6 @@ dependencies = [ "etcetera", "futures-channel", "futures-core", - "futures-io", "futures-util", "hex", "hkdf", @@ -5626,7 +5988,7 @@ dependencies = [ "memchr", "num-bigint", "once_cell", - "rand", + "rand 0.8.5", "rust_decimal", "serde", "serde_json", @@ -5634,7 +5996,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 1.0.69", + "thiserror 2.0.9", "time", "tracing", "uuid", @@ -5643,9 +6005,9 @@ dependencies = [ [[package]] name = "sqlx-sqlite" -version = "0.7.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" +checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" dependencies = [ "atoi", "chrono", @@ -5659,11 +6021,12 @@ dependencies = [ "log", "percent-encoding", "serde", + "serde_urlencoded", "sqlx-core", + "thiserror 2.0.9", "time", "tracing", "url", - "urlencoding", "uuid", ] @@ -5690,6 +6053,12 @@ dependencies = [ "unicode-properties", ] +[[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" @@ -5701,20 +6070,25 @@ name = "strum" version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" + +[[package]] +name = "strum" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.26.4" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "rustversion", "syn 2.0.100", ] @@ -5748,9 +6122,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.24" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36dbbf0d465ab9fdfea3093e755ae8839bdc1263dbe18d35064d02d6060f949e" +checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" dependencies = [ "paste", "proc-macro2", @@ -5758,12 +6132,6 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -5800,7 +6168,7 @@ dependencies = [ "fastrand", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -5942,60 +6310,39 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.42.0" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.6.1", "tokio-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", "syn 2.0.100", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.20", + "rustls", "tokio", ] @@ -6019,7 +6366,7 @@ checksum = "be4bf6fecd69fcdede0ec680aaf474cdab988f9de6bc73d3758f0160e3b7025a" dependencies = [ "futures-util", "log", - "rustls 0.23.20", + "rustls", "rustls-pki-types", "tokio", "tokio-rustls", @@ -6036,6 +6383,8 @@ dependencies = [ "bytes", "futures-core", "futures-sink", + "futures-util", + "hashbrown 0.14.5", "pin-project-lite", "tokio", ] @@ -6049,11 +6398,26 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" @@ -6062,53 +6426,54 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.7.0", + "serde", + "serde_spanned", "toml_datetime", "winnow 0.6.20", ] [[package]] name = "tonic" -version = "0.8.3" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ "async-stream", "async-trait", "axum", - "base64 0.13.1", + "base64 0.22.1", "bytes", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", + "h2 0.4.12", + "http 1.2.0", + "http-body", + "http-body-util", + "hyper", "hyper-timeout", + "hyper-util", "percent-encoding", "pin-project", - "prost 0.11.9", - "prost-derive 0.11.9", + "prost", + "socket2 0.5.8", "tokio", "tokio-stream", - "tokio-util", "tower 0.4.13", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic-build" -version = "0.8.4" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4" +checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" dependencies = [ - "prettyplease 0.1.25", + "prettyplease", "proc-macro2", "prost-build", + "prost-types", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] @@ -6122,7 +6487,7 @@ dependencies = [ "indexmap 1.9.3", "pin-project", "pin-project-lite", - "rand", + "rand 0.8.5", "slab", "tokio", "tokio-util", @@ -6140,7 +6505,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 1.0.2", + "sync_wrapper", "tower-layer", "tower-service", ] @@ -6190,18 +6555,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "futures", - "futures-task", - "pin-project", - "tracing", -] - [[package]] name = "tracing-log" version = "0.1.4" @@ -6287,14 +6640,20 @@ dependencies = [ "http 1.2.0", "httparse", "log", - "rand", - "rustls 0.23.20", + "rand 0.8.5", + "rustls", "rustls-pki-types", "sha1", "thiserror 2.0.9", "utf-8", ] +[[package]] +name = "typed-arena" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" + [[package]] name = "typeid" version = "1.0.2" @@ -6349,6 +6708,18 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "uint" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "909988d098b2f738727b161a106cfc7cab00c539c2687a8836f8e565976fb53e" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + [[package]] name = "unarray" version = "0.1.4" @@ -6367,6 +6738,15 @@ version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" +[[package]] +name = "unicode-display-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3df11a586bd2acfaa7cb161c996692c1e5994ea92bf88dd7b750afd3ad47d66" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "unicode-ident" version = "1.0.14" @@ -6461,7 +6841,7 @@ dependencies = [ "sea-orm", "serde", "serde_json", - "serde_with 3.11.0", + "serde_with 3.16.0", "thiserror 2.0.9", "tokio", "tracing", @@ -6487,7 +6867,7 @@ dependencies = [ "actix-prost-macros", "actix-web", "async-trait", - "prost 0.11.9", + "prost", "prost-build", "prost-wkt", "prost-wkt-types", @@ -6547,7 +6927,7 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ - "getrandom", + "getrandom 0.2.15", "serde", ] @@ -6605,6 +6985,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", +] + [[package]] name = "wasite" version = "0.1.0" @@ -6703,10 +7092,14 @@ dependencies = [ ] [[package]] -name = "webpki-roots" -version = "0.25.4" +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] name = "webpki-roots" @@ -6718,15 +7111,12 @@ dependencies = [ ] [[package]] -name = "which" -version = "4.4.2" +name = "webpki-roots" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" dependencies = [ - "either", - "home", - "once_cell", - "rustix", + "rustls-pki-types", ] [[package]] @@ -6770,6 +7160,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-registry" version = "0.2.0" @@ -6827,6 +7223,24 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -6851,13 +7265,30 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "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-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -6870,6 +7301,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -6882,6 +7319,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -6894,12 +7337,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[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_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -6912,6 +7367,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -6924,6 +7385,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -6936,6 +7403,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -6948,6 +7421,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "winnow" version = "0.6.20" @@ -6966,6 +7445,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" + [[package]] name = "write16" version = "1.0.0" @@ -7015,6 +7500,17 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "yaml-rust2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8902160c4e6f2fb145dbe9d6760a75e3c9522d8bf796ed7047c85919ac7115f8" +dependencies = [ + "arraydeque", + "encoding_rs", + "hashlink 0.8.4", +] + [[package]] name = "yansi" version = "1.0.1" diff --git a/user-ops-indexer/Cargo.toml b/user-ops-indexer/Cargo.toml index 9ddc8b356..648a523d8 100644 --- a/user-ops-indexer/Cargo.toml +++ b/user-ops-indexer/Cargo.toml @@ -1,6 +1,6 @@ [workspace] resolver = "2" -members = [ +members = ["env-docs-generation", "user-ops-indexer-entity", "user-ops-indexer-logic", "user-ops-indexer-migration", @@ -9,4 +9,6 @@ members = [ ] [workspace.dependencies] -blockscout-service-launcher = "0.16.2" \ No newline at end of file +alloy = "1.1" +blockscout-service-launcher = "0.20.0" +tonic = "0.12" diff --git a/user-ops-indexer/README.md b/user-ops-indexer/README.md index 1d036e50a..bf8feadf2 100644 --- a/user-ops-indexer/README.md +++ b/user-ops-indexer/README.md @@ -56,43 +56,51 @@ cargo run --bin user-ops-indexer-server Here, we describe variables specific to this service. Variables common to all services can be found [here](../docs/common-envs.md). -| Variable | Required | Description | Default value | -| ------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | -| `USER_OPS_INDEXER__API__MAX_PAGE_SIZE` | | Max page size for API requests | `100` | -| `USER_OPS_INDEXER__INDEXER__RPC_URL` | true | Indexer RPC URL, should be an archive JSON RPC node with `eth`, `web3` and `trace`/`debug` namespaces enabled. Both HTTP and WS protocols are supported. WS is recommended for local RPC nodes, use HTTP otherwise. | `ws://127.0.0.1:8546` | -| `USER_OPS_INDEXER__INDEXER__CONCURRENCY` | | Indexer concurrency. Will process up to the configured number of transactions concurrently | `10` | -| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V06` | | Enable Entrypoint v0.6 indexer | `true` | -| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V06_ENTRY_POINT` | | Entrypoint v0.6 contract addresses, comma separated | `0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789` | -| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V07` | | Enable Entrypoint v0.7 indexer | `true` | -| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V07_ENTRY_POINT` | | Entrypoint v0.7 contract addresses, comma separated | `0x0000000071727De22E5E9d8BAf0edAc6f37da032` | -| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V08` | | Enable Entrypoint v0.8 indexer | `true` | -| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V08_ENTRY_POINT` | | Entrypoint v0.8 contract addresses, comma separated | `0x4337084d9e255ff0702461cf8895ce9e3b5ff108` | -| `USER_OPS_INDEXER__INDEXER__REALTIME__ENABLED` | | Enable forward realtime indexing of user operations from the `latest` block | `true` | -| `USER_OPS_INDEXER__INDEXER__REALTIME__POLLING_INTERVAL` | | Polling interval for forward realtime indexing of user operations from the `latest` block, when using an HTTP RPC node | `6` | -| `USER_OPS_INDEXER__INDEXER__REALTIME__POLLING_BLOCK_RANGE` | | Extra block range offset for polling in reatime indexing to recover from small re-orgs. | `6` | -| `USER_OPS_INDEXER__INDEXER__REALTIME__MAX_BLOCK_RANGE` | | Max block range for single polling request in realtime indexing. | `10000` | -| `USER_OPS_INDEXER__INDEXER__PAST_RPC_LOGS_INDEXER__ENABLED` | | Enable one-time reindex of missed user operations from recent blocks | `false` | -| `USER_OPS_INDEXER__INDEXER__PAST_RPC_LOGS_INDEXER__BLOCK_RANGE` | | Block range width for missed user operations reindex. Will re-index events from a given number of blocks prior the `latest` block | `0` | -| `USER_OPS_INDEXER__INDEXER__PAST_DB_LOGS_INDEXER__ENABLED` | | Enable one-time reindex of missed user operations from core Blockscout DB. Will query relevant events from `logs` Postgres table | `false` | -| `USER_OPS_INDEXER__INDEXER__PAST_DB_LOGS_INDEXER__START_BLOCK` | | Block range start for one-time DB reindex. Use positive number for static block number, or zero/negative number to count backwards from `latest` | `0` | -| `USER_OPS_INDEXER__INDEXER__PAST_DB_LOGS_INDEXER__END_BLOCK` | | Block range end for one-time DB reindex. Use positive number for static block number, or zero/negative number to count backwards from `latest` | `0` | -| `USER_OPS_INDEXER__INDEXER__TRACE_CLIENT` | | RPC tracing namespace to use for tracing transactions, `debug` for using `debug_traceTransaction`, `trace` for using `trace_transaction` | Depends on `web3_clientVersion` | -| `USER_OPS_INDEXER__DATABASE__CONNECT__URL` | true | Postgres connect URL to Blockscout DB with read/write access | (empty) | -| `USER_OPS_INDEXER__DATABASE__CREATE_DATABASE` | | Create database if doesn't exist | `false` | -| `USER_OPS_INDEXER__DATABASE__RUN_MIGRATIONS` | | Run database migrations | `false` | -| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__MAX_CONNECTIONS` | | Maximum number of connections for a pool | `10` | -| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__MIN_CONNECTIONS` | | Minimum number of connections for a pool | `0` | -| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__CONNECT_TIMEOUT` | | The connection timeout for a packet connection | `30` | -| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__IDLE_TIMEOUT` | | Maximum idle time for a particular connection to prevent network resource exhaustion | `600` | -| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__ACQUIRE_TIMEOUT` | | Maximum amount of time to spend waiting for acquiring a connection | `30` | -| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__MAX_LIFETIME` | | Maximum lifetime of individual connections | `1800` | -| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__SQLX_LOGGING` | | Enable SQLX logging | `true` | -| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__SQLX_LOGGING_LEVEL` | | SQLX logging level | `debug` | -| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__SQLX_SLOW_STATEMENTS_LOGGING_LEVEL` | | SQLX logging level for slow statements warnings | `off` | -| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__SQLX_SLOW_STATEMENTS_LOGGING_THRESHOLD` | | Threshold duration for SQLX slow statements warnings | `1` | +[anchor]: <> (anchors.envs.start) + +| Variable | Req​uir​ed | Description | Default value | +| ------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------- | +| `USER_OPS_INDEXER__API__MAX_PAGE_SIZE` | | Max page size for API requests | `100` | +| `USER_OPS_INDEXER__INDEXER__RPC_URL` | | Indexer RPC URL, should be an archive JSON RPC node with `eth`, `web3` and `trace`/`debug` namespaces enabled. Both HTTP and WS protocols are supported. WS is recommended for local RPC nodes, use HTTP otherwise. | `ws://127.0.0.1:8546` | +| `USER_OPS_INDEXER__INDEXER__CONCURRENCY` | | Indexer concurrency. Will process up to the configured number of transactions concurrently | `10` | +| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V06` | | Enable Entrypoint v0.6 indexer | `true` | +| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V06_ENTRY_POINT` | | Entrypoint v0.6 contract addresses, comma separated | `0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789` | +| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V07` | | Enable Entrypoint v0.7 indexer | `true` | +| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V07_ENTRY_POINT` | | Entrypoint v0.7 contract addresses, comma separated | `0x0000000071727De22E5E9d8BAf0edAc6f37da032` | +| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V08` | | Enable Entrypoint v0.8 indexer | `true` | +| `USER_OPS_INDEXER__INDEXER__ENTRYPOINTS__V08_ENTRY_POINT` | | Entrypoint v0.8 contract addresses, comma separated | `0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108` | +| `USER_OPS_INDEXER__INDEXER__REALTIME__ENABLED` | | Enable forward realtime indexing of user operations from the `latest` block | `true` | +| `USER_OPS_INDEXER__INDEXER__REALTIME__POLLING_INTERVAL` | | Polling interval for forward realtime indexing of user operations from the `latest` block, when using an HTTP RPC node | `6` | +| `USER_OPS_INDEXER__INDEXER__REALTIME__POLLING_BLOCK_RANGE` | | Extra block range offset for polling in realtime indexing to recover from small re-orgs. | `6` | +| `USER_OPS_INDEXER__INDEXER__REALTIME__MAX_BLOCK_RANGE` | | Max block range for single polling request in realtime indexing. | `10000` | +| `USER_OPS_INDEXER__INDEXER__PAST_RPC_LOGS_INDEXER__ENABLED` | | Enable one-time reindex of missed user operations from recent blocks | `false` | +| `USER_OPS_INDEXER__INDEXER__PAST_RPC_LOGS_INDEXER__BLOCK_RANGE` | | Block range width for missed user operations reindex. Will re-index events from a given number of blocks prior the `latest` block | `0` | +| `USER_OPS_INDEXER__INDEXER__PAST_DB_LOGS_INDEXER__ENABLED` | | Enable one-time reindex of missed user operations from core Blockscout DB. Will query relevant events from `logs` Postgres table | `false` | +| `USER_OPS_INDEXER__INDEXER__PAST_DB_LOGS_INDEXER__START_BLOCK` | | Block range start for one-time DB reindex. Use positive number for static block number, or zero/negative number to count backwards from `latest` | `0` | +| `USER_OPS_INDEXER__INDEXER__PAST_DB_LOGS_INDEXER__END_BLOCK` | | Block range end for one-time DB reindex. Use positive number for static block number, or zero/negative number to count backwards from `latest` | `0` | +| `USER_OPS_INDEXER__INDEXER__TRACE_CLIENT` | | RPC tracing namespace to use for tracing transactions, `debug` for using `debug_traceTransaction`, `trace` for using `trace_transaction`. If `null` - chosen based on `web3_clientVersion`. | `null` | +| `USER_OPS_INDEXER__INDEXER__DEDUPLICATION_CACHE_SIZE` | | Cache size for indexer job (txn hash + block number) deduplication. | `1000` | +| `USER_OPS_INDEXER__INDEXER__DEDUPLICATION_INTERVAL` | | Interval for deduplication cache. Within this interval, subsequent equal jobs will be considered duplicate | `600` | +| `USER_OPS_INDEXER__INDEXER__RESTART_DELAY` | | Interval for restarting the indexer when encountering fatal errors | `60` | +| `USER_OPS_INDEXER__DATABASE__CONNECT__URL` | true | Postgres connect URL to Blockscout DB with read/write access | | +| `USER_OPS_INDEXER__DATABASE__CREATE_DATABASE` | | Create database if doesn't exist | `false` | +| `USER_OPS_INDEXER__DATABASE__RUN_MIGRATIONS` | | Run database migrations | `false` | +| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__MAX_CONNECTIONS` | | Maximum number of connections for a pool. If `null` - [default value from sqlx options](https://docs.rs/sqlx/latest/sqlx/pool/struct.PoolOptions.html#method.new) is used (currently - `10`). | `null` | +| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__MIN_CONNECTIONS` | | Minimum number of connections for a pool. If `null` - [default value from sqlx options](https://docs.rs/sqlx/latest/sqlx/pool/struct.PoolOptions.html#method.new) is used (currently - `0`). | `null` | +| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__CONNECT_TIMEOUT` | | The connection timeout for a packet connection, in seconds. If `null` - [default value from sqlx options](https://docs.rs/sqlx/latest/sqlx/pool/struct.PoolOptions.html#method.new) is used (currently - `30`). | `null` | +| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__IDLE_TIMEOUT` | | Maximum idle time for a particular connection to prevent network resource exhaustion, in seconds. If `null` - [default value from sqlx options](https://docs.rs/sqlx/latest/sqlx/pool/struct.PoolOptions.html#method.new) is used (currently - `600`). | `null` | +| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__ACQUIRE_TIMEOUT` | | Maximum amount of time to spend waiting for acquiring a connection, in seconds. If `null` - [default value from sqlx options](https://docs.rs/sqlx/latest/sqlx/pool/struct.PoolOptions.html#method.new) is used (currently - `30`). | `null` | +| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__MAX_LIFETIME` | | Maximum lifetime of individual connections, in seconds. If `null` - [default value from sqlx options](https://docs.rs/sqlx/latest/sqlx/pool/struct.PoolOptions.html#method.new) is used (currently - `1800`). | `null` | +| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__SQLX_LOGGING` | | Enable SQLX logging | `true` | +| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__SQLX_LOGGING_LEVEL` | | SQLX logging level | `debug` | +| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__SQLX_SLOW_STATEMENTS_LOGGING_LEVEL` | | SQLX logging level for slow statements warnings | `off` | +| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__SQLX_SLOW_STATEMENTS_LOGGING_THRESHOLD` | | Threshold duration for SQLX slow statements warnings | `1` | +| `USER_OPS_INDEXER__DATABASE__CONNECT_OPTIONS__CONNECT_LAZY` | | Only establish SQL connections if necessary (see sqlx/sea-orm documentation for details) | `false` | + +[anchor]: <> (anchors.envs.end) ## Links - [Swagger](https://blockscout.github.io/swaggers/services/user-ops-indexer/index.html) - [Packages](https://github.com/blockscout/blockscout-rs/pkgs/container/user-ops-indexer) -- [Releases](https://github.com/blockscout/blockscout-rs/releases?q=user-ops-indexer&expanded=true) +- [Releases](https://github.com/blockscout/blockscout-rs/releases?q=user-ops-indexer&expanded=true) \ No newline at end of file diff --git a/user-ops-indexer/env-docs-generation/Cargo.toml b/user-ops-indexer/env-docs-generation/Cargo.toml new file mode 100644 index 000000000..4f8fd443a --- /dev/null +++ b/user-ops-indexer/env-docs-generation/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "env-docs-generation" +version = "0.1.0" +edition = "2024" + +[dependencies] +user-ops-indexer-server = { path = "../user-ops-indexer-server" } +env-collector = { git = "https://github.com/blockscout/blockscout-rs", rev = "1e9d3c8a06f82626525217f6c2c51c1368868cd8" } # patched version from PR branch diff --git a/user-ops-indexer/env-docs-generation/example-configs/service.json b/user-ops-indexer/env-docs-generation/example-configs/service.json new file mode 100644 index 000000000..fae02669d --- /dev/null +++ b/user-ops-indexer/env-docs-generation/example-configs/service.json @@ -0,0 +1,8 @@ +{ + "database": { + "connect": { + "url": "postgres://postgres:admin@127.0.0.1:9432/blockscout" + } + }, + "indexer": {} +} \ No newline at end of file diff --git a/user-ops-indexer/env-docs-generation/src/main.rs b/user-ops-indexer/env-docs-generation/src/main.rs new file mode 100644 index 000000000..42564c21c --- /dev/null +++ b/user-ops-indexer/env-docs-generation/src/main.rs @@ -0,0 +1,22 @@ +use env_collector::{EnvCollectorSettingsBuilder, PrefixFilter, run_env_collector_cli}; +use user_ops_indexer_server::Settings; + +fn main() { + let mut settings = EnvCollectorSettingsBuilder::default(); + settings + .service_name("USER_OPS_INDEXER") + .markdown_path("README.md"); + run_env_collector_cli::( + settings + .config_path("env-docs-generation/example-configs/service.json") + .vars_filter(PrefixFilter::blacklist(&[ + "USER_OPS_INDEXER__SERVER", + "USER_OPS_INDEXER__METRICS", + "USER_OPS_INDEXER__TRACING", + "USER_OPS_INDEXER__JAEGER", + "USER_OPS_INDEXER__SWAGGER_PATH", + ])) + .build() + .unwrap(), + ) +} diff --git a/user-ops-indexer/justfile b/user-ops-indexer/justfile index 94a2ada86..334467439 100644 --- a/user-ops-indexer/justfile +++ b/user-ops-indexer/justfile @@ -15,6 +15,11 @@ export DATABASE_URL := "postgres://" + db-user + ":" + db-password + "@" + db-ho docker-name := "user-ops-indexer-postgres" test-db-port := "9433" +check-envs *args: + cargo run --bin env-docs-generation -- --validate-only {{args}} + +generate-envs *args: + cargo run --bin env-docs-generation -- {{args}} start-postgres: # we run it in --rm mode, so all data will be deleted after stopping diff --git a/user-ops-indexer/user-ops-indexer-logic/Cargo.toml b/user-ops-indexer/user-ops-indexer-logic/Cargo.toml index d106e2673..da03e3e24 100644 --- a/user-ops-indexer/user-ops-indexer-logic/Cargo.toml +++ b/user-ops-indexer/user-ops-indexer-logic/Cargo.toml @@ -8,7 +8,7 @@ edition = "2021" [dependencies] user-ops-indexer-entity = { path = "../user-ops-indexer-entity" } user-ops-indexer-proto = { path = "../user-ops-indexer-proto" } -blockscout-db = { git = "https://github.com/blockscout/blockscout-rs", rev = "8f2caa9" } +blockscout-db = { git = "https://github.com/blockscout/blockscout-rs", rev = "e860a53" } atoi = "2.0.0" anyhow = "1.0" @@ -29,15 +29,15 @@ chrono = "0.4.31" lru = "0.12.2" async-trait = "0.1.77" serde_with = "3.6.1" -alloy = { version = "0.13.0", features = ["contract", "pubsub", "provider-debug-api", "provider-trace-api"] } +alloy = { workspace = true, features = ["contract", "pubsub", "provider-debug-api", "provider-trace-api"] } thiserror = "2.0.9" [dev-dependencies] async-trait = "0.1" -blockscout-service-launcher = { workspace = true, features = ["test-database", "database-1_0"] } +blockscout-service-launcher = { workspace = true, features = ["test-database", "database-1"] } user-ops-indexer-migration = { path = "../user-ops-indexer-migration" } pretty_assertions = "1.3" -sea-orm = { version = "1.0.1", features = ["mock"] } +sea-orm = { version = "1.0.1" } [features] # When activated includes helper methods for tests and benchmarking diff --git a/user-ops-indexer/user-ops-indexer-logic/src/indexer/base_indexer.rs b/user-ops-indexer/user-ops-indexer-logic/src/indexer/base_indexer.rs index bb8af2341..c16ec049a 100644 --- a/user-ops-indexer/user-ops-indexer-logic/src/indexer/base_indexer.rs +++ b/user-ops-indexer/user-ops-indexer-logic/src/indexer/base_indexer.rs @@ -93,7 +93,7 @@ pub trait IndexerLogic { log: &Log, ) -> Option> { if log.address() == entry_point && log.topic0() == Some(&T::SIGNATURE_HASH) { - Some(T::decode_log(&log.inner, true).map(|l| l.data)) + Some(T::decode_log_validate(&log.inner).map(|l| l.data)) } else { None } @@ -485,7 +485,7 @@ mod tests { for response in load_test_responses(test_name) { mock.push_success(&response); } - ProviderBuilder::new().on_mocked_client(mock) + ProviderBuilder::new().connect_mocked_client(mock) } #[tokio::test] diff --git a/user-ops-indexer/user-ops-indexer-logic/src/indexer/common.rs b/user-ops-indexer/user-ops-indexer-logic/src/indexer/common.rs index 77a04fe01..6d53821ef 100644 --- a/user-ops-indexer/user-ops-indexer-logic/src/indexer/common.rs +++ b/user-ops-indexer/user-ops-indexer-logic/src/indexer/common.rs @@ -95,7 +95,7 @@ pub fn decode_execute_call_data(call_data: &Bytes) -> (Option
, Option = - SolValue::abi_decode_params(&call_data[4..], false); + SolValue::abi_decode_params(&call_data[4..]); match res { Ok((execute_target, _, execute_call_data)) => { (Some(execute_target), Some(execute_call_data)) diff --git a/user-ops-indexer/user-ops-indexer-logic/src/indexer/rpc_utils.rs b/user-ops-indexer/user-ops-indexer-logic/src/indexer/rpc_utils.rs index 197275cf8..22108462e 100644 --- a/user-ops-indexer/user-ops-indexer-logic/src/indexer/rpc_utils.rs +++ b/user-ops-indexer/user-ops-indexer-logic/src/indexer/rpc_utils.rs @@ -14,7 +14,7 @@ use alloy::{ transports::{TransportErrorKind, TransportResult}, }; use async_trait::async_trait; -use serde::Deserialize; +use serde::{Deserialize, Serialize}; #[derive(Debug, Copy, Clone, PartialEq, Eq)] pub enum NodeClient { @@ -41,9 +41,10 @@ impl From for NodeClient { } } -#[derive(Debug, Copy, Clone, PartialEq, Eq, Deserialize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "lowercase")] pub enum TraceClient { + #[default] Debug, Trace, } @@ -62,12 +63,6 @@ impl TraceClient { } } -impl Default for TraceClient { - fn default() -> Self { - Self::Debug - } -} - #[derive(Debug, PartialEq)] pub enum TraceType { Call, diff --git a/user-ops-indexer/user-ops-indexer-logic/src/indexer/settings.rs b/user-ops-indexer/user-ops-indexer-logic/src/indexer/settings.rs index afc514eeb..e51b30138 100644 --- a/user-ops-indexer/user-ops-indexer-logic/src/indexer/settings.rs +++ b/user-ops-indexer/user-ops-indexer-logic/src/indexer/settings.rs @@ -1,11 +1,11 @@ use crate::indexer::rpc_utils::TraceClient; use alloy::primitives::{address, Address}; -use serde::Deserialize; +use serde::{Deserialize, Serialize}; use serde_with::{formats::CommaSeparator, serde_as}; use std::time; #[serde_as] -#[derive(Debug, Clone, Deserialize, PartialEq, Eq)] +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] #[serde(default, deny_unknown_fields)] pub struct IndexerSettings { pub rpc_url: String, @@ -32,7 +32,7 @@ pub struct IndexerSettings { } #[serde_as] -#[derive(Debug, Clone, Deserialize, PartialEq, Eq)] +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] #[serde(default, deny_unknown_fields)] pub struct EntrypointsSettings { pub v06: bool, @@ -47,7 +47,7 @@ pub struct EntrypointsSettings { } #[serde_as] -#[derive(Debug, Clone, Deserialize, PartialEq, Eq)] +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] #[serde(default, deny_unknown_fields)] pub struct RealtimeIndexerSettings { pub enabled: bool, @@ -60,7 +60,7 @@ pub struct RealtimeIndexerSettings { pub max_block_range: u32, } -#[derive(Debug, Clone, Default, Deserialize, PartialEq, Eq)] +#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)] #[serde(default, deny_unknown_fields)] pub struct PastRpcLogsIndexerSettings { pub enabled: bool, @@ -69,7 +69,7 @@ pub struct PastRpcLogsIndexerSettings { } #[serde_as] -#[derive(Debug, Clone, Default, Deserialize, PartialEq, Eq)] +#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)] #[serde(default, deny_unknown_fields)] pub struct PastDbLogsIndexerSettings { pub enabled: bool, diff --git a/user-ops-indexer/user-ops-indexer-logic/src/indexer/v06/mod.rs b/user-ops-indexer/user-ops-indexer-logic/src/indexer/v06/mod.rs index 942b593d4..e6d460aae 100644 --- a/user-ops-indexer/user-ops-indexer-logic/src/indexer/v06/mod.rs +++ b/user-ops-indexer/user-ops-indexer-logic/src/indexer/v06/mod.rs @@ -49,8 +49,8 @@ impl IndexerLogic for IndexerV06 { } fn matches_handler_calldata(calldata: &Bytes) -> bool { - IEntrypointV06::handleOpsCall::abi_decode(calldata, true).is_ok() - || IEntrypointV06::handleAggregatedOpsCall::abi_decode(calldata, true).is_ok() + IEntrypointV06::handleOpsCall::abi_decode_validate(calldata).is_ok() + || IEntrypointV06::handleAggregatedOpsCall::abi_decode_validate(calldata).is_ok() } fn parse_user_ops( @@ -61,7 +61,7 @@ impl IndexerLogic for IndexerV06 { calldata: &Bytes, bundle_logs: &[Log], ) -> anyhow::Result> { - let decoded_calldata = IEntrypointV06Calls::abi_decode(calldata, true)?; + let decoded_calldata = IEntrypointV06Calls::abi_decode_validate(calldata)?; let user_ops: Vec = match decoded_calldata { IEntrypointV06Calls::handleAggregatedOps(cd) => cd .opsPerAggregator diff --git a/user-ops-indexer/user-ops-indexer-logic/src/indexer/v07/mod.rs b/user-ops-indexer/user-ops-indexer-logic/src/indexer/v07/mod.rs index 2e0f23103..f82777e93 100644 --- a/user-ops-indexer/user-ops-indexer-logic/src/indexer/v07/mod.rs +++ b/user-ops-indexer/user-ops-indexer-logic/src/indexer/v07/mod.rs @@ -55,8 +55,8 @@ impl IndexerLogic for IndexerV07 { } fn matches_handler_calldata(calldata: &Bytes) -> bool { - IEntrypointV07::handleOpsCall::abi_decode(calldata, true).is_ok() - || IEntrypointV07::handleAggregatedOpsCall::abi_decode(calldata, true).is_ok() + IEntrypointV07::handleOpsCall::abi_decode_validate(calldata).is_ok() + || IEntrypointV07::handleAggregatedOpsCall::abi_decode_validate(calldata).is_ok() } fn parse_user_ops( @@ -67,7 +67,7 @@ impl IndexerLogic for IndexerV07 { calldata: &Bytes, bundle_logs: &[Log], ) -> anyhow::Result> { - let decoded_calldata = IEntrypointV07Calls::abi_decode(calldata, true)?; + let decoded_calldata = IEntrypointV07Calls::abi_decode_validate(calldata)?; let user_ops: Vec = match decoded_calldata { IEntrypointV07Calls::handleAggregatedOps(cd) => cd .opsPerAggregator diff --git a/user-ops-indexer/user-ops-indexer-proto/Cargo.toml b/user-ops-indexer/user-ops-indexer-proto/Cargo.toml index ad24e3cf6..ff37f9875 100644 --- a/user-ops-indexer/user-ops-indexer-proto/Cargo.toml +++ b/user-ops-indexer/user-ops-indexer-proto/Cargo.toml @@ -4,18 +4,18 @@ version = "0.1.0" edition = "2021" [dependencies] -actix-prost = { git = "https://github.com/blockscout/actix-prost" } -actix-prost-macros = { git = "https://github.com/blockscout/actix-prost" } +actix-prost = "0.1.0" +actix-prost-macros = "0.1.0" actix-web = "4" -prost = "0.11" -prost-wkt = "0.4" -prost-wkt-types = "0.4" -tonic = "0.8" +prost = "0.13" +prost-wkt = "0.6" +prost-wkt-types = "0.6" +tonic = { workspace = true } serde = { version = "1", features = ["derive"] } serde_with = { version = "2.0", features = ["hex", "base64"] } async-trait = "0.1" [build-dependencies] -actix-prost-build = { git = "https://github.com/blockscout/actix-prost" } -tonic-build = "0.8" -prost-build = "0.11" +actix-prost-build = "0.1.0" +tonic-build = "0.12" +prost-build = "0.13" diff --git a/user-ops-indexer/user-ops-indexer-server/Cargo.toml b/user-ops-indexer/user-ops-indexer-server/Cargo.toml index 48bf91756..70ff54de6 100644 --- a/user-ops-indexer/user-ops-indexer-server/Cargo.toml +++ b/user-ops-indexer/user-ops-indexer-server/Cargo.toml @@ -13,13 +13,13 @@ user-ops-indexer-proto = { path = "../user-ops-indexer-proto" } actix-web = "4.2" anyhow = "1.0" async-trait = "0.1" -blockscout-service-launcher = { workspace = true, features = ["database-1_0"] } +blockscout-service-launcher = { workspace = true, features = ["database-1"] } sea-orm = "1.0.1" serde = "1.0" tokio = { version = "1.23", features = ["rt-multi-thread", "macros"] } -tonic = "0.8" +tonic = { workspace = true } tracing = "0.1" -alloy = { version = "0.13.0", features = ["provider-ws", "provider-http"] } +alloy = { workspace = true, features = ["provider-ws", "provider-http"] } blockscout-endpoint-swagger = { git = "https://github.com/blockscout/blockscout-rs", rev = "4a755c5" } [dev-dependencies] diff --git a/user-ops-indexer/user-ops-indexer-server/src/server.rs b/user-ops-indexer/user-ops-indexer-server/src/server.rs index 254d05a37..b90072af9 100644 --- a/user-ops-indexer/user-ops-indexer-server/src/server.rs +++ b/user-ops-indexer/user-ops-indexer-server/src/server.rs @@ -8,7 +8,7 @@ use crate::{ settings::Settings, }; use blockscout_endpoint_swagger::route_swagger; -use blockscout_service_launcher::{launcher, launcher::LaunchSettings}; +use blockscout_service_launcher::launcher::{self, GracefulShutdownHandler, LaunchSettings}; use sea_orm::DatabaseConnection; use std::{path::PathBuf, sync::Arc}; use tokio::sync::RwLock; @@ -70,7 +70,8 @@ pub async fn run( service_name: SERVICE_NAME.to_string(), server: settings.server, metrics: settings.metrics, + graceful_shutdown: GracefulShutdownHandler::new(), }; - launcher::launch(&launch_settings, http_router, grpc_router).await + launcher::launch(launch_settings, http_router, grpc_router).await } diff --git a/user-ops-indexer/user-ops-indexer-server/src/settings.rs b/user-ops-indexer/user-ops-indexer-server/src/settings.rs index 84f91788e..580fabea8 100644 --- a/user-ops-indexer/user-ops-indexer-server/src/settings.rs +++ b/user-ops-indexer/user-ops-indexer-server/src/settings.rs @@ -3,11 +3,11 @@ use blockscout_service_launcher::{ launcher::{ConfigSettings, MetricsSettings, ServerSettings}, tracing::{JaegerSettings, TracingSettings}, }; -use serde::Deserialize; +use serde::{Deserialize, Serialize}; use std::path::PathBuf; use user_ops_indexer_logic::indexer::settings::IndexerSettings; -#[derive(Debug, Clone, Deserialize, PartialEq, Eq)] +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] #[serde(deny_unknown_fields)] pub struct Settings { #[serde(default)] @@ -44,7 +44,7 @@ impl ConfigSettings for Settings { } } -#[derive(Debug, Clone, Deserialize, PartialEq, Eq)] +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] #[serde(default, deny_unknown_fields)] pub struct ApiSettings { pub max_page_size: u32,