diff --git a/.github/workflows/sequencer_topos_core_contract_test.yml b/.github/workflows/certificate_producer_topos_core_contract_test.yml similarity index 67% rename from .github/workflows/sequencer_topos_core_contract_test.yml rename to .github/workflows/certificate_producer_topos_core_contract_test.yml index d7fe1733a..29ca848f2 100644 --- a/.github/workflows/sequencer_topos_core_contract_test.yml +++ b/.github/workflows/certificate_producer_topos_core_contract_test.yml @@ -1,4 +1,4 @@ -name: Sequencer Topos Core Contract interaction test +name: Certificate Producer Topos Core Contract interaction test on: push: @@ -16,7 +16,8 @@ jobs: owner: topos-protocol repo: e2e-tests github_token: ${{ secrets.ROBOT_PAT_TRIGGER_E2E_WORKFLOWS }} - workflow_file_name: topos:sequencer-contracts.yml + # This file is part of https://github.com/topos-protocol/e2e-tests/blob/main/.github/workflows/topos%3Asequencer-contracts.yml + workflow_file_name: topos:certificate-producer-contracts.yml ref: main wait_interval: 60 client_payload: '{ "topos-ref": "${{ github.head_ref }}", "topos-smart-contracts-ref": "main" }' diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index ee2c62374..f7638e39e 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -39,7 +39,7 @@ jobs: RUSTFLAGS: "-Cinstrument-coverage" RUSTDOCFLAGS: "-Cinstrument-coverage" LLVM_PROFILE_FILE: "codecov-instrumentation-%p-%m.profraw" - run: cargo nextest run --workspace --exclude topos-sequencer-subnet-runtime + run: cargo nextest run --workspace --exclude topos-certificate-producer-subnet-runtime - name: Run grcov run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d57db3efa..1fb895531 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,16 +18,16 @@ jobs: name: Test documentation runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 - - uses: ./.github/actions/install-rust - with: - toolchain: nightly - AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID}} - AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY}} + - name: Checkout + uses: actions/checkout@v4 + - uses: ./.github/actions/install-rust + with: + toolchain: nightly + AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID}} + AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY}} - - name: Build Documentation - run: cargo +nightly doc --no-deps --all --all-features + - name: Build Documentation + run: cargo +nightly doc --no-deps --all --all-features test_stable: runs-on: ubuntu-latest-16-core @@ -41,7 +41,7 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID}} AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY}} - - run: cargo nextest run --workspace --exclude topos-sequencer-subnet-runtime && cargo test --doc --workspace + - run: cargo nextest run --workspace --exclude topos-certificate-producer-subnet-runtime && cargo test --doc --workspace env: RUST_LOG: warn,topos=info @@ -58,7 +58,7 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID}} AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY}} - - run: cargo nextest run --workspace --exclude topos-sequencer-subnet-runtime && cargo test --doc --workspace + - run: cargo nextest run --workspace --exclude topos-certificate-producer-subnet-runtime && cargo test --doc --workspace env: RUST_LOG: topos=warn diff --git a/Cargo.lock b/Cargo.lock index a3f28d56e..0f946609f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -39,9 +39,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", @@ -112,9 +112,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -160,15 +160,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arc-swap" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f" [[package]] name = "arrayref" @@ -244,9 +244,9 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "assert_cmd" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467" +checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" dependencies = [ "anstyle", "bstr", @@ -270,13 +270,13 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" dependencies = [ "concurrent-queue", - "event-listener 4.0.3", - "event-listener-strategy", + "event-listener 5.2.0", + "event-listener-strategy 0.5.0", "futures-core", "pin-project-lite", ] @@ -313,7 +313,7 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" dependencies = [ - "async-channel 2.1.1", + "async-channel 2.2.0", "async-executor", "async-io 2.3.1", "async-lock 3.3.0", @@ -339,8 +339,8 @@ dependencies = [ "fnv", "futures-util", "handlebars", - "http 0.2.11", - "indexmap 2.2.2", + "http 0.2.12", + "indexmap 2.2.5", "mime", "multer", "num-traits", @@ -381,12 +381,12 @@ checksum = "c7f329c7eb9b646a72f70c9c4b516c70867d356ec46cb00dcac8ad343fd006b0" dependencies = [ "Inflector", "async-graphql-parser", - "darling 0.20.5", + "darling 0.20.8", "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "strum", - "syn 2.0.48", + "strum 0.25.0", + "syn 2.0.52", "thiserror", ] @@ -409,7 +409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "323a5143f5bdd2030f45e3f2e0c821c9b1d36e79cf382129c64299c50a7f3750" dependencies = [ "bytes", - "indexmap 2.2.2", + "indexmap 2.2.5", "serde", "serde_json", ] @@ -446,7 +446,7 @@ dependencies = [ "futures-io", "futures-lite 2.2.0", "parking", - "polling 3.4.0", + "polling 3.5.0", "rustix 0.38.31", "slab", "tracing", @@ -469,7 +469,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ "event-listener 4.0.3", - "event-listener-strategy", + "event-listener-strategy 0.4.0", "pin-project-lite", ] @@ -509,7 +509,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -575,7 +575,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -592,7 +592,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -653,7 +653,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" dependencies = [ - "http 0.2.11", + "http 0.2.12", "log", "url", ] @@ -671,13 +671,13 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -699,7 +699,7 @@ dependencies = [ "bytes", "futures-util", "headers", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "hyper 0.14.28", "itoa", @@ -732,10 +732,10 @@ dependencies = [ "axum-core 0.4.3", "bytes", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "http-body-util", - "hyper 1.1.0", + "hyper 1.2.0", "hyper-util", "itoa", "matchit", @@ -765,7 +765,7 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "mime", "rustversion", @@ -782,7 +782,7 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "http-body-util", "mime", @@ -804,7 +804,7 @@ dependencies = [ "bytes", "futures", "futures-core", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "matchit", "metrics", @@ -813,7 +813,7 @@ dependencies = [ "pin-project", "tokio", "tower", - "tower-http 0.5.1", + "tower-http 0.5.2", ] [[package]] @@ -982,7 +982,7 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ - "async-channel 2.1.1", + "async-channel 2.2.0", "async-lock 3.3.0", "async-task", "fastrand 2.0.1", @@ -1004,7 +1004,7 @@ dependencies = [ "futures-core", "futures-util", "hex", - "http 0.2.11", + "http 0.2.12", "hyper 0.14.28", "hyperlocal", "log", @@ -1042,20 +1042,20 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "serde", ] [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" [[package]] name = "byte-slice-cast" @@ -1071,9 +1071,9 @@ checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205" [[package]] name = "bytemuck" -version = "1.14.2" +version = "1.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea31d69bda4949c1c1562c1e6f042a1caefac98cdc8a298260a2ff41c1e2d42b" +checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" [[package]] name = "byteorder" @@ -1122,9 +1122,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d" +checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" dependencies = [ "serde", ] @@ -1151,9 +1151,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" dependencies = [ "jobserver", "libc", @@ -1200,14 +1200,14 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.33" +version = "0.4.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" +checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -1271,31 +1271,31 @@ dependencies = [ "clap_lex 0.2.4", "indexmap 1.9.3", "once_cell", - "strsim", + "strsim 0.10.0", "termcolor", - "textwrap 0.16.0", + "textwrap 0.16.1", ] [[package]] name = "clap" -version = "4.4.18" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" +checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" dependencies = [ "clap_builder", - "clap_derive 4.4.7", + "clap_derive 4.5.0", ] [[package]] name = "clap_builder" -version = "4.4.18" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", - "clap_lex 0.6.0", - "strsim", + "clap_lex 0.7.0", + "strsim 0.11.0", ] [[package]] @@ -1313,14 +1313,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.4.7" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -1334,9 +1334,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "coins-bip32" @@ -1420,9 +1420,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d59688ad0945eaf6b84cb44fedbe93484c81b48970e98f09db8a22832d7961" +checksum = "efbd12d49ab0eaf8193ba9175e45f56bbc2e4b27d57b8cfe62aa47942a46b9a9" dependencies = [ "cfg-if", "cpufeatures", @@ -1479,9 +1479,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" dependencies = [ "cfg-if", ] @@ -1495,7 +1495,7 @@ dependencies = [ "anes", "cast", "ciborium", - "clap 4.4.18", + "clap 4.5.2", "criterion-plot", "futures", "is-terminal", @@ -1526,9 +1526,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" dependencies = [ "crossbeam-utils", ] @@ -1696,7 +1696,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -1711,12 +1711,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8" +checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" dependencies = [ - "darling_core 0.20.5", - "darling_macro 0.20.5", + "darling_core 0.20.8", + "darling_macro 0.20.8", ] [[package]] @@ -1729,22 +1729,22 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", + "strsim 0.10.0", "syn 1.0.109", ] [[package]] name = "darling_core" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3" +checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim", - "syn 2.0.48", + "strsim 0.10.0", + "syn 2.0.52", ] [[package]] @@ -1760,13 +1760,13 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77" +checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ - "darling_core 0.20.5", + "darling_core 0.20.8", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -1852,12 +1852,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - [[package]] name = "difflib" version = "0.4.0" @@ -1935,7 +1929,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -1986,9 +1980,9 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ecdsa" @@ -2031,9 +2025,9 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "elliptic-curve" @@ -2080,9 +2074,9 @@ dependencies = [ [[package]] name = "enr" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" dependencies = [ "base64 0.21.7", "bytes", @@ -2105,7 +2099,16 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", +] + +[[package]] +name = "env_filter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +dependencies = [ + "log", ] [[package]] @@ -2134,6 +2137,16 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" +dependencies = [ + "env_filter", + "log", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -2249,9 +2262,9 @@ dependencies = [ [[package]] name = "ethers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c7cd562832e2ff584fa844cd2f6e5d4f35bbe11b28c7c9b8df957b2e1d0c701" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" dependencies = [ "ethers-addressbook", "ethers-contract", @@ -2265,9 +2278,9 @@ dependencies = [ [[package]] name = "ethers-addressbook" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35dc9a249c066d17e8947ff52a4116406163cf92c7f0763cb8c001760b26403f" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" dependencies = [ "ethers-core", "once_cell", @@ -2277,9 +2290,9 @@ dependencies = [ [[package]] name = "ethers-contract" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43304317c7f776876e47f2f637859f6d0701c1ec7930a150f169d5fbe7d76f5a" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" dependencies = [ "const-hex", "ethers-contract-abigen", @@ -2296,9 +2309,9 @@ dependencies = [ [[package]] name = "ethers-contract-abigen" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f96502317bf34f6d71a3e3d270defaa9485d754d789e15a8e04a84161c95eb" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" dependencies = [ "Inflector", "const-hex", @@ -2313,7 +2326,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.48", + "syn 2.0.52", "tokio", "toml 0.8.10", "url", @@ -2322,9 +2335,9 @@ dependencies = [ [[package]] name = "ethers-contract-derive" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "452ff6b0a64507ce8d67ffd48b1da3b42f03680dcf5382244e9c93822cbbf5de" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" dependencies = [ "Inflector", "const-hex", @@ -2333,14 +2346,14 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] name = "ethers-core" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab3cef6cc1c9fd7f787043c81ad3052eff2b96a3878ef1526aa446311bdbfc9" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", "bytes", @@ -2358,8 +2371,8 @@ dependencies = [ "rlp", "serde", "serde_json", - "strum", - "syn 2.0.48", + "strum 0.26.1", + "syn 2.0.52", "tempfile", "thiserror", "tiny-keccak 2.0.2", @@ -2368,9 +2381,9 @@ dependencies = [ [[package]] name = "ethers-etherscan" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d45b981f5fa769e1d0343ebc2a44cfa88c9bc312eb681b676318b40cef6fb1" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" dependencies = [ "chrono", "ethers-core", @@ -2384,9 +2397,9 @@ dependencies = [ [[package]] name = "ethers-middleware" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145211f34342487ef83a597c1e69f0d3e01512217a7c72cc8a25931854c7dca0" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" dependencies = [ "async-trait", "auto_impl", @@ -2411,9 +2424,9 @@ dependencies = [ [[package]] name = "ethers-providers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb6b15393996e3b8a78ef1332d6483c11d839042c17be58decc92fa8b1c3508a" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" dependencies = [ "async-trait", "auto_impl", @@ -2427,7 +2440,7 @@ dependencies = [ "futures-timer", "futures-util", "hashers", - "http 0.2.11", + "http 0.2.12", "instant", "jsonwebtoken", "once_cell", @@ -2449,9 +2462,9 @@ dependencies = [ [[package]] name = "ethers-signers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b125a103b56aef008af5d5fb48191984aa326b50bfd2557d231dc499833de3" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" dependencies = [ "async-trait", "coins-bip32", @@ -2468,9 +2481,9 @@ dependencies = [ [[package]] name = "ethers-solc" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d21df08582e0a43005018a858cc9b465c5fff9cf4056651be64f844e57d1f55f" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" dependencies = [ "cfg-if", "const-hex", @@ -2526,6 +2539,17 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "event-listener" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + [[package]] name = "event-listener-strategy" version = "0.4.0" @@ -2536,6 +2560,16 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "event-listener-strategy" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +dependencies = [ + "event-listener 5.2.0", + "pin-project-lite", +] + [[package]] name = "eyre" version = "0.6.12" @@ -2825,7 +2859,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -2863,9 +2897,9 @@ dependencies = [ [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ "gloo-timers", "send_wrapper 0.4.0", @@ -2922,9 +2956,9 @@ dependencies = [ [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ "opaque-debug", "polyval", @@ -2955,7 +2989,7 @@ checksum = "b0e085ded9f1267c32176b40921b9754c474f7dd96f7e808d4a982e48aa1e854" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -2979,7 +3013,7 @@ dependencies = [ "aho-corasick", "bstr", "log", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "regex-syntax 0.8.2", ] @@ -3028,8 +3062,8 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http 0.2.11", - "indexmap 2.2.2", + "http 0.2.12", + "indexmap 2.2.5", "slab", "tokio", "tokio-util", @@ -3047,8 +3081,8 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http 1.0.0", - "indexmap 2.2.2", + "http 1.1.0", + "indexmap 2.2.5", "slab", "tokio", "tokio-util", @@ -3057,9 +3091,9 @@ dependencies = [ [[package]] name = "half" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e" dependencies = [ "cfg-if", "crunchy", @@ -3085,15 +3119,6 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "hashbrown" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038" -dependencies = [ - "ahash", -] - [[package]] name = "hashbrown" version = "0.14.3" @@ -3122,7 +3147,7 @@ dependencies = [ "base64 0.21.7", "bytes", "headers-core", - "http 0.2.11", + "http 0.2.12", "httpdate", "mime", "sha1", @@ -3134,7 +3159,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" dependencies = [ - "http 0.2.11", + "http 0.2.12", ] [[package]] @@ -3163,9 +3188,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.5" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -3196,7 +3221,7 @@ dependencies = [ "ipnet", "once_cell", "rand", - "socket2 0.5.5", + "socket2 0.5.6", "thiserror", "tinyvec", "tokio", @@ -3286,9 +3311,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -3297,9 +3322,9 @@ dependencies = [ [[package]] name = "http" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -3313,7 +3338,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http 0.2.11", + "http 0.2.12", "pin-project-lite", ] @@ -3324,7 +3349,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" dependencies = [ "bytes", - "http 1.0.0", + "http 1.1.0", ] [[package]] @@ -3335,7 +3360,7 @@ checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840" dependencies = [ "bytes", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "pin-project-lite", ] @@ -3375,13 +3400,13 @@ dependencies = [ "futures-core", "futures-util", "h2 0.3.24", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.5", + "socket2 0.5.6", "tokio", "tower-service", "tracing", @@ -3390,20 +3415,21 @@ dependencies = [ [[package]] name = "hyper" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a" dependencies = [ "bytes", "futures-channel", "futures-util", "h2 0.4.2", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "httparse", "httpdate", "itoa", "pin-project-lite", + "smallvec", "tokio", ] @@ -3414,7 +3440,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http 0.2.11", + "http 0.2.12", "hyper 0.14.28", "rustls 0.21.10", "tokio", @@ -3454,11 +3480,11 @@ checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" dependencies = [ "bytes", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", - "hyper 1.1.0", + "hyper 1.2.0", "pin-project-lite", - "socket2 0.5.5", + "socket2 0.5.6", "tokio", ] @@ -3564,7 +3590,7 @@ dependencies = [ "attohttpc", "bytes", "futures", - "http 0.2.11", + "http 0.2.12", "hyper 0.14.28", "log", "rand", @@ -3583,7 +3609,7 @@ dependencies = [ "globset", "log", "memchr", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "same-file", "walkdir", "winapi-util", @@ -3654,9 +3680,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.2" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -3686,9 +3712,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.34.0" +version = "1.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc" +checksum = "0a7c22c4d34ef4788c351e971c52bfdfe7ea2766f8c5466bc175dd46e52ac22e" dependencies = [ "console", "lazy_static", @@ -3725,7 +3751,7 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.5", + "hermit-abi 0.3.9", "libc", "windows-sys 0.48.0", ] @@ -3742,7 +3768,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.5", + "socket2 0.5.6", "widestring", "windows-sys 0.48.0", "winreg", @@ -3756,12 +3782,12 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ - "hermit-abi 0.3.5", - "rustix 0.38.31", + "hermit-abi 0.3.9", + "libc", "windows-sys 0.52.0", ] @@ -3791,18 +3817,18 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -3865,31 +3891,33 @@ dependencies = [ [[package]] name = "lalrpop" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" dependencies = [ "ascii-canvas", "bit-set", - "diff", "ena", - "is-terminal", - "itertools 0.10.5", + "itertools 0.11.0", "lalrpop-util", "petgraph", "regex", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", "string_cache", "term", "tiny-keccak 2.0.2", "unicode-xid", + "walkdir", ] [[package]] name = "lalrpop-util" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata 0.4.6", +] [[package]] name = "lazy_static" @@ -3911,12 +3939,12 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libloading" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "windows-sys 0.48.0", + "windows-targets 0.52.4", ] [[package]] @@ -4150,7 +4178,7 @@ dependencies = [ "libp2p-swarm", "rand", "smallvec", - "socket2 0.5.5", + "socket2 0.5.6", "tokio", "tracing", "void", @@ -4234,7 +4262,7 @@ dependencies = [ "rand", "ring 0.16.20", "rustls 0.21.10", - "socket2 0.5.5", + "socket2 0.5.6", "thiserror", "tokio", "tracing", @@ -4293,7 +4321,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -4328,7 +4356,7 @@ dependencies = [ "libc", "libp2p-core", "libp2p-identity", - "socket2 0.5.5", + "socket2 0.5.6", "tokio", "tracing", ] @@ -4499,18 +4527,18 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" dependencies = [ "value-bag", ] [[package]] name = "lru" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" dependencies = [ "hashbrown 0.14.3", ] @@ -4573,9 +4601,9 @@ checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "metrics" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77b9e10a211c839210fd7f99954bda26e5f8e26ec686ad68da6a32df7c80e782" +checksum = "cd71d9db2e4287c3407fa04378b8c2ee570aebe0854431562cdd89ca091854f4" dependencies = [ "ahash", "portable-atomic", @@ -4583,13 +4611,13 @@ dependencies = [ [[package]] name = "metrics-exporter-prometheus" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a4c4718a371ddfb7806378f23617876eea8b82e5ff1324516bcd283249d9ea" +checksum = "9bf4e7146e30ad172c42c39b3246864bd2d3c6396780711a1baf749cfe423e21" dependencies = [ "base64 0.21.7", "hyper 0.14.28", - "indexmap 1.9.3", + "indexmap 2.2.5", "ipnet", "metrics", "metrics-util", @@ -4600,13 +4628,13 @@ dependencies = [ [[package]] name = "metrics-util" -version = "0.16.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2670b8badcc285d486261e2e9f1615b506baff91427b61bd336a472b65bbf5ed" +checksum = "ece71ab046dcf45604e573329966ec1db5ff4b81cfa170a924ff4c959ab5451a" dependencies = [ "crossbeam-epoch", "crossbeam-utils", - "hashbrown 0.13.1", + "hashbrown 0.14.3", "metrics", "num_cpus", "quanta", @@ -4681,7 +4709,7 @@ dependencies = [ "bytes", "encoding_rs", "futures-util", - "http 0.2.11", + "http 0.2.12", "httparse", "log", "memchr", @@ -4924,19 +4952,18 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", "libm", @@ -4948,7 +4975,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.5", + "hermit-abi 0.3.9", "libc", ] @@ -4970,7 +4997,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5008,9 +5035,9 @@ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "open-fastrlp" @@ -5039,9 +5066,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.63" +version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ "bitflags 2.4.2", "cfg-if", @@ -5060,7 +5087,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5071,18 +5098,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.2.2+3.2.1" +version = "300.2.3+3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bbfad0063610ac26ee79f7484739e2b07555a75c42453b89263830b5c8103bc" +checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.99" +version = "0.9.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" dependencies = [ "cc", "libc", @@ -5114,7 +5141,7 @@ checksum = "1a016b8d9495c639af2145ac22387dcb88e44118e45320d9238fbf4e7889abcb" dependencies = [ "async-trait", "futures-core", - "http 0.2.11", + "http 0.2.12", "opentelemetry", "opentelemetry-proto", "opentelemetry-semantic-conventions", @@ -5300,7 +5327,7 @@ checksum = "4ccca0f6c17acc81df8e242ed473ec144cbf5c98037e69aa6d144780aad103c8" dependencies = [ "inlinable_string", "pear_codegen", - "yansi 1.0.0-rc.1", + "yansi 1.0.0", ] [[package]] @@ -5312,7 +5339,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5375,9 +5402,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" +checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8" dependencies = [ "memchr", "thiserror", @@ -5386,9 +5413,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" +checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026" dependencies = [ "pest", "pest_generator", @@ -5396,22 +5423,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" +checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] name = "pest_meta" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" +checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293" dependencies = [ "once_cell", "pest", @@ -5425,7 +5452,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.2.2", + "indexmap 2.2.5", ] [[package]] @@ -5468,7 +5495,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5491,22 +5518,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5544,9 +5571,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "platforms" @@ -5600,9 +5627,9 @@ dependencies = [ [[package]] name = "polling" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14" +checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9" dependencies = [ "cfg-if", "concurrent-queue", @@ -5625,9 +5652,9 @@ dependencies = [ [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", @@ -5710,7 +5737,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ "proc-macro2", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5809,9 +5836,9 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", "version_check", - "yansi 1.0.0-rc.1", + "yansi 1.0.0", ] [[package]] @@ -5857,7 +5884,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5903,7 +5930,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.48", + "syn 2.0.52", "tempfile", "which", ] @@ -5918,7 +5945,7 @@ dependencies = [ "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -6035,7 +6062,7 @@ checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" dependencies = [ "bytes", "libc", - "socket2 0.5.5", + "socket2 0.5.6", "tracing", "windows-sys 0.48.0", ] @@ -6115,9 +6142,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -6173,7 +6200,7 @@ checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "regex-syntax 0.8.2", ] @@ -6188,9 +6215,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -6203,12 +6230,6 @@ version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - [[package]] name = "regex-syntax" version = "0.8.2" @@ -6227,7 +6248,7 @@ dependencies = [ "futures-core", "futures-util", "h2 0.3.24", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "hyper 0.14.28", "hyper-rustls", @@ -6296,16 +6317,17 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin 0.9.8", "untrusted 0.9.0", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -6461,7 +6483,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring 0.17.7", + "ring 0.17.8", "rustls-webpki 0.101.7", "sct", ] @@ -6473,7 +6495,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" dependencies = [ "log", - "ring 0.17.7", + "ring 0.17.8", "rustls-pki-types", "rustls-webpki 0.102.2", "subtle", @@ -6524,7 +6546,7 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -6534,7 +6556,7 @@ version = "0.102.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "rustls-pki-types", "untrusted 0.9.0", ] @@ -6558,9 +6580,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "salsa20" @@ -6637,7 +6659,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -6731,9 +6753,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" dependencies = [ "serde", ] @@ -6752,29 +6774,29 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -6836,11 +6858,11 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.31" +version = "0.9.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adf8a49373e98a4c5f0ceb5d05aa7c648d75f63774981ed95b7c7443bbd50c6e" +checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "itoa", "ryu", "serde", @@ -7025,7 +7047,7 @@ dependencies = [ "chacha20poly1305", "curve25519-dalek", "rand_core", - "ring 0.17.7", + "ring 0.17.8", "rustc_version", "sha2 0.10.8", "subtle", @@ -7043,12 +7065,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -7112,13 +7134,28 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +[[package]] +name = "strsim" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" + [[package]] name = "strum" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" dependencies = [ - "strum_macros", + "strum_macros 0.25.3", +] + +[[package]] +name = "strum" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f" +dependencies = [ + "strum_macros 0.26.1", ] [[package]] @@ -7131,7 +7168,20 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.48", + "syn 2.0.52", +] + +[[package]] +name = "strum_macros" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.52", ] [[package]] @@ -7173,9 +7223,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" dependencies = [ "proc-macro2", "quote", @@ -7288,9 +7338,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand 2.0.1", @@ -7326,24 +7376,24 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "test-log" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6159ab4116165c99fc88cce31f99fa2c9dbe08d3691cb38da02fc3b45f357d2b" +checksum = "7b319995299c65d522680decf80f2c108d85b861d81dfe340a10d16cee29d9e6" dependencies = [ - "env_logger 0.10.2", + "env_logger 0.11.3", "test-log-macros", "tracing-subscriber", ] [[package]] name = "test-log-macros" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba277e77219e9eea169e8508942db1bf5d8a41ff2db9b20aab5a5aadc9fa25d" +checksum = "c8f546451eaa38373f549093fe9fd05e7d2bade739e2ddf834b9968621d60107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -7357,35 +7407,35 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -7479,7 +7529,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.5", + "socket2 0.5.6", "tokio-macros", "windows-sys 0.48.0", ] @@ -7502,7 +7552,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -7608,7 +7658,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.4", + "toml_edit 0.22.6", ] [[package]] @@ -7626,11 +7676,11 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] @@ -7639,9 +7689,9 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] @@ -7650,22 +7700,22 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.4" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951" +checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.5", ] [[package]] @@ -7680,7 +7730,7 @@ dependencies = [ "base64 0.21.7", "bytes", "h2 0.3.24", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "hyper 0.14.28", "hyper-timeout", @@ -7709,7 +7759,7 @@ dependencies = [ "proc-macro2", "prost-build", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -7745,7 +7795,7 @@ dependencies = [ "assert_cmd", "async-stream", "async-trait", - "clap 4.4.18", + "clap 4.5.2", "dirs", "env_logger 0.10.2", "flate2", @@ -7775,12 +7825,12 @@ dependencies = [ "tokio-util", "toml 0.7.8", "tonic", + "topos-certificate-producer", "topos-certificate-spammer", "topos-config", "topos-core", "topos-node", "topos-p2p", - "topos-sequencer", "topos-tce", "topos-tce-api", "topos-tce-broadcast", @@ -7799,14 +7849,81 @@ dependencies = [ "uuid 1.7.0", ] +[[package]] +name = "topos-certificate-producer" +version = "0.1.0" +dependencies = [ + "hex", + "opentelemetry", + "serde", + "tokio", + "tokio-util", + "topos-certificate-producer-subnet-runtime", + "topos-core", + "topos-crypto", + "topos-tce-proxy", + "topos-wallet", + "tracing", + "tracing-opentelemetry", + "tracing-subscriber", +] + +[[package]] +name = "topos-certificate-producer-subnet-client" +version = "0.1.0" +dependencies = [ + "backoff", + "ethers", + "ethers-providers", + "hex", + "rustc-hex", + "serde", + "serde_json", + "thiserror", + "tiny-keccak 1.5.0", + "tokio", + "topos-core", + "tracing", +] + +[[package]] +name = "topos-certificate-producer-subnet-runtime" +version = "0.1.0" +dependencies = [ + "byteorder", + "env_logger 0.10.2", + "ethers", + "fs_extra", + "hex", + "opentelemetry", + "rand", + "rand_core", + "rstest", + "secp256k1", + "serde", + "serde_json", + "serial_test", + "test-log", + "thiserror", + "tiny-keccak 1.5.0", + "tokio", + "topos-certificate-producer-subnet-client", + "topos-core", + "topos-crypto", + "topos-test-sdk", + "tracing", + "tracing-opentelemetry", + "tracing-subscriber", +] + [[package]] name = "topos-certificate-spammer" version = "0.1.0" dependencies = [ - "clap 4.4.18", + "clap 4.5.2", "futures", "hex", - "http 0.2.11", + "http 0.2.12", "lazy_static", "opentelemetry", "rand", @@ -7845,7 +7962,7 @@ dependencies = [ "assert_cmd", "async-stream", "async-trait", - "clap 4.4.18", + "clap 4.5.2", "dirs", "env_logger 0.10.2", "figment", @@ -7954,7 +8071,7 @@ dependencies = [ "assert_cmd", "async-stream", "async-trait", - "clap 4.4.18", + "clap 4.5.2", "dirs", "env_logger 0.10.2", "flate2", @@ -7984,11 +8101,11 @@ dependencies = [ "tokio-util", "toml 0.7.8", "tonic", + "topos-certificate-producer", "topos-certificate-spammer", "topos-config", "topos-core", "topos-p2p", - "topos-sequencer", "topos-tce", "topos-tce-api", "topos-tce-broadcast", @@ -8017,7 +8134,7 @@ dependencies = [ "env_logger 0.10.2", "futures", "hex", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "http-body-util", "hyper 0.14.28", @@ -8048,73 +8165,6 @@ dependencies = [ "void", ] -[[package]] -name = "topos-sequencer" -version = "0.1.0" -dependencies = [ - "hex", - "opentelemetry", - "serde", - "tokio", - "tokio-util", - "topos-core", - "topos-crypto", - "topos-sequencer-subnet-runtime", - "topos-tce-proxy", - "topos-wallet", - "tracing", - "tracing-opentelemetry", - "tracing-subscriber", -] - -[[package]] -name = "topos-sequencer-subnet-client" -version = "0.1.0" -dependencies = [ - "backoff", - "ethers", - "ethers-providers", - "hex", - "rustc-hex", - "serde", - "serde_json", - "thiserror", - "tiny-keccak 1.5.0", - "tokio", - "topos-core", - "tracing", -] - -[[package]] -name = "topos-sequencer-subnet-runtime" -version = "0.1.0" -dependencies = [ - "byteorder", - "env_logger 0.10.2", - "ethers", - "fs_extra", - "hex", - "opentelemetry", - "rand", - "rand_core", - "rstest", - "secp256k1", - "serde", - "serde_json", - "serial_test", - "test-log", - "thiserror", - "tiny-keccak 1.5.0", - "tokio", - "topos-core", - "topos-crypto", - "topos-sequencer-subnet-client", - "topos-test-sdk", - "tracing", - "tracing-opentelemetry", - "tracing-subscriber", -] - [[package]] name = "topos-tce" version = "0.1.0" @@ -8125,7 +8175,7 @@ dependencies = [ "axum-prometheus", "bincode", "bytes", - "clap 4.4.18", + "clap 4.5.2", "cucumber", "env_logger 0.10.2", "futures", @@ -8180,7 +8230,7 @@ dependencies = [ "env_logger 0.10.2", "futures", "hex", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "hyper 0.14.28", "pin-project", @@ -8440,7 +8490,7 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "http-range-header", "pin-project-lite", @@ -8450,13 +8500,13 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da193277a4e2c33e59e09b5861580c33dd0a637c3883d0fa74ba40c0374af2e" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ "bitflags 2.4.2", "bytes", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "http-body-util", "pin-project-lite", @@ -8496,7 +8546,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -8604,7 +8654,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 0.2.11", + "http 0.2.12", "httparse", "log", "rand", @@ -8679,9 +8729,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -8844,9 +8894,9 @@ checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -8869,9 +8919,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -8879,24 +8929,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -8906,9 +8956,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8916,28 +8966,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -9033,7 +9083,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -9051,7 +9101,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -9071,17 +9121,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -9092,9 +9142,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -9104,9 +9154,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -9116,9 +9166,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -9128,9 +9178,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -9140,9 +9190,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -9152,9 +9202,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -9164,15 +9214,24 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winnow" -version = "0.5.39" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" dependencies = [ "memchr", ] @@ -9318,9 +9377,9 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "yansi" -version = "1.0.0-rc.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377" +checksum = "6c2861d76f58ec8fc95708b9b1e417f7b12fd72ad33c01fa6886707092dea0d3" [[package]] name = "yasna" @@ -9348,7 +9407,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -9368,7 +9427,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] diff --git a/LICENSE b/LICENSE index 396d39e0c..f73a11e1c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -The Transmission Control Engine (TCE) and Sequencer are licensed under BSL-1.1. +The Transmission Control Engine (TCE) and Certificate Producer are licensed under BSL-1.1. ----------------------------------------------------------------------------- @@ -12,7 +12,7 @@ Parameters Licensor: zk Foundation Licensed Work: Code contained within the "topos" repository - Transmission Control Engine (TCE) and Sequencer + Transmission Control Engine (TCE) and Certificate Producer The Licensed Work is (c) zk Foundation Additional Use Grant: @@ -114,4 +114,3 @@ Notice The Business Source License (this document, or the "License") is not an Open Source license. However, the Licensed Work will eventually be made available under an Open Source License, as stated in this License. - diff --git a/crates/topos-sequencer-subnet-client/Cargo.toml b/crates/topos-certificate-producer-subnet-client/Cargo.toml similarity index 91% rename from crates/topos-sequencer-subnet-client/Cargo.toml rename to crates/topos-certificate-producer-subnet-client/Cargo.toml index 38adf8233..b227a10c5 100644 --- a/crates/topos-sequencer-subnet-client/Cargo.toml +++ b/crates/topos-certificate-producer-subnet-client/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "topos-sequencer-subnet-client" +name = "topos-certificate-producer-subnet-client" version = "0.1.0" edition = "2021" diff --git a/crates/topos-sequencer-subnet-client/src/lib.rs b/crates/topos-certificate-producer-subnet-client/src/lib.rs similarity index 100% rename from crates/topos-sequencer-subnet-client/src/lib.rs rename to crates/topos-certificate-producer-subnet-client/src/lib.rs diff --git a/crates/topos-sequencer-subnet-client/src/subnet_contract.rs b/crates/topos-certificate-producer-subnet-client/src/subnet_contract.rs similarity index 100% rename from crates/topos-sequencer-subnet-client/src/subnet_contract.rs rename to crates/topos-certificate-producer-subnet-client/src/subnet_contract.rs diff --git a/crates/topos-sequencer-subnet-runtime/Cargo.toml b/crates/topos-certificate-producer-subnet-runtime/Cargo.toml similarity index 84% rename from crates/topos-sequencer-subnet-runtime/Cargo.toml rename to crates/topos-certificate-producer-subnet-runtime/Cargo.toml index 6e503b549..96edd2261 100644 --- a/crates/topos-sequencer-subnet-runtime/Cargo.toml +++ b/crates/topos-certificate-producer-subnet-runtime/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "topos-sequencer-subnet-runtime" +name = "topos-certificate-producer-subnet-runtime" version = "0.1.0" edition = "2021" @@ -29,7 +29,7 @@ tracing-opentelemetry.workspace = true opentelemetry.workspace = true topos-core = { workspace = true, features = ["uci"] } -topos-sequencer-subnet-client = { package = "topos-sequencer-subnet-client", path = "../topos-sequencer-subnet-client" } +topos-certificate-producer-subnet-client = { package = "topos-certificate-producer-subnet-client", path = "../topos-certificate-producer-subnet-client" } topos-crypto = {package = "topos-crypto", path = "../topos-crypto"} [dev-dependencies] diff --git a/crates/topos-sequencer-subnet-runtime/src/certification.rs b/crates/topos-certificate-producer-subnet-runtime/src/certification.rs similarity index 98% rename from crates/topos-sequencer-subnet-runtime/src/certification.rs rename to crates/topos-certificate-producer-subnet-runtime/src/certification.rs index 61e7f25de..805921553 100644 --- a/crates/topos-sequencer-subnet-runtime/src/certification.rs +++ b/crates/topos-certificate-producer-subnet-runtime/src/certification.rs @@ -3,8 +3,8 @@ use std::collections::{HashSet, LinkedList}; use std::fmt::{Debug, Formatter}; use std::sync::Arc; use tokio::sync::Mutex; +use topos_certificate_producer_subnet_client::{BlockInfo, SubnetEvent}; use topos_core::uci::{Certificate, CertificateId, SubnetId}; -use topos_sequencer_subnet_client::{BlockInfo, SubnetEvent}; use tracing::debug; pub struct Certification { diff --git a/crates/topos-sequencer-subnet-runtime/src/lib.rs b/crates/topos-certificate-producer-subnet-runtime/src/lib.rs similarity index 99% rename from crates/topos-sequencer-subnet-runtime/src/lib.rs rename to crates/topos-certificate-producer-subnet-runtime/src/lib.rs index 9a8c44d4f..9e038b2ad 100644 --- a/crates/topos-sequencer-subnet-runtime/src/lib.rs +++ b/crates/topos-certificate-producer-subnet-runtime/src/lib.rs @@ -41,7 +41,7 @@ pub enum Error { #[error("subnet client error: {source}")] SubnetError { #[from] - source: topos_sequencer_subnet_client::Error, + source: topos_certificate_producer_subnet_client::Error, }, #[error("Unable to retrieve key error: {source}")] diff --git a/crates/topos-sequencer-subnet-runtime/src/proxy.rs b/crates/topos-certificate-producer-subnet-runtime/src/proxy.rs similarity index 91% rename from crates/topos-sequencer-subnet-runtime/src/proxy.rs rename to crates/topos-certificate-producer-subnet-runtime/src/proxy.rs index 5039698bb..0e2b15e94 100644 --- a/crates/topos-sequencer-subnet-runtime/src/proxy.rs +++ b/crates/topos-certificate-producer-subnet-runtime/src/proxy.rs @@ -9,9 +9,9 @@ use std::sync::Arc; use tokio::sync::Mutex; use tokio::sync::{mpsc, oneshot}; use tokio::time::Duration; +use topos_certificate_producer_subnet_client::{BlockInfo, SubnetClient, SubnetClientListener}; use topos_core::api::grpc::checkpoints::TargetStreamPosition; use topos_core::uci::{Certificate, CertificateId, SubnetId}; -use topos_sequencer_subnet_client::{BlockInfo, SubnetClient, SubnetClientListener}; use tracing::{debug, error, field, info, info_span, instrument, warn, Instrument, Span}; use tracing_opentelemetry::OpenTelemetrySpanExt; @@ -102,7 +102,7 @@ impl SubnetRuntimeProxy { let runtime_proxy = runtime_proxy.clone(); let subnet_contract_address = subnet_contract_address.clone(); tokio::spawn(async move { - // If the `start_block` sequencer parameter is provided, first block retrieved from blockchain (for genesis certificate) + // If the `start_block` CP parameter is provided, first block retrieved from blockchain (for genesis certificate) // will be `start_block`. `default_block_sync_start` is hence `start_block`-1 // as first block retrieved from subnet node is `latest_acquired_subnet_block_number` + 1 let default_block_sync_start: i128 = config @@ -128,7 +128,7 @@ impl SubnetRuntimeProxy { certificate_and_position ); // If tce source head position is provided, continue synchronizing from it - // If the `start_block` sequencer parameter is provided and tce source head is missing, + // If the `start_block` CP parameter is provided and tce source head is missing, // we should start synchronizing from that block instead of genesis // If neither tce source head position nor start_block parameters are provided, // sync should start form -1, so that first fetched is subnet genesis block @@ -155,7 +155,7 @@ impl SubnetRuntimeProxy { // Establish the connection with the Subnet let subnet_listener: Option = tokio::select! { // Create subnet client - Ok(client) = topos_sequencer_subnet_client::connect_to_subnet_listener_with_retry( + Ok(client) = topos_certificate_producer_subnet_client::connect_to_subnet_listener_with_retry( ws_runtime_endpoint.as_str(), subnet_contract_address.as_str(), ) => { @@ -290,7 +290,7 @@ impl SubnetRuntimeProxy { // Establish the connection with the Subnet let mut subnet_client: Option = tokio::select! { // Create subnet client - Ok(client) = topos_sequencer_subnet_client::connect_to_subnet_with_retry( + Ok(client) = topos_certificate_producer_subnet_client::connect_to_subnet_with_retry( http_runtime_endpoint.as_ref(), Some(signing_key.clone()), subnet_contract_address.as_str(), @@ -361,10 +361,14 @@ impl SubnetRuntimeProxy { info!("Block {} processed", next_block); Ok(()) } - Err(topos_sequencer_subnet_client::Error::BlockNotAvailable(block_number)) => { + Err(topos_certificate_producer_subnet_client::Error::BlockNotAvailable( + block_number, + )) => { warn!("New block {block_number} not yet available, trying again soon"); Err(Error::SubnetError { - source: topos_sequencer_subnet_client::Error::BlockNotAvailable(block_number), + source: topos_certificate_producer_subnet_client::Error::BlockNotAvailable( + block_number, + ), }) } Err(e) => { @@ -568,25 +572,26 @@ impl SubnetRuntimeProxy { info!("Connecting to subnet to query for checkpoints..."); let http_runtime_endpoint = self.config.http_endpoint.as_ref(); // Create subnet client - let subnet_client = match topos_sequencer_subnet_client::connect_to_subnet_with_retry( - http_runtime_endpoint, - None, // We do not need actual key here as we are just reading state - self.config.subnet_contract_address.as_str(), - ) - .await - { - Ok(subnet_client) => { - info!( - "Connected to subnet node to acquire checkpoints {}", - http_runtime_endpoint - ); - subnet_client - } - Err(e) => { - error!("Unable to connect to the subnet node to get checkpoints: {e}"); - return Err(Error::SubnetError { source: e }); - } - }; + let subnet_client = + match topos_certificate_producer_subnet_client::connect_to_subnet_with_retry( + http_runtime_endpoint, + None, // We do not need actual key here as we are just reading state + self.config.subnet_contract_address.as_str(), + ) + .await + { + Ok(subnet_client) => { + info!( + "Connected to subnet node to acquire checkpoints {}", + http_runtime_endpoint + ); + subnet_client + } + Err(e) => { + error!("Unable to connect to the subnet node to get checkpoints: {e}"); + return Err(Error::SubnetError { source: e }); + } + }; match subnet_client.get_checkpoints(&self.config.subnet_id).await { Ok(checkpoints) => { @@ -611,25 +616,26 @@ impl SubnetRuntimeProxy { ) -> Result { info!("Connecting to subnet to query for subnet id..."); // Create subnet client - let subnet_client = match topos_sequencer_subnet_client::connect_to_subnet_with_retry( - http_endpoint, - None, // We do not need actual key here as we are just reading state - contract_address, - ) - .await - { - Ok(subnet_client) => { - info!( - "Connected to subnet node to acquire subnet id {}", - http_endpoint - ); - subnet_client - } - Err(e) => { - error!("Unable to connect to the subnet node to get subnet id: {e}"); - return Err(Error::SubnetError { source: e }); - } - }; + let subnet_client = + match topos_certificate_producer_subnet_client::connect_to_subnet_with_retry( + http_endpoint, + None, // We do not need actual key here as we are just reading state + contract_address, + ) + .await + { + Ok(subnet_client) => { + info!( + "Connected to subnet node to acquire subnet id {}", + http_endpoint + ); + subnet_client + } + Err(e) => { + error!("Unable to connect to the subnet node to get subnet id: {e}"); + return Err(Error::SubnetError { source: e }); + } + }; match subnet_client.get_subnet_id().await { Ok(subnet_id) => { diff --git a/crates/topos-sequencer-subnet-runtime/tests/common/abi.rs b/crates/topos-certificate-producer-subnet-runtime/tests/common/abi.rs similarity index 100% rename from crates/topos-sequencer-subnet-runtime/tests/common/abi.rs rename to crates/topos-certificate-producer-subnet-runtime/tests/common/abi.rs diff --git a/crates/topos-sequencer-subnet-runtime/tests/common/mod.rs b/crates/topos-certificate-producer-subnet-runtime/tests/common/mod.rs similarity index 100% rename from crates/topos-sequencer-subnet-runtime/tests/common/mod.rs rename to crates/topos-certificate-producer-subnet-runtime/tests/common/mod.rs diff --git a/crates/topos-sequencer-subnet-runtime/tests/common/subnet_test_data.rs b/crates/topos-certificate-producer-subnet-runtime/tests/common/subnet_test_data.rs similarity index 100% rename from crates/topos-sequencer-subnet-runtime/tests/common/subnet_test_data.rs rename to crates/topos-certificate-producer-subnet-runtime/tests/common/subnet_test_data.rs diff --git a/crates/topos-sequencer-subnet-runtime/tests/subnet_contract.rs b/crates/topos-certificate-producer-subnet-runtime/tests/subnet_contract.rs similarity index 98% rename from crates/topos-sequencer-subnet-runtime/tests/subnet_contract.rs rename to crates/topos-certificate-producer-subnet-runtime/tests/subnet_contract.rs index da2256324..ec54d9e12 100644 --- a/crates/topos-sequencer-subnet-runtime/tests/subnet_contract.rs +++ b/crates/topos-certificate-producer-subnet-runtime/tests/subnet_contract.rs @@ -6,24 +6,29 @@ use ethers::{ middleware::SignerMiddleware, providers::{Http, Middleware, Provider}, signers::{LocalWallet, Signer}, - types::{Block, H256}, + types::{Block, H160, H256}, }; use rstest::*; use serial_test::serial; use std::collections::HashSet; use std::process::{Child, Command}; +use std::str::FromStr; use std::sync::Arc; use test_log::test; use tokio::sync::Mutex; +use topos_certificate_producer_subnet_runtime::proxy::{ + SubnetRuntimeProxyCommand, SubnetRuntimeProxyEvent, +}; use topos_core::uci::{Certificate, CertificateId, SubnetId, SUBNET_ID_LENGTH}; -use topos_sequencer_subnet_runtime::proxy::{SubnetRuntimeProxyCommand, SubnetRuntimeProxyEvent}; use tracing::{error, info, warn, Span}; use tracing_opentelemetry::OpenTelemetrySpanExt; mod common; use crate::common::subnet_test_data::generate_test_private_key; +use topos_certificate_producer_subnet_runtime::{ + SubnetRuntimeProxyConfig, SubnetRuntimeProxyWorker, +}; use topos_core::api::grpc::checkpoints::TargetStreamPosition; -use topos_sequencer_subnet_runtime::{SubnetRuntimeProxyConfig, SubnetRuntimeProxyWorker}; use topos_test_sdk::constants::*; @@ -498,7 +503,7 @@ async fn test_subnet_node_get_block_info( ) -> Result<(), Box> { //Context with subnet let context = context_running_subnet_node.await; - match topos_sequencer_subnet_client::SubnetClientListener::new( + match topos_certificate_producer_subnet_client::SubnetClientListener::new( &context.jsonrpc_ws(), &("0x".to_string() + &hex::encode(context.i_topos_core.address())), ) @@ -546,7 +551,8 @@ async fn test_create_runtime() -> Result<(), Box> { test_private_key, ) .await?; - let runtime_proxy = topos_sequencer_subnet_runtime::testing::get_runtime(&runtime_proxy_worker); + let runtime_proxy = + topos_certificate_producer_subnet_runtime::testing::get_runtime(&runtime_proxy_worker); let runtime_proxy = runtime_proxy.lock().await; info!("New runtime proxy created:{:?}", &runtime_proxy); Ok(()) @@ -688,7 +694,7 @@ async fn test_subnet_certificate_get_checkpoints_call( let subnet_jsonrpc_http = context.jsonrpc(); // Get checkpoints when contract is empty - let subnet_client = topos_sequencer_subnet_client::SubnetClient::new( + let subnet_client = topos_certificate_producer_subnet_client::SubnetClient::new( &subnet_jsonrpc_http, Some(hex::decode(TEST_SECRET_ETHEREUM_KEY).unwrap()), &subnet_smart_contract_address, @@ -806,7 +812,7 @@ async fn test_subnet_id_call( let subnet_jsonrpc_http = context.jsonrpc(); // Create subnet client - let subnet_client = topos_sequencer_subnet_client::SubnetClient::new( + let subnet_client = topos_certificate_producer_subnet_client::SubnetClient::new( &subnet_jsonrpc_http, Some(hex::decode(TEST_SECRET_ETHEREUM_KEY).unwrap()), &subnet_smart_contract_address, @@ -903,7 +909,7 @@ async fn test_subnet_send_token_processing( .i_erc20_messaging .send_token( TARGET_SUBNET_ID_2.into(), - TOKEN_SYMBOL.into(), + H160::from_str(TOKEN_SYMBOL).unwrap(), "00000000000000000000000000000000000000AA".parse()?, U256::from(2), ) @@ -1409,7 +1415,7 @@ async fn test_subnet_multiple_send_token_in_a_block( if let Err(e) = i_erc20_messaging .send_token( target_subnet.into(), - TOKEN_SYMBOL.into(), + H160::from_str(TOKEN_SYMBOL).unwrap(), "00000000000000000000000000000000000000AA".parse().unwrap(), U256::from(i), ) diff --git a/crates/topos-sequencer/Cargo.toml b/crates/topos-certificate-producer/Cargo.toml similarity index 77% rename from crates/topos-sequencer/Cargo.toml rename to crates/topos-certificate-producer/Cargo.toml index 61ea66c50..f0b0e3e73 100644 --- a/crates/topos-sequencer/Cargo.toml +++ b/crates/topos-certificate-producer/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "topos-sequencer" +name = "topos-certificate-producer" description = "Implementation of the Topos protocol" version = "0.1.0" edition = "2021" @@ -20,6 +20,5 @@ opentelemetry.workspace = true topos-crypto.workspace = true topos-wallet = { path = "../topos-wallet" } topos-core = { workspace = true, features = ["uci"] } -topos-sequencer-subnet-runtime = { package = "topos-sequencer-subnet-runtime", path = "../topos-sequencer-subnet-runtime" } +topos-certificate-producer-subnet-runtime = { package = "topos-certificate-producer-subnet-runtime", path = "../topos-certificate-producer-subnet-runtime" } topos-tce-proxy = { package = "topos-tce-proxy", path = "../topos-tce-proxy" } - diff --git a/crates/topos-sequencer/src/app_context.rs b/crates/topos-certificate-producer/src/app_context.rs similarity index 82% rename from crates/topos-sequencer/src/app_context.rs rename to crates/topos-certificate-producer/src/app_context.rs index 55e540bb6..096f50272 100644 --- a/crates/topos-sequencer/src/app_context.rs +++ b/crates/topos-certificate-producer/src/app_context.rs @@ -1,17 +1,19 @@ //! //! Application logic glue //! -use crate::SequencerConfiguration; +use crate::CertificateProducerConfiguration; use opentelemetry::trace::FutureExt; use tokio::sync::mpsc; use tokio_util::sync::CancellationToken; -use topos_sequencer_subnet_runtime::proxy::{SubnetRuntimeProxyCommand, SubnetRuntimeProxyEvent}; -use topos_sequencer_subnet_runtime::SubnetRuntimeProxyWorker; +use topos_certificate_producer_subnet_runtime::proxy::{ + SubnetRuntimeProxyCommand, SubnetRuntimeProxyEvent, +}; +use topos_certificate_producer_subnet_runtime::SubnetRuntimeProxyWorker; use topos_tce_proxy::{worker::TceProxyWorker, TceProxyCommand, TceProxyEvent}; use tracing::{debug, error, info, info_span, warn, Instrument, Span}; use tracing_opentelemetry::OpenTelemetrySpanExt; -/// Top-level transducer sequencer app context & driver (alike) +/// Top-level transducer certificate producer app context & driver (alike) /// /// Implements <...Host> traits for network and Api, listens for protocol events in events /// (store is not active component). @@ -20,7 +22,7 @@ use tracing_opentelemetry::OpenTelemetrySpanExt; /// config+data as input and runs app returning data as output /// pub struct AppContext { - pub config: SequencerConfiguration, + pub config: CertificateProducerConfiguration, pub subnet_runtime_proxy_worker: SubnetRuntimeProxyWorker, pub tce_proxy_worker: TceProxyWorker, } @@ -33,7 +35,7 @@ pub enum AppContextStatus { impl AppContext { /// Factory pub fn new( - config: SequencerConfiguration, + config: CertificateProducerConfiguration, runtime_proxy_worker: SubnetRuntimeProxyWorker, tce_proxy_worker: TceProxyWorker, ) -> Self { @@ -63,15 +65,14 @@ impl AppContext { debug!("tce_proxy_worker.next_event(): {:?}", &tce_evt); match tce_evt { TceProxyEvent::TceServiceFailure | TceProxyEvent::WatchCertificatesChannelFailed => { - // Unrecoverable failure in interaction with the TCE. Sequencer needs to be restarted + // Unrecoverable failure in interaction with the TCE. Certificate Producer needs to be restarted error!( - "Unrecoverable failure in sequencer <-> tce interaction. Shutting down sequencer \ - sequencer..." + "Unrecoverable failure in Certificate Producer <-> TCE interaction. Shutting down Certificate Producer." ); if let Err(e) = self.shutdown().await { warn!("Failed to shutdown: {e:?}"); } - info!("Shutdown finished, restarting sequencer..."); + info!("Shutdown finished, restarting Certificate Producer..."); return AppContextStatus::Restarting; }, _ => self.on_tce_proxy_event(tce_evt).await, @@ -80,11 +81,11 @@ impl AppContext { // Shutdown signal _ = shutdown.0.cancelled() => { - info!("Shutting down Sequencer app context..."); + info!("Shutting down Certificate Producer app context..."); if let Err(e) = self.shutdown().await { - error!("Failed to shutdown the Sequencer app context: {e}"); + error!("Error shutting down Certificate Producer app context: {e}"); } - // Drop the sender to notify the Sequencer termination + // Drop the sender to notify the Certificate Producer termination drop(shutdown.1); return AppContextStatus::Finished; } @@ -100,7 +101,7 @@ impl AppContext { block_number: _, ctx, } => { - let span = info_span!("Sequencer app context"); + let span = info_span!("Certificate Producer app context"); span.set_parent(ctx); if let Err(e) = self .tce_proxy_worker @@ -123,7 +124,7 @@ impl AppContext { async fn on_tce_proxy_event(&mut self, evt: TceProxyEvent) { if let TceProxyEvent::NewDeliveredCerts { certificates, ctx } = evt { - let span = info_span!("Sequencer app context"); + let span = info_span!("Certificate Producer app context"); span.set_parent(ctx); async { // New certificates acquired from TCE diff --git a/crates/topos-sequencer/src/lib.rs b/crates/topos-certificate-producer/src/lib.rs similarity index 82% rename from crates/topos-sequencer/src/lib.rs rename to crates/topos-certificate-producer/src/lib.rs index 08da48f62..34e211036 100644 --- a/crates/topos-sequencer/src/lib.rs +++ b/crates/topos-certificate-producer/src/lib.rs @@ -9,8 +9,10 @@ use tokio::{ }, }; use tokio_util::sync::CancellationToken; +use topos_certificate_producer_subnet_runtime::{ + SubnetRuntimeProxyConfig, SubnetRuntimeProxyWorker, +}; use topos_core::uci::{CertificateId, SubnetId}; -use topos_sequencer_subnet_runtime::{SubnetRuntimeProxyConfig, SubnetRuntimeProxyWorker}; use topos_tce_proxy::{worker::TceProxyWorker, TceProxyConfig}; use topos_wallet::SecretKey; use tracing::{debug, info, warn}; @@ -18,7 +20,7 @@ use tracing::{debug, info, warn}; mod app_context; #[derive(Debug, Clone)] -pub struct SequencerConfiguration { +pub struct CertificateProducerConfiguration { pub subnet_id: Option, pub public_key: Option>, pub subnet_jsonrpc_http: String, @@ -31,12 +33,12 @@ pub struct SequencerConfiguration { } async fn launch_workers( - config: SequencerConfiguration, + config: CertificateProducerConfiguration, ctx_send: Sender, subnet_id: SubnetId, ) -> Result<(), Box> { let (http_endpoint, mut ws_endpoint) = - topos_sequencer_subnet_runtime::derive_endpoints(&config.subnet_jsonrpc_http)?; + topos_certificate_producer_subnet_runtime::derive_endpoints(&config.subnet_jsonrpc_http)?; if let Some(config_ws_endpoint) = config.subnet_jsonrpc_ws.as_ref() { // Use explicitly provided websocket subnet endpoint @@ -72,9 +74,9 @@ async fn launch_workers( } }; - // Launch Tce proxy worker for handling interaction with TCE node - // For initialization it will retry using backoff algorithm, but if it fails we can not proceed and we restart sequencer - // Once it is initialized, TCE proxy will try reconnecting in the loop (with backoff) if TCE becomes unavailable + // Launch Tce proxy worker for handling interaction with the TCE node + // For initialization it will retry using backoff algorithm, but if it fails we can not proceed and we restart the certificate producer + // Once it is initialized, the TCE proxy will try to reconnect in a loop (with backoff) if TCE becomes unavailable let (tce_proxy_worker, source_head_certificate_id) = match TceProxyWorker::new(TceProxyConfig { subnet_id, tce_endpoint: config.tce_grpc_endpoint.clone(), @@ -127,10 +129,10 @@ async fn launch_workers( } pub async fn launch( - config: SequencerConfiguration, + config: CertificateProducerConfiguration, ctx_send: Sender, ) -> Result<(), Box> { - debug!("Starting topos-sequencer application"); + debug!("Starting topos-certificate-producer application"); // If subnetID is specified as command line argument, use it let subnet_id: SubnetId = if let Some(pk) = &config.public_key { @@ -147,15 +149,16 @@ pub async fn launch( // Get subnet id from the subnet node if not provided via the command line argument // It will retry using backoff algorithm, but if it fails (default max backoff elapsed time is 15 min) we can not proceed else { - let http_endpoint = - topos_sequencer_subnet_runtime::derive_endpoints(&config.subnet_jsonrpc_http) - .map_err(|e| { - Box::new(std::io::Error::new( - InvalidInput, - format!("Invalid subnet endpoint: {e}"), - )) - })? - .0; + let http_endpoint = topos_certificate_producer_subnet_runtime::derive_endpoints( + &config.subnet_jsonrpc_http, + ) + .map_err(|e| { + Box::new(std::io::Error::new( + InvalidInput, + format!("Invalid subnet endpoint: {e}"), + )) + })? + .0; match SubnetRuntimeProxyWorker::get_subnet_id( &http_endpoint, config.subnet_contract_address.as_str(), @@ -176,7 +179,7 @@ pub async fn launch( } pub async fn run( - config: SequencerConfiguration, + config: CertificateProducerConfiguration, shutdown: (CancellationToken, mpsc::Sender<()>), ) -> Result> { loop { @@ -202,7 +205,7 @@ pub async fn run( // Shutdown signal _ = shutdown.0.cancelled() => { - info!("Stopping Sequencer launch..."); + info!("Stopping Certificate Producer..."); drop(shutdown.1); launching.abort(); return Ok(ExitStatus::default()); @@ -212,18 +215,22 @@ pub async fn run( if let Some(mut app) = app_context { match app.run(shutdown_appcontext).await { AppContextStatus::Restarting => { - // We finish the loop, restarting sequencer here - warn!("Restarting sequencer..."); + // We finish the loop, restarting the CP here + warn!("Restarting Certificate Producer..."); tokio::time::sleep(tokio::time::Duration::from_secs(10)).await; } AppContextStatus::Finished => { - info!("Sequencer app finished, exiting..."); + info!("Certificate Producer done, exiting..."); return Ok(ExitStatus::default()); } } } else { - warn!("Sequencer startup sequencer failed, restarting sequencer..."); - tokio::time::sleep(tokio::time::Duration::from_secs(10)).await; + let retry = 10; + warn!( + "Certificate Producer startup sequence failed, retrying in {}s...", + retry + ); + tokio::time::sleep(tokio::time::Duration::from_secs(retry)).await; } } } diff --git a/crates/topos-certificate-spammer/src/lib.rs b/crates/topos-certificate-spammer/src/lib.rs index 4e62dbaab..0e55eb79f 100644 --- a/crates/topos-certificate-spammer/src/lib.rs +++ b/crates/topos-certificate-spammer/src/lib.rs @@ -30,9 +30,9 @@ struct FileNodes { nodes: Vec, } -/// Represents connection from one sequencer to a TCE node +/// Represents connection from one Certificate Producer to a TCE node /// Multiple different subnets could be connected to the same TCE node address (represented with TargetNodeConnection with different SubnetId and created client) -/// Multiple topos-sequencers from the same subnet could be connected to the same TCE node address (so they would have same SubnetID, but different client instances) +/// Multiple topos-certificate-producers from the same subnet could be connected to the same TCE node address (so they would have same SubnetID, but different client instances) struct TargetNodeConnection { address: NodeApiAddress, client: Arc>, diff --git a/crates/topos-config/src/base.rs b/crates/topos-config/src/base.rs index ef0938b08..57d49d04e 100644 --- a/crates/topos-config/src/base.rs +++ b/crates/topos-config/src/base.rs @@ -46,8 +46,8 @@ impl BaseConfig { self.subnet == "topos" } - pub fn need_sequencer(&self) -> bool { - matches!(self.role, NodeRole::Sequencer) + pub fn need_certificate_producer(&self) -> bool { + matches!(self.role, NodeRole::CertificateProducer) } pub fn need_edge(&self) -> bool { diff --git a/crates/topos-config/src/sequencer.rs b/crates/topos-config/src/certificate_producer.rs similarity index 85% rename from crates/topos-config/src/sequencer.rs rename to crates/topos-config/src/certificate_producer.rs index 907958c41..9f7eb5435 100644 --- a/crates/topos-config/src/sequencer.rs +++ b/crates/topos-config/src/certificate_producer.rs @@ -9,8 +9,8 @@ use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "kebab-case")] -pub struct SequencerConfig { - /// SubnetId of your Sequencer, hex encoded 32 bytes prefixed with 0x +pub struct CertificateProducerConfig { + /// SubnetId of your Certificate Producer, hex encoded 32 bytes prefixed with 0x pub subnet_id: Option, /// JSON-RPC endpoint of the Edge node, websocket and http support expected @@ -54,17 +54,17 @@ fn default_tce_grpc_endpoint() -> String { "http://[::1]:1340".to_string() } -impl Config for SequencerConfig { +impl Config for CertificateProducerConfig { type Output = Self; fn load_from_file(figment: Figment, home: &Path) -> Figment { let home = home.join("config.toml"); - let sequencer = Figment::new() + let certificate_producer = Figment::new() .merge(Toml::file(home).nested()) - .select("sequencer"); + .select("certificate_producer"); - figment.merge(sequencer) + figment.merge(certificate_producer) } fn load_context(figment: Figment) -> Result { @@ -72,6 +72,6 @@ impl Config for SequencerConfig { } fn profile() -> String { - "sequencer".to_string() + "certificate_producer".to_string() } } diff --git a/crates/topos-config/src/lib.rs b/crates/topos-config/src/lib.rs index 600cce92f..5895dad4a 100644 --- a/crates/topos-config/src/lib.rs +++ b/crates/topos-config/src/lib.rs @@ -1,8 +1,8 @@ pub(crate) mod base; +pub mod certificate_producer; pub mod edge; pub mod genesis; pub mod node; -pub mod sequencer; pub mod tce; use std::path::Path; diff --git a/crates/topos-config/src/node.rs b/crates/topos-config/src/node.rs index 28d049f2c..8106d1e4d 100644 --- a/crates/topos-config/src/node.rs +++ b/crates/topos-config/src/node.rs @@ -11,18 +11,18 @@ use tracing::{debug, error}; use crate::{ base::BaseConfig, + certificate_producer::CertificateProducerConfig, edge::{EdgeBinConfig, EdgeConfig}, load_config, - sequencer::SequencerConfig, tce::TceConfig, Config, }; #[derive(clap::ValueEnum, Clone, Debug, Deserialize, Serialize)] -#[serde(rename_all = "lowercase")] +#[serde(rename_all = "kebab-case")] pub enum NodeRole { Validator, - Sequencer, + CertificateProducer, FullNode, } @@ -30,7 +30,7 @@ pub enum NodeRole { pub struct NodeConfig { pub base: BaseConfig, pub tce: Option, - pub sequencer: Option, + pub certificate_producer: Option, pub edge: Option, #[serde(skip)] @@ -101,9 +101,9 @@ impl NodeConfig { genesis_path, home_path: home_path.to_path_buf(), base: base.clone(), - sequencer: base - .need_sequencer() - .then(|| load_config::(node_folder, None)), + certificate_producer: base + .need_certificate_producer() + .then(|| load_config::(node_folder, None)), tce: base .need_tce() .then(|| load_config::(node_folder, None)), diff --git a/crates/topos-core/proto/topos/tce/v1/api.proto b/crates/topos-core/proto/topos/tce/v1/api.proto index 935b17456..120f011d7 100644 --- a/crates/topos-core/proto/topos/tce/v1/api.proto +++ b/crates/topos-core/proto/topos/tce/v1/api.proto @@ -88,7 +88,7 @@ message WatchCertificatesResponse { repeated topos.shared.v1.SubnetId subnet_ids = 1; } - // Target Certificate pushed from the TCE to the sequencer + // Target Certificate pushed from the TCE to the certificate producer message CertificatePushed { topos.uci.v1.Certificate certificate = 1; repeated topos.shared.v1.Positions.TargetStreamPosition positions = 2; diff --git a/crates/topos-core/src/api/grpc/generated/topos.bin b/crates/topos-core/src/api/grpc/generated/topos.bin index adc02a560..b0022e5d1 100644 Binary files a/crates/topos-core/src/api/grpc/generated/topos.bin and b/crates/topos-core/src/api/grpc/generated/topos.bin differ diff --git a/crates/topos-core/src/api/grpc/generated/topos.tce.v1.rs b/crates/topos-core/src/api/grpc/generated/topos.tce.v1.rs index 62810b084..963115bc8 100644 --- a/crates/topos-core/src/api/grpc/generated/topos.tce.v1.rs +++ b/crates/topos-core/src/api/grpc/generated/topos.tce.v1.rs @@ -564,7 +564,7 @@ pub mod watch_certificates_response { super::super::super::shared::v1::SubnetId, >, } - /// Target Certificate pushed from the TCE to the sequencer + /// Target Certificate pushed from the TCE to the certificate producer #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CertificatePushed { diff --git a/crates/topos-node/Cargo.toml b/crates/topos-node/Cargo.toml index 5962cd6bd..9ad8b507d 100644 --- a/crates/topos-node/Cargo.toml +++ b/crates/topos-node/Cargo.toml @@ -12,7 +12,7 @@ workspace = true topos-config = { path = "../topos-config/" } topos-tce = { path = "../topos-tce/" } topos-p2p = { path = "../topos-p2p" } -topos-sequencer = { path = "../topos-sequencer" } +topos-certificate-producer = { path = "../topos-certificate-producer" } topos-core = { workspace = true, features = ["api"] } topos-certificate-spammer = { path = "../topos-certificate-spammer" } topos-tce-broadcast = { path = "../topos-tce-broadcast", optional = true } diff --git a/crates/topos-node/src/lib.rs b/crates/topos-node/src/lib.rs index cca00c8bf..6205c4e07 100644 --- a/crates/topos-node/src/lib.rs +++ b/crates/topos-node/src/lib.rs @@ -34,9 +34,10 @@ pub enum Error { IO(#[from] std::io::Error), #[error( - "The role in the config file expect to have a sequencer config defined, none was found" + "The role in the config file expects to have a Certificate Producer config defined, none \ + was found" )] - MissingSequencerConfig, + MissingCertificateProducerConfig, #[error("An Edge config was expected to be found in the config file")] MissingEdgeConfig, @@ -178,19 +179,19 @@ fn spawn_processes( )); } - // Sequencer - if matches!(config.base.role, NodeRole::Sequencer) { - let sequencer_config = config - .sequencer + // Certificate Producer + if matches!(config.base.role, NodeRole::CertificateProducer) { + let cert_prod_config = config + .certificate_producer .take() - .ok_or(Error::MissingSequencerConfig)?; + .ok_or(Error::MissingCertificateProducerConfig)?; info!( - "Running sequencer with configuration {:?}", - sequencer_config + "Running Certificate Producer with configuration {:?}", + cert_prod_config ); - processes.push(process::spawn_sequencer_process( - sequencer_config, + processes.push(process::spawn_certificate_producer_process( + cert_prod_config, &keys, (shutdown_token.clone(), shutdown_sender.clone()), )); diff --git a/crates/topos-node/src/process.rs b/crates/topos-node/src/process.rs index 3e8419dae..b26cf82fa 100644 --- a/crates/topos-node/src/process.rs +++ b/crates/topos-node/src/process.rs @@ -4,12 +4,12 @@ use std::process::ExitStatus; use thiserror::Error; use tokio::{spawn, sync::mpsc, task::JoinHandle}; use tokio_util::sync::CancellationToken; +use topos_certificate_producer::CertificateProducerConfiguration; +use topos_config::certificate_producer::CertificateProducerConfig; use topos_config::edge::command::CommandConfig; -use topos_config::sequencer::SequencerConfig; use topos_config::tce::broadcast::ReliableBroadcastParams; use topos_config::tce::{AuthKey, StorageConfiguration, TceConfig}; use topos_p2p::Multiaddr; -use topos_sequencer::SequencerConfiguration; use topos_wallet::SecretManager; use tracing::{debug, error, warn}; @@ -19,18 +19,18 @@ use topos_config::genesis::Genesis; pub enum Errors { #[error("TCE error")] TceFailure, - #[error("Sequencer error")] - SequencerFailure, + #[error("CertificateProducer error")] + CertificateProducerFailure, #[error("Edge error: {0}")] EdgeTerminated(#[from] std::io::Error), } -pub(crate) fn spawn_sequencer_process( - config: SequencerConfig, +pub(crate) fn spawn_certificate_producer_process( + config: CertificateProducerConfig, keys: &SecretManager, shutdown: (CancellationToken, mpsc::Sender<()>), ) -> JoinHandle> { - let config = SequencerConfiguration { + let config = CertificateProducerConfiguration { subnet_id: config.subnet_id, public_key: keys.validator_pubkey(), subnet_jsonrpc_http: config.subnet_jsonrpc_http, @@ -42,12 +42,14 @@ pub(crate) fn spawn_sequencer_process( start_block: config.start_block, }; - debug!("Sequencer args: {config:?}"); + debug!("Certificate Producer args: {config:?}"); spawn(async move { - topos_sequencer::run(config, shutdown).await.map_err(|e| { - error!("Sequencer failure: {e:?}"); - Errors::SequencerFailure - }) + topos_certificate_producer::run(config, shutdown) + .await + .map_err(|e| { + error!("Certificate Producer failure: {e:?}"); + Errors::CertificateProducerFailure + }) }) } diff --git a/crates/topos-tce-api/src/stream/mod.rs b/crates/topos-tce-api/src/stream/mod.rs index 58ab21759..653588602 100644 --- a/crates/topos-tce-api/src/stream/mod.rs +++ b/crates/topos-tce-api/src/stream/mod.rs @@ -165,7 +165,7 @@ impl Stream { } _ => { // We are not handling specific errors for now. - // If the sequencer is closing the connection, we are receiving a + // If the Certificate Producer is closing the connection, we are receiving a // StreamErrorKind::TransportError. error!( "Stream error: {:?}", error); return Err(StreamError::new(self.stream_id, error.kind)); diff --git a/crates/topos-tce-proxy/src/client.rs b/crates/topos-tce-proxy/src/client.rs index a6682abb5..715024d64 100644 --- a/crates/topos-tce-proxy/src/client.rs +++ b/crates/topos-tce-proxy/src/client.rs @@ -348,8 +348,8 @@ impl TceClientBuilder { continue; } Err(e) => { - // Backoff maximum period timeout. We need to restart sequencer. - error!("Failed to submit certificate to the tce network, backoff timeout with error: {e}. Restarting sequencer..."); + // Backoff maximum period timeout. We need to restart the certificate producer. + error!("Failed to submit certificate to the tce network, backoff timeout with error: {e}. Restarting the certificate producer..."); if let Some(tce_proxy_event_sender) = tce_proxy_event_sender.clone() { if let Err(e) = tce_proxy_event_sender.send(TceProxyEvent::TceServiceFailure).await { error!("Unable to send tce communication failure signal: {e}"); @@ -530,7 +530,7 @@ impl TceClientBuilder { }; } None => { - error!("Unexpected termination of the TCE proxy service of the Sequencer"); + error!("Unexpected termination of the TCE proxy service of the Certificate Producer"); break; } } diff --git a/crates/topos-tce-proxy/src/lib.rs b/crates/topos-tce-proxy/src/lib.rs index fcef0a39f..a635838dc 100644 --- a/crates/topos-tce-proxy/src/lib.rs +++ b/crates/topos-tce-proxy/src/lib.rs @@ -77,9 +77,9 @@ pub enum TceProxyEvent { certificates: Vec<(Certificate, u64)>, ctx: Context, }, - /// Failed watching certificates channel. Requires a restart of the sequencer tce proxy to recover. + /// Failed watching certificates channel. Requires a restart of the certificate producer tce proxy to recover. WatchCertificatesChannelFailed, - /// Failure in communication with the TCE grpc service. Sequencer needs to be restarted + /// Failure in communication with the TCE grpc service. Certificate Producer needs to be restarted TceServiceFailure, } @@ -87,7 +87,7 @@ pub enum TceProxyEvent { pub struct TceProxyConfig { /// The [`SubnetId`] this config handles certificate proxying for. pub subnet_id: SubnetId, - /// The GRPC endpoint where the Sequencer is expecting to find a TCE node. + /// The GRPC endpoint where the Certificate Producer is expecting to find a TCE node. pub tce_endpoint: String, /// The positions in the index of the known Certificates. pub positions: Vec, diff --git a/crates/topos-tce-proxy/src/worker.rs b/crates/topos-tce-proxy/src/worker.rs index 0869893af..6cf7037cc 100644 --- a/crates/topos-tce-proxy/src/worker.rs +++ b/crates/topos-tce-proxy/src/worker.rs @@ -96,7 +96,7 @@ impl TceProxyWorker { Some(cmd) = command_rcv.recv() => { match cmd { TceProxyCommand::SubmitCertificate{cert, ctx} => { - let span = info_span!("Sequencer TCE Proxy"); + let span = info_span!("Certificate Producer TCE Proxy"); span.set_parent(ctx); async { info!("Submitting new certificate to the TCE network: {}", &cert.id); diff --git a/crates/topos-tce-storage/src/fullnode/mod.rs b/crates/topos-tce-storage/src/fullnode/mod.rs index dccd58223..d65407a45 100644 --- a/crates/topos-tce-storage/src/fullnode/mod.rs +++ b/crates/topos-tce-storage/src/fullnode/mod.rs @@ -185,7 +185,7 @@ impl WriteStore for FullNodeStore { }; // Return list of new target stream positions of certificate that will be persisted - // Information is needed by sequencer/subnet contract to know from + // Information is needed by certificate producer/subnet contract to know from // where to continue with streaming on restart let mut target_subnet_stream_positions: HashMap = HashMap::new(); diff --git a/crates/topos-tce-storage/src/lib.rs b/crates/topos-tce-storage/src/lib.rs index 1390aef1c..edf937ef6 100644 --- a/crates/topos-tce-storage/src/lib.rs +++ b/crates/topos-tce-storage/src/lib.rs @@ -136,7 +136,7 @@ pub struct CertificatePositions { /// Uniquely identify the source certificate stream head of one subnet. /// The head represent the internal state of the TCE regarding a source subnet stream for -/// certificates that it receives from local sequencer +/// certificates that it receives from the local certificate producer #[derive(Serialize, Deserialize, Debug, Clone)] pub struct SourceHead { /// Certificate id of the head diff --git a/crates/topos-test-sdk/src/sequencer/mod.rs b/crates/topos-test-sdk/src/certificate_producer/mod.rs similarity index 100% rename from crates/topos-test-sdk/src/sequencer/mod.rs rename to crates/topos-test-sdk/src/certificate_producer/mod.rs diff --git a/crates/topos-test-sdk/src/lib.rs b/crates/topos-test-sdk/src/lib.rs index b4e52d3ef..89536788d 100644 --- a/crates/topos-test-sdk/src/lib.rs +++ b/crates/topos-test-sdk/src/lib.rs @@ -1,9 +1,9 @@ pub mod certificates; +pub mod certificate_producer; pub mod crypto; pub mod networking; pub mod p2p; -pub mod sequencer; pub mod storage; pub mod tce; diff --git a/crates/topos/Cargo.toml b/crates/topos/Cargo.toml index f3b2dfbca..58d49de50 100644 --- a/crates/topos/Cargo.toml +++ b/crates/topos/Cargo.toml @@ -11,7 +11,7 @@ topos-node = { path = "../topos-node/" } topos-config = { path = "../topos-config/" } topos-tce = { path = "../topos-tce/" } topos-p2p = { path = "../topos-p2p" } -topos-sequencer = { path = "../topos-sequencer" } +topos-certificate-producer = { path = "../topos-certificate-producer" } topos-core = { workspace = true, features = ["api"] } topos-certificate-spammer = { path = "../topos-certificate-spammer" } topos-tce-broadcast = { path = "../topos-tce-broadcast", optional = true } diff --git a/crates/topos/src/components/node/commands/init.rs b/crates/topos/src/components/node/commands/init.rs index 02d5d608d..8b20c96a9 100644 --- a/crates/topos/src/components/node/commands/init.rs +++ b/crates/topos/src/components/node/commands/init.rs @@ -26,7 +26,7 @@ pub struct Init { pub secrets_config: Option, /// For certain use cases, we manually provide private keys to a running node, and don't want to - /// rely on polygon-edge during runtime. Example: A sequencer which runs for an external EVM chain + /// rely on polygon-edge during runtime. Example: A Certificate Producer which runs for an external EVM chain #[arg(long, env = "TOPOS_NO_EDGE_PROCESS", action)] pub no_edge_process: bool, diff --git a/crates/topos/tests/config.rs b/crates/topos/tests/config.rs index 34dd9abf8..6a388e9cc 100644 --- a/crates/topos/tests/config.rs +++ b/crates/topos/tests/config.rs @@ -187,7 +187,7 @@ mod serial_integration { // Check if config file params are according to env params let config_contents = std::fs::read_to_string(&config_path).unwrap(); assert!(config_contents.contains("name = \"TEST_NODE_ENV\"")); - assert!(config_contents.contains("role = \"fullnode\"")); + assert!(config_contents.contains("role = \"full-node\"")); assert!(config_contents.contains("subnet = \"topos-env\"")); Ok(()) @@ -209,7 +209,7 @@ mod serial_integration { let node_init_home_cli = tmp_home_dir_cli.to_str().unwrap(); let node_edge_path_cli = node_edge_path_env.clone(); let node_init_name_cli = "TEST_NODE_CLI"; - let node_init_role_cli = "sequencer"; + let node_init_role_cli = "certificate-producer"; let node_init_subnet_cli = "topos-cli"; let mut cmd = Command::cargo_bin("topos")?; @@ -245,7 +245,7 @@ mod serial_integration { // Check if config file params are according to cli params let config_contents = std::fs::read_to_string(&config_path).unwrap(); assert!(config_contents.contains("name = \"TEST_NODE_CLI\"")); - assert!(config_contents.contains("role = \"sequencer\"")); + assert!(config_contents.contains("role = \"certificate-producer\"")); assert!(config_contents.contains("subnet = \"topos-cli\"")); Ok(())