From f673f4350cef3d24ed83dcb0b8966cfc4c67eee2 Mon Sep 17 00:00:00 2001 From: Justin Kilpatrick Date: Wed, 4 Dec 2024 14:40:42 -0500 Subject: [PATCH 1/4] Bump Web30, Clarity, and DeepSpace versions --- Cargo.lock | 79 ++++++++++++++++++++---------------- Cargo.toml | 7 ++-- althea_types/Cargo.toml | 2 +- auto_bridge/Cargo.toml | 2 +- integration_tests/Cargo.toml | 2 +- rita_client/Cargo.toml | 2 +- rita_common/Cargo.toml | 2 +- rita_exit/Cargo.toml | 2 +- settings/Cargo.toml | 2 +- 9 files changed, 56 insertions(+), 44 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3b138be39..6d41e98d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "actix" @@ -691,6 +691,22 @@ dependencies = [ "serde", ] +[[package]] +name = "bitcoin-io" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" + +[[package]] +name = "bitcoin_hashes" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +dependencies = [ + "bitcoin-io", + "hex-conservative", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -739,6 +755,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29ed1ec45f6ef6e8d1125cc2c2fec8f8fe7d4fa5b262f15885fdccb9e26f0f15" dependencies = [ + "num-integer", "num-traits", ] @@ -796,9 +813,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.2" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "bytestring" @@ -897,13 +914,13 @@ checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "clarity" -version = "1.4.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cc231e36d58a7fc35e59d4177f5579428e3586992f93ebabeafb873ef89eb46" +checksum = "b8100ba88ab2204050607e86b2265ecb9079f72ac9d0f1ba075f978d74110daa" dependencies = [ "num-traits", "num256", - "secp256k1 0.28.2", + "secp256k1", "serde", "serde_derive", "sha3", @@ -1137,9 +1154,9 @@ dependencies = [ [[package]] name = "deep_space" -version = "2.26.0" +version = "2.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e3f879a3c363ef3754e91485f06bdecf8e0edc54b328ab09acf663aca34105" +checksum = "161c2f10dd65be981e88678d44c1343d0cb403d926375c19c73a2d547c744d6e" dependencies = [ "althea_proto", "base64 0.22.1", @@ -1157,7 +1174,7 @@ dependencies = [ "rand", "ripemd", "rust_decimal", - "secp256k1 0.29.1", + "secp256k1", "serde", "serde_derive", "serde_json", @@ -1668,6 +1685,15 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hex-conservative" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +dependencies = [ + "arrayvec", +] + [[package]] name = "hex-literal" version = "0.4.1" @@ -2367,11 +2393,12 @@ dependencies = [ [[package]] name = "num256" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac4d0cdb15f1e6bf76376510d4c2c6b059df1449f2e3717367988460f2467404" +checksum = "85228c87555ed4e5ddf024e9ef1908b27458b97e56b195af0d9cf1d7db890023" dependencies = [ "bnum", + "num-integer", "num-traits", "serde", ] @@ -3328,29 +3355,13 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] name = "secp256k1" -version = "0.28.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" -dependencies = [ - "secp256k1-sys 0.9.2", -] - -[[package]] -name = "secp256k1" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" +checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ - "secp256k1-sys 0.10.1", -] - -[[package]] -name = "secp256k1-sys" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" -dependencies = [ - "cc", + "bitcoin_hashes", + "rand", + "secp256k1-sys", ] [[package]] @@ -4153,9 +4164,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "web30" -version = "1.4.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c745831a8786454f56cb1d5b3498e4880dc464126dfd2b37d2180f051cf7e527" +checksum = "a756bea35ebe4e3758b89c3d25797f0c4a4af0e0232bcb6cedf6053b013f3557" dependencies = [ "awc", "clarity", diff --git a/Cargo.toml b/Cargo.toml index bb66e019f..42ed377b4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,9 +38,10 @@ inherits = "dev" opt-level = 2 [workspace.dependencies] -deep_space = {version = "2.26", features = ["althea"], default-features=false} -web30 = "1.4" -clarity = "1.4" +deep_space = {version = "2.27", features = ["althea"], default-features=false} +num256 = "0.6" +web30 = "1.6" +clarity = "1.5" awc = {version = "3.5", default-features = false, features=["openssl", "compress-gzip", "compress-zstd"]} actix-web = { version = "4.9", default-features = false, features = ["openssl", "compress-gzip", "compress-zstd", "macros"] } actix-web-httpauth = {version = "0.8.2"} diff --git a/althea_types/Cargo.toml b/althea_types/Cargo.toml index 897f9508b..b346dbb18 100644 --- a/althea_types/Cargo.toml +++ b/althea_types/Cargo.toml @@ -8,7 +8,7 @@ license = "Apache-2.0" [dependencies] babel_monitor = { path = "../babel_monitor" } -num256 = "0.5" +num256 = {workspace = true} base64 = "0.13" serde_derive = "1.0" serde = "1.0" diff --git a/auto_bridge/Cargo.toml b/auto_bridge/Cargo.toml index 5656b92ea..c7bfb0a9f 100644 --- a/auto_bridge/Cargo.toml +++ b/auto_bridge/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" [dependencies] web30 = {workspace = true} -num256 = "0.5" +num256 = {workspace = true} clarity = {workspace = true} rand = "0.8" num = "0.4" diff --git a/integration_tests/Cargo.toml b/integration_tests/Cargo.toml index 74ee40e91..80c6ac8d0 100644 --- a/integration_tests/Cargo.toml +++ b/integration_tests/Cargo.toml @@ -32,7 +32,7 @@ deep_space = {workspace = true} clarity = {workspace = true} althea_proto = {workspace = true} futures = { version = "0.3", features = ["compat"] } -num256 = "0.5" +num256 = {workspace = true} num-traits="0.2" web30 = {workspace = true} lazy_static = "1.5" diff --git a/rita_client/Cargo.toml b/rita_client/Cargo.toml index 0bae54781..b78c14011 100644 --- a/rita_client/Cargo.toml +++ b/rita_client/Cargo.toml @@ -8,7 +8,7 @@ license = "Apache-2.0" [dependencies] compressed_log = "0.5" num-traits = "0.2" -num256 = "0.5" +num256 = {workspace = true} serde = "1.0" serde_derive = "1.0" serde_json = "1.0" diff --git a/rita_common/Cargo.toml b/rita_common/Cargo.toml index ebc560fc5..351c5c5b5 100644 --- a/rita_common/Cargo.toml +++ b/rita_common/Cargo.toml @@ -24,7 +24,7 @@ log = { version = "0.4", features = ["release_max_level_info"] } settings = { path = "../settings" } clarity = {workspace = true} futures = { version = "0.3", features = ["compat"] } -num256 = "0.5" +num256 = {workspace = true} num-traits = "0.2" bincode = "1.3" serde_cbor = "0.11" diff --git a/rita_exit/Cargo.toml b/rita_exit/Cargo.toml index 7eac228d5..995bcbf47 100644 --- a/rita_exit/Cargo.toml +++ b/rita_exit/Cargo.toml @@ -6,7 +6,7 @@ license = "Apache-2.0" [dependencies] -num256 = "0.5" +num256 = {workspace = true} exit_trust_root = { path = "../exit_trust_root" } rita_common = { path = "../rita_common" } althea_kernel_interface = { path = "../althea_kernel_interface" } diff --git a/settings/Cargo.toml b/settings/Cargo.toml index 51776f482..562c86678 100644 --- a/settings/Cargo.toml +++ b/settings/Cargo.toml @@ -9,7 +9,7 @@ althea_types = { path = "../althea_types"} babel_monitor = { path = "../babel_monitor"} althea_kernel_interface = { path = "../althea_kernel_interface" } auto-bridge = { path = "../auto_bridge" } -num256 = "0.5" +num256 = {workspace = true} serde = "1.0" serde_derive = "1.0" serde_json = "1.0" From 295140e62849f30a44d5ddd7df03301d81b2d437 Mon Sep 17 00:00:00 2001 From: Justin Kilpatrick Date: Wed, 4 Dec 2024 19:13:13 -0500 Subject: [PATCH 2/4] Clippy --- althea_kernel_interface/src/set_system_password.rs | 2 ++ althea_types/src/wg_key.rs | 2 +- rita_common/src/dashboard/interfaces.rs | 1 - rita_exit/src/network_endpoints/mod.rs | 2 -- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/althea_kernel_interface/src/set_system_password.rs b/althea_kernel_interface/src/set_system_password.rs index f837a33d2..43128559d 100644 --- a/althea_kernel_interface/src/set_system_password.rs +++ b/althea_kernel_interface/src/set_system_password.rs @@ -8,6 +8,8 @@ pub fn set_system_password(password: String) -> Result<(), KernelInterfaceError> let mut password_with_newline = password.as_bytes().to_vec(); password_with_newline.push(b'\n'); + // note that wait_with_output is used, this is a clippy bug + #[allow(clippy::zombie_processes)] let mut passwd = Command::new("passwd") .args(["-a sha512"]) .stdout(Stdio::piped()) diff --git a/althea_types/src/wg_key.rs b/althea_types/src/wg_key.rs index 92b79f743..e2d89cded 100644 --- a/althea_types/src/wg_key.rs +++ b/althea_types/src/wg_key.rs @@ -137,7 +137,7 @@ impl Serialize for WgKey { struct WgKeyVisitor; -impl<'de> Visitor<'de> for WgKeyVisitor { +impl Visitor<'_> for WgKeyVisitor { type Value = WgKey; fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { diff --git a/rita_common/src/dashboard/interfaces.rs b/rita_common/src/dashboard/interfaces.rs index 63f7cde61..579c9496b 100644 --- a/rita_common/src/dashboard/interfaces.rs +++ b/rita_common/src/dashboard/interfaces.rs @@ -423,7 +423,6 @@ pub fn ethernet_transform_mode( /// instead we provide a toggle interface. /// For example 'toggle user wlan off' or 'toggle phone sale network on' or 'toggle router /// to router wireless meshing'. - fn wlan_toggle_get(uci_spec: &str) -> Result { if !is_openwrt() { return Err(RitaCommonError::MiscStringError( diff --git a/rita_exit/src/network_endpoints/mod.rs b/rita_exit/src/network_endpoints/mod.rs index 601c315fd..29175cc50 100644 --- a/rita_exit/src/network_endpoints/mod.rs +++ b/rita_exit/src/network_endpoints/mod.rs @@ -27,8 +27,6 @@ use std::time::SystemTime; // Timeout to contact Althea contract and query info about a user pub const CLIENT_STATUS_TIMEOUT: Duration = Duration::from_secs(20); -/// helper function for returning from secure_setup_request() - enum DecryptResult { Success(Box), Failure(Result), From 5c8cff900ccd591f635c7f682f2f30f30d97e5fa Mon Sep 17 00:00:00 2001 From: Justin Kilpatrick Date: Wed, 4 Dec 2024 19:20:14 -0500 Subject: [PATCH 3/4] Remove db migration test The diesel version is now so old it's throwing Rust warnings, I'll pull this out of the history when/if I need to use it. This finaly lets us remove all the postgres related stuff --- .github/workflows/rust.yml | 12 +- Cargo.lock | 93 ------- Cargo.toml | 1 - README.md | 8 +- integration_tests/Cargo.toml | 3 - integration_tests/container/Dockerfile | 6 +- integration_tests/src/db_migration_test.rs | 176 ------------- integration_tests/src/lib.rs | 1 - integration_tests/src/setup_utils/database.rs | 130 --------- integration_tests/src/setup_utils/mod.rs | 1 - integration_tests/src/utils.rs | 2 +- rita_bin/Cargo.toml | 6 - rita_bin/src/contract-util.rs | 249 ------------------ rita_db_migration/Cargo.toml | 20 -- rita_db_migration/src/error.rs | 19 -- rita_db_migration/src/lib.rs | 145 ---------- rita_db_migration/src/models.rs | 37 --- rita_db_migration/src/schema.rs | 28 -- scripts/integration_tests/all-up-test-ci.sh | 5 - test_runner/src/main.rs | 3 - 20 files changed, 8 insertions(+), 937 deletions(-) delete mode 100644 integration_tests/src/db_migration_test.rs delete mode 100644 integration_tests/src/setup_utils/database.rs delete mode 100644 rita_bin/src/contract-util.rs delete mode 100644 rita_db_migration/Cargo.toml delete mode 100644 rita_db_migration/src/error.rs delete mode 100644 rita_db_migration/src/lib.rs delete mode 100644 rita_db_migration/src/models.rs delete mode 100644 rita_db_migration/src/schema.rs diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 093e89cc1..e5bbbb6d2 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -123,14 +123,4 @@ jobs: with: cache-on-failure: true - name: Run integration test - run: bash scripts/integration_tests/all-up-test-ci.sh CONTRACT_TEST - integration-test-db-migration: - needs: check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: Run integration test - run: bash scripts/integration_tests/all-up-test-ci.sh MIGRATION_TEST + run: bash scripts/integration_tests/all-up-test-ci.sh CONTRACT_TEST \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 6d41e98d1..626203e40 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1207,40 +1207,6 @@ dependencies = [ "syn 2.0.79", ] -[[package]] -name = "diesel" -version = "1.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b28135ecf6b7d446b43e27e225622a038cc4e2930a1022f51cdb97ada19b8e4d" -dependencies = [ - "bitflags 1.3.2", - "byteorder", - "diesel_derives", - "pq-sys", - "r2d2", -] - -[[package]] -name = "diesel_derives" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45f5098f628d02a7a0f68ddba586fb61e80edec3bdc1be3b921f4ceec60858d3" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "diesel_migrations" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf3cde8413353dc7f5d72fa8ce0b99a560a359d2c5ef1e5817ca731cd9008f4c" -dependencies = [ - "migrations_internals", - "migrations_macros", -] - [[package]] name = "digest" version = "0.10.7" @@ -1264,12 +1230,6 @@ dependencies = [ "strsim 0.10.0", ] -[[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" - [[package]] name = "ed25519" version = "1.5.3" @@ -1917,8 +1877,6 @@ dependencies = [ "crossbeam", "ctrlc", "deep_space", - "diesel", - "diesel_migrations", "docopt", "env_logger", "exit_trust_root", @@ -1933,7 +1891,6 @@ dependencies = [ "phonenumber", "rita_client", "rita_common", - "rita_db_migration", "rita_exit", "settings", "tokio", @@ -2192,27 +2149,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "migrations_internals" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b4fc84e4af020b837029e017966f86a1c2d5e83e64b589963d5047525995860" -dependencies = [ - "diesel", -] - -[[package]] -name = "migrations_macros" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9753f12909fd8d923f75ae5c3258cae1ed3c8ec052e1b38c93c21a6d157f789c" -dependencies = [ - "migrations_internals", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "mime" version = "0.3.17" @@ -2693,15 +2629,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "pq-sys" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd" -dependencies = [ - "vcpkg", -] - [[package]] name = "proc-macro-crate" version = "3.2.0" @@ -2975,7 +2902,6 @@ dependencies = [ "clu", "compressed_log", "ctrlc", - "diesel", "docopt", "env_logger", "exit_trust_root", @@ -2990,7 +2916,6 @@ dependencies = [ "r2d2", "rita_client", "rita_common", - "rita_db_migration", "rita_exit", "rita_extender", "serde", @@ -3085,24 +3010,6 @@ dependencies = [ "web30", ] -[[package]] -name = "rita_db_migration" -version = "0.1.0" -dependencies = [ - "althea_types", - "clarity", - "crossbeam", - "diesel", - "dotenv", - "exit_trust_root", - "log", - "r2d2", - "serde", - "serde_derive", - "serde_json", - "web30", -] - [[package]] name = "rita_exit" version = "0.21.5" diff --git a/Cargo.toml b/Cargo.toml index 42ed377b4..00ebfd457 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,6 @@ members = [ "rita_common", "rita_exit", "rita_client", - "rita_db_migration", "rita_bin", "test_runner", "integration_tests", diff --git a/README.md b/README.md index 96136808b..08e5c7ca2 100644 --- a/README.md +++ b/README.md @@ -26,19 +26,19 @@ Rita supports either [Althea L1](https://github.com/althea-net/althea-L1) or any Debian: - sudo apt-get install build-essential libssl-dev libsqlite3-dev pkg-config postgresql-server-dev-all automake liboping-dev libtool perl clang + sudo apt-get install build-essential libssl-dev libsqlite3-dev pkg-config automake liboping-dev libtool perl clang Ubuntu: - sudo apt-get install build-essential libssl-dev libsqlite3-dev pkg-config postgresql-server-dev-all automake liboping-dev libtool perl clang + sudo apt-get install build-essential libssl-dev libsqlite3-dev pkg-config automake liboping-dev libtool perl clang Centos: - sudo yum install gcc gcc-c++ openssl-devel sqlite-devel make postgresql-devel automake liboping-devel libtool perl clang + sudo yum install gcc gcc-c++ openssl-devel sqlite-devel make automake liboping-devel libtool perl clang Fedora: - sudo dnf install gcc gcc-c++ openssl-devel sqlite-devel make postgresql-devel automake liboping-devel libtool perl clang + sudo dnf install gcc gcc-c++ openssl-devel sqlite-devel make automake liboping-devel libtool perl clang Arch: diff --git a/integration_tests/Cargo.toml b/integration_tests/Cargo.toml index 80c6ac8d0..2202a5832 100644 --- a/integration_tests/Cargo.toml +++ b/integration_tests/Cargo.toml @@ -22,10 +22,7 @@ rita_client = { path = "../rita_client", features = ["dev_env"] } rita_common = { path = "../rita_common", features = ["integration_test"] } rita_exit = { path = "../rita_exit", features = ["dev_env"] } exit_trust_root = { path = "../exit_trust_root", features = ["development"] } -rita_db_migration = { path = "../rita_db_migration" } ctrlc = { version = "3.4.5", features = ["termination"] } -diesel = { version = "1.4", features = ["postgres", "r2d2"] } -diesel_migrations = { version = "1.4", features = ["postgres"] } awc = {workspace = true} actix-rt = {workspace = true} deep_space = {workspace = true} diff --git a/integration_tests/container/Dockerfile b/integration_tests/container/Dockerfile index 504741645..ef21ddbf2 100644 --- a/integration_tests/container/Dockerfile +++ b/integration_tests/container/Dockerfile @@ -1,11 +1,9 @@ -FROM postgres +FROM debian:bookworm ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get update && apt-get install -y sudo iputils-ping iproute2 jq vim netcat-traditional default-libmysqlclient-dev libsqlite3-dev libpq-dev python3-pip bridge-utils wireguard linux-source curl git libssl-dev pkg-config build-essential ipset python3-setuptools python3-wheel dh-autoreconf procps net-tools iperf3 babeld make locales-all npm +RUN apt-get update && apt-get install -y sudo iputils-ping iproute2 jq vim netcat-traditional python3-pip bridge-utils wireguard linux-source curl git libssl-dev pkg-config build-essential ipset python3-setuptools python3-wheel dh-autoreconf procps net-tools iperf3 babeld make locales-all npm # Install Rust RUN curl https://sh.rustup.rs -sSf | sh -s -- -y ENV PATH=$PATH:/root/.cargo/bin/ -# Setup postgres db for Althea exits -RUN cargo install diesel_cli --force # Install Babeld for Althea routing RUN cd /var && git clone -b master https://github.com/althea-mesh/babeld.git RUN cd /var/babeld/ && make install diff --git a/integration_tests/src/db_migration_test.rs b/integration_tests/src/db_migration_test.rs deleted file mode 100644 index cd31973f9..000000000 --- a/integration_tests/src/db_migration_test.rs +++ /dev/null @@ -1,176 +0,0 @@ -use crate::{ - payments_eth::{TRASACTION_TIMEOUT, WEB3_TIMEOUT}, - setup_utils::database::start_postgres, - utils::{deploy_contracts, get_eth_node, REGISTRATION_SERVER_KEY}, -}; -use althea_types::random_identity; -use clarity::{Address, PrivateKey}; -use crossbeam::queue::SegQueue; -use diesel::{PgConnection, RunQueryDsl}; -use exit_trust_root::{ - client_db::{check_and_add_user_admin, get_all_registered_clients}, - register_client_batch_loop::register_client_batch_loop, -}; -use futures::future::{select, Either}; -use rita_db_migration::{ - get_database_connection, models::Client, schema::clients::dsl::clients, start_db_migration, -}; -use std::{ - sync::Arc, - thread, - time::{Duration, Instant}, -}; -use web30::client::Web3; - -pub const DB_URI: &str = "postgres://postgres@localhost/test"; - -/// This tests the rita_db_migration binary and veries that clients actually migrate from a postgresql db -/// to a smart contract -pub async fn run_db_migration_test() { - info!("Starting db migration test"); - - info!("Waiting to deploy contracts"); - let althea_db_addr = deploy_contracts().await; - info!("DB addr is {}", althea_db_addr); - - info!("Starting postrgresql db"); - start_postgres(); - - let conn = get_database_connection(DB_URI.to_string()).expect("Please fix db path"); - - let num_clients = 10; - // Add a bunch of dummy clients to the db to migrate - add_dummy_clients_to_db(num_clients, &conn); - - thread::sleep(Duration::from_secs(10)); - - info!("Run migration code"); - - let reg_server_key: PrivateKey = REGISTRATION_SERVER_KEY.parse().unwrap(); - // Start registration loop - info!("Registering user admin"); - // This request needs to be made with the state admin's key - check_and_add_user_admin( - &Web3::new(&get_eth_node(), WEB3_TIMEOUT), - althea_db_addr, - reg_server_key.to_address(), - reg_server_key, - Some(TRASACTION_TIMEOUT), - vec![], - ) - .await - .expect("Failed to add user admin!"); - - thread::sleep(Duration::from_secs(5)); - - let queue = Arc::new(SegQueue::new()); - - info!("Starting registration loop"); - let reg_loop = register_client_batch_loop(get_eth_node(), reg_server_key, queue.clone()); - - info!("Running user migration"); - start_db_migration( - DB_URI.to_string(), - get_eth_node(), - reg_server_key.to_address(), - althea_db_addr, - queue.clone(), - ) - .await - .expect("Failed to start migration!"); - - // wait for the timeout while also running the registration loop - match select( - Box::pin(validate_db_migration( - num_clients, - althea_db_addr, - reg_server_key, - )), - Box::pin(reg_loop), - ) - .await - { - Either::Left((_, _)) => info!("Successfully migrated all clients!"), - Either::Right((_, _)) => panic!("Registration loop crashed!"), - }; -} - -fn add_dummy_clients_to_db(num_of_entries: usize, conn: &PgConnection) { - for i in 0..num_of_entries { - let new_client = random_db_client(); - info!("Inserting new client {}: {}", i, new_client.wg_pubkey); - if let Err(e) = diesel::insert_into(clients) - .values(&new_client) - .execute(conn) - { - panic!("Why did a client {} insert fail? {}", i, e); - } - } -} - -fn random_db_client() -> Client { - let random_id = random_identity(); - Client { - mesh_ip: random_id.mesh_ip.to_string(), - wg_pubkey: random_id.wg_public_key.to_string(), - wg_port: 0, - eth_address: random_id.eth_address.to_string(), - internal_ip: "".to_string(), - internet_ipv6: "".to_string(), - nickname: "".to_string(), - email: "".to_string(), - phone: "".to_string(), - country: "".to_string(), - email_code: "".to_string(), - verified: true, - email_sent_time: 0, - text_sent: 0, - last_balance_warning_time: 0, - last_seen: 0, - } -} - -async fn validate_db_migration( - num_clients: usize, - althea_db_addr: Address, - reg_server_key: PrivateKey, -) { - let miner_pub_key = reg_server_key.to_address(); - let contact = Web3::new(&get_eth_node(), WEB3_TIMEOUT); - - let start = Instant::now(); - loop { - let client_vec = get_all_registered_clients(&contact, miner_pub_key, althea_db_addr).await; - if client_vec.is_err() { - if Instant::now() - start > Duration::from_secs(300) { - panic!("Failed to migrate clients after waiting for 5 mins"); - } - error!("No clients have been registered so far, waiting..",); - thread::sleep(Duration::from_secs(10)); - } else if let Ok(client_list) = client_vec { - if client_list.len() == num_clients { - info!( - "All clients have successuflly migrated from postgresql db to smart contract!" - ); - info!("DB clients are :\n"); - for id in client_list { - info!("{}", id); - } - break; - } else { - if Instant::now() - start > Duration::from_secs(300) { - panic!( - "Failed to migrate {} clients after waiting for 5 mins. Only migrated {}", - num_clients, - client_list.len() - ); - } - error!( - "{} clients have been registered so far, waiting..", - client_list.len() - ); - thread::sleep(Duration::from_secs(10)); - } - } - } -} diff --git a/integration_tests/src/lib.rs b/integration_tests/src/lib.rs index 5c1e4cf57..488f301f0 100644 --- a/integration_tests/src/lib.rs +++ b/integration_tests/src/lib.rs @@ -7,7 +7,6 @@ extern crate log; use std::time::Duration; pub mod contract_test; -pub mod db_migration_test; pub mod debts; pub mod five_nodes; pub mod mutli_exit; diff --git a/integration_tests/src/setup_utils/database.rs b/integration_tests/src/setup_utils/database.rs deleted file mode 100644 index 57375dad1..000000000 --- a/integration_tests/src/setup_utils/database.rs +++ /dev/null @@ -1,130 +0,0 @@ -use althea_kernel_interface::run_command; -use diesel::{Connection, PgConnection}; -use log::warn; -use std::io::Write; -use std::{ - fs::File, - io::stdout, - path::Path, - thread, - time::{Duration, Instant}, -}; - -/// Starts the exit postgres instance in the native system namespace, TODO insert plumbing so that exits can reach it -pub fn start_postgres() { - const POSTGRES_USER: &str = "postgres"; - const POSTGRES_14_BIN: &str = "/usr/lib/postgresql/14/bin/postgres"; - const POSTGRES_16_BIN: &str = "/usr/lib/postgresql/16/bin/postgres"; - const INITDB_14_BIN: &str = "/usr/lib/postgresql/14/bin/initdb"; - const INITDB_16_BIN: &str = "/usr/lib/postgresql/16/bin/initdb"; - let postgres_bin = if Path::new(POSTGRES_14_BIN).exists() { - POSTGRES_14_BIN - } else if Path::new(POSTGRES_16_BIN).exists() { - POSTGRES_16_BIN - } else { - panic!("Could not find postgres binary") - }; - let initdb_bin = if Path::new(INITDB_14_BIN).exists() { - INITDB_14_BIN - } else if Path::new(INITDB_16_BIN).exists() { - INITDB_16_BIN - } else { - panic!("Could not find initdb binary") - }; - - // for this test script - const DB_URL_LOCAL: &str = "postgres://postgres@127.0.0.1/test"; - // for the rita exit instances - const POSTGRES_DATABASE_LOCATION: &str = "/var/lib/postgresql/data"; - let migration_directory_a = - Path::new("/althea_rs/integration_tests/src/setup_utils/migrations/"); - let migration_directory_b = Path::new("integration_tests/src/setup_utils/migrations/"); - let migration_directory = if migration_directory_a.exists() { - migration_directory_a - } else if migration_directory_b.exists() { - migration_directory_b - } else { - panic!("Could not find migrations directory") - }; - let postgres_pid_path: String = format!("{}/postmaster.pid", POSTGRES_DATABASE_LOCATION); - - // only init and launch if postgres has not already been started - if !Path::new(&postgres_pid_path).exists() { - // initialize the db datadir - let res = run_command( - "sudo", - &[ - "-u", - POSTGRES_USER, - initdb_bin, - "-D", - POSTGRES_DATABASE_LOCATION, - ], - ) - .unwrap(); - if !res.status.success() { - panic!("Failed to init postgres {:?}", res); - } - - // create the pg_hba.conf with auth for the 10.0.0.1 routers - let pg_hba_path = format!("{}/pg_hba.conf", POSTGRES_DATABASE_LOCATION); - let mut pg_hba = File::create(pg_hba_path).unwrap(); - let pb_hba_lines: [&str; 4] = [ - "local all all trust", - "host all all 10.0.0.1/16 trust", - "host all all 127.0.0.1/32 trust", - "host all all ::1/128 trust", - ]; - for line in pb_hba_lines { - writeln!(pg_hba, "{}", line).unwrap() - } - } - info!("Starting postgres"); - // start postgres in it's own thread, we kill it every time we startup - // so it's spawned in this context - thread::spawn(move || { - let res = run_command( - "sudo", - &[ - "-u", - POSTGRES_USER, - postgres_bin, - "-D", - POSTGRES_DATABASE_LOCATION, - ], - ) - .unwrap(); - panic!("Postgres has crashed {:?}", res); - }); - - // create connection to the now started database - let mut conn = PgConnection::establish(DB_URL_LOCAL); - const STARTUP_TIMEOUT: Duration = Duration::from_secs(60); - let start = Instant::now(); - while let Err(e) = conn { - warn!("Waiting for db to start {:?}", e); - if Instant::now() - start > STARTUP_TIMEOUT { - panic!("Postgres did not start! {:?}", e); - } - - // reset database contents for every run, this is in the loop becuase it too must wait until the db has started - run_command("psql", &["-c", "drop database test;", "-U", POSTGRES_USER]).unwrap(); - run_command( - "psql", - &["-c", "create database test;", "-U", POSTGRES_USER], - ) - .unwrap(); - - conn = PgConnection::establish(DB_URL_LOCAL); - thread::sleep(Duration::from_millis(1000)); - } - let conn = conn.unwrap(); - - // run diesel migrations - diesel_migrations::run_pending_migrations_in_directory( - &conn, - migration_directory, - &mut stdout(), - ) - .unwrap(); -} diff --git a/integration_tests/src/setup_utils/mod.rs b/integration_tests/src/setup_utils/mod.rs index 1d81c422b..db40c8031 100644 --- a/integration_tests/src/setup_utils/mod.rs +++ b/integration_tests/src/setup_utils/mod.rs @@ -1,4 +1,3 @@ pub mod babel; -pub mod database; pub mod namespaces; pub mod rita; diff --git a/integration_tests/src/utils.rs b/integration_tests/src/utils.rs index 42fabcd29..74871076e 100644 --- a/integration_tests/src/utils.rs +++ b/integration_tests/src/utils.rs @@ -1156,7 +1156,7 @@ pub async fn validate_debt_entry( pub async fn register_all_namespaces_to_exit(namespaces: NamespaceInfo) { for r in namespaces.names.clone() { - if let NodeType::Client { exit_name } = r.node_type.clone() { + if let NodeType::Client { exit_name, .. } = r.node_type.clone() { let res = register_to_exit(r.get_name()).await; if !res { panic!("Failed to register {} to exit with {}", r.get_name(), res); diff --git a/rita_bin/Cargo.toml b/rita_bin/Cargo.toml index aea0bf303..061fc801d 100644 --- a/rita_bin/Cargo.toml +++ b/rita_bin/Cargo.toml @@ -13,10 +13,6 @@ path = "src/exit.rs" name = "rita" path = "src/client.rs" -[[bin]] -name = "contract-util" -path = "src/contract-util.rs" - [[bin]] name = "rita_extender" path = "src/extender.rs" @@ -30,7 +26,6 @@ actix-web = { workspace = true } docopt = "1.1" compressed_log = "0.5" settings = { path = "../settings" } -diesel = { version = "1.4", features = ["postgres", "r2d2"] } log = { version = "0.4", features = ["release_max_level_info"] } serde = "1.0" serde_json = "1.0" @@ -42,7 +37,6 @@ r2d2 = "0.8" ctrlc = { version = "3.4.5", features = ["termination"] } rita_common = { path = "../rita_common", default-features = false } rita_client = { path = "../rita_client", default-features = false } -rita_db_migration = { path = "../rita_db_migration", default-features = false } rita_exit = { path = "../rita_exit", default-features = false } rita_extender = { path = "../rita_extender", default-features = false } exit_trust_root = { path = "../exit_trust_root" } diff --git a/rita_bin/src/contract-util.rs b/rita_bin/src/contract-util.rs deleted file mode 100644 index fc22cc55d..000000000 --- a/rita_bin/src/contract-util.rs +++ /dev/null @@ -1,249 +0,0 @@ -//! This binary is a set of utilities for interacting with the Althea exit infrastructure contract. This contract contains a list of -//! all clients and exits and is used to perform key exchange between both sides. This binary contains a set of utilities for interacting -//! with this contract and performing a variety of tasks. - -#![warn(clippy::all)] -#![allow(clippy::pedantic)] -#![forbid(unsafe_code)] - -use althea_types::regions::Regions; -use althea_types::ExitIdentity; -use althea_types::Identity; -use althea_types::SystemChain; -use clarity::PrivateKey; -use diesel::RunQueryDsl; -use docopt::Docopt; -use exit_trust_root::client_db::add_exits_to_registration_list; -use exit_trust_root::client_db::add_users_to_registered_list; -use exit_trust_root::client_db::get_all_registered_clients; -use exit_trust_root::register_client_batch_loop::MAX_BATCH_SIZE; -use log::{error, info}; -use rita_db_migration::{ - get_database_connection, - models::{self, Client}, - schema::clients::dsl::clients, -}; -use serde::Deserialize; -use std::collections::HashSet; -use std::{process::exit, time::Duration}; -use web30::{client::Web3, types::SendTxOption}; - -const WEB3_TIMEOUT: Duration = Duration::from_secs(15); -pub const TX_TIMEOUT: Duration = Duration::from_secs(60); -const EXIT_REGISTRATION_PORT: u16 = 4875; -const EXIT_WG_LISTEN_PORT: u16 = 59998; - -#[derive(Debug, Deserialize)] -pub struct Args { - pub cmd_migrate: bool, - pub cmd_add_exit: bool, - pub flag_dburl: String, - pub flag_address: String, - pub flag_web3url: String, - pub flag_privatekey: String, -} - -#[actix_rt::main] -async fn main() { - env_logger::Builder::default() - .filter(None, log::LevelFilter::Info) - .init(); - - let args: Args = Docopt::new(get_arg_usage()) - .and_then(|d| d.deserialize()) - .unwrap_or_else(|e| e.exit()); - - let db_url = args.flag_dburl; - let contract_addr = args - .flag_address - .parse() - .expect("Please provide a valid eth contract addr"); - let private_key: PrivateKey = args - .flag_privatekey - .parse() - .expect("Please provide a valid eth private key with funds"); - let address = private_key.to_address(); - - let web3 = Web3::new(&args.flag_web3url, WEB3_TIMEOUT); - - if args.cmd_migrate { - // get a copy of all existing clients, we do this in order to handle a potential future edgecase where more than one registration server - // is operating at a time and the same user attempts to register to more than one before the transaction can be sent. Without this check - // once a already registered user is in the queue all future transactions would fail and the server would no longer operate correctly - let all_contract_clients = - match get_all_registered_clients(&web3, address, contract_addr).await { - Ok(all_clients) => all_clients, - Err(e) => { - panic!("Failed to get list of already registered clients {:?}", e); - } - }; - - let db_conn = get_database_connection(db_url).unwrap(); - - let database_clients_list = clients.load::(&db_conn).unwrap(); - let database_clients_list = clients_to_ids(database_clients_list); - - let mut clients_to_register = Vec::new(); - for client in database_clients_list { - if !all_contract_clients.contains(&client) { - clients_to_register.push(client); - if clients_to_register.len() > MAX_BATCH_SIZE { - break; - } - } - } - // if there is no one once we filter already registered users - if clients_to_register.is_empty() { - info!("No new clients to register! Successfully exiting"); - exit(0); - } - info!( - "Starting registration of {} clients", - clients_to_register.len() - ); - - while !clients_to_register.is_empty() { - let mut register_batch = Vec::new(); - - // build a small batch to register - while register_batch.len() < MAX_BATCH_SIZE { - if let Some(client) = clients_to_register.pop() { - register_batch.push(client); - } else { - break; - } - } - - info!("Prepped user batch sending register tx"); - match add_users_to_registered_list( - &web3, - register_batch.clone(), - contract_addr, - private_key, - Some(TX_TIMEOUT), - vec![ - SendTxOption::GasPriorityFee(100000000000u128.into()), - SendTxOption::GasMaxFee(400000000000u128.into()), - ], - ) - .await - { - Ok(_) => { - info!( - "Successfully registered {} clients!", - clients_to_register.len() - ); - } - Err(e) => { - error!("Failed to register clients with {:?}, will try again!", e); - for client in register_batch { - clients_to_register.push(client); - } - } - } - } - info!("Successfully migrated all users!"); - } else if args.cmd_add_exit { - let mut xdai = HashSet::new(); - xdai.insert(SystemChain::Xdai); - let mut usa = HashSet::new(); - usa.insert(Regions::UnitedStates); - - // This command helps generate the bytes for registering a set of exits - let exits_to_register = vec![ - ExitIdentity { - mesh_ip: "fd00::2602:9000".parse().unwrap(), - wg_key: "4PsEKlDEF8gcj9oXtt3Gi+ZmaGuxBwRMxNJ/ewCZpis=" - .parse() - .unwrap(), - eth_addr: "0xdE8236B129Ae270B75DED07101727fB03C39AA5F" - .parse() - .unwrap(), - registration_port: EXIT_REGISTRATION_PORT, - wg_exit_listen_port: EXIT_WG_LISTEN_PORT, - allowed_regions: usa.clone(), - payment_types: xdai.clone(), - }, - ExitIdentity { - mesh_ip: "fd00::2602:3000".parse().unwrap(), - wg_key: "uNu3IMSgt3SY2+MvtEwjEpx45lOk7q/7sWC3ff80GXE=" - .parse() - .unwrap(), - eth_addr: "0x72d9E579f691D62aA7e0703840db6dd2fa9fAE21" - .parse() - .unwrap(), - registration_port: EXIT_REGISTRATION_PORT, - wg_exit_listen_port: EXIT_WG_LISTEN_PORT, - allowed_regions: usa, - payment_types: xdai, - }, - ]; - match add_exits_to_registration_list( - &web3, - exits_to_register.clone(), - contract_addr, - private_key, - Some(TX_TIMEOUT), - vec![ - SendTxOption::GasPriorityFee(100000000000u128.into()), - SendTxOption::GasMaxFee(400000000000u128.into()), - ], - ) - .await - { - Ok(_) => { - info!("Successfully registered {} exits!", exits_to_register.len()); - } - Err(e) => { - error!("Failed to register exits with {:?}", e); - } - } - } -} - -pub fn get_arg_usage() -> String { - "Usage: - contract-util migrate --dburl= --address=
--web3url= --privatekey= - contract-util add-exit --address=
--web3url= --privatekey= - contract-util (-h | --help) - -Options: - -u, --dburl= Postgresql db url - -a, --address=
Smart Contract address - -w, --web3url= Web3 url - -p, --privatekey= The contract state admin private key - -About: - Utilities for interacting with the Althea exit database contract".to_string() -} - -fn clients_to_ids(client_list: Vec) -> Vec { - let mut res = Vec::new(); - for c in client_list { - res.push(Identity { - mesh_ip: match c.mesh_ip.parse() { - Ok(a) => a, - Err(e) => { - error!("Cannot parse client {:?} mesh ip! with {}", c, e); - continue; - } - }, - eth_address: match c.eth_address.parse() { - Ok(a) => a, - Err(e) => { - error!("Cannot parse client {:?} eth addr! with {}", c, e); - continue; - } - }, - wg_public_key: match c.wg_pubkey.parse() { - Ok(a) => a, - Err(e) => { - error!("Cannot parse client {:?} wg key! with {}", c, e); - continue; - } - }, - nickname: None, - }); - } - res -} diff --git a/rita_db_migration/Cargo.toml b/rita_db_migration/Cargo.toml deleted file mode 100644 index 605817794..000000000 --- a/rita_db_migration/Cargo.toml +++ /dev/null @@ -1,20 +0,0 @@ -[package] -name = "rita_db_migration" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -r2d2 = "0.8" -diesel = { version = "1.4", features = ["postgres", "r2d2"] } -log = { version = "0.4", features = ["release_max_level_info"] } -dotenv = "0.15" -althea_types = { path = "../althea_types" } -serde = "1.0" -serde_derive = "1.0" -serde_json = "1.0" -exit_trust_root = { path = "../exit_trust_root" } -clarity = "1.4" -web30 = "1.4" -crossbeam = "0.8" \ No newline at end of file diff --git a/rita_db_migration/src/error.rs b/rita_db_migration/src/error.rs deleted file mode 100644 index 08e4d7c75..000000000 --- a/rita_db_migration/src/error.rs +++ /dev/null @@ -1,19 +0,0 @@ -use std::{ - error::Error, - fmt::{Display, Formatter, Result as FmtResult}, -}; - -#[derive(Debug)] -pub enum RitaDBMigrationError { - MiscStringError(String), -} - -impl Display for RitaDBMigrationError { - fn fmt(&self, f: &mut Formatter) -> FmtResult { - match self { - RitaDBMigrationError::MiscStringError(a) => write!(f, "{a}",), - } - } -} - -impl Error for RitaDBMigrationError {} diff --git a/rita_db_migration/src/lib.rs b/rita_db_migration/src/lib.rs deleted file mode 100644 index 8e1e5a038..000000000 --- a/rita_db_migration/src/lib.rs +++ /dev/null @@ -1,145 +0,0 @@ -#[macro_use] -extern crate log; -#[macro_use] -extern crate diesel; -#[macro_use] -extern crate serde_derive; - -pub mod error; -pub mod models; -pub mod schema; - -use std::{collections::HashSet, sync::Arc, time::Duration}; - -use crate::schema::clients::dsl::clients; -use althea_types::Identity; -use clarity::Address; -use crossbeam::queue::SegQueue; -use diesel::{r2d2::ConnectionManager, PgConnection, RunQueryDsl}; -use error::RitaDBMigrationError; -use exit_trust_root::{ - client_db::get_all_registered_clients, register_client_batch_loop::RegistrationRequest, -}; -use models::Client; -use r2d2::PooledConnection; -use web30::client::Web3; - -const WEB3_TIMEOUT: Duration = Duration::from_secs(60); - -pub async fn start_db_migration( - db_url: String, - web3_url: String, - requester_address: Address, - db_addr: Address, - reg_queue: Arc>, -) -> Result<(), RitaDBMigrationError> { - // Validate that db_url and contract_addr are valid - if !(db_url.contains("postgres://") - || db_url.contains("postgresql://") - || db_url.contains("psql://")) - { - panic!("You must provide a valid postgressql database uri!"); - } - - let db_conn = get_database_connection(db_url)?; - - if let Ok(clients_list) = clients.load::(&db_conn) { - info!( - "Recieved a valid client list with {} entries", - clients_list.len() - ); - - let contact = Web3::new(&web3_url, WEB3_TIMEOUT); - add_clients_to_reg_queue( - clients_list, - &contact, - requester_address, - db_addr, - reg_queue, - ) - .await - } else { - return Err(RitaDBMigrationError::MiscStringError( - "Unable to get db clients".to_string(), - )); - } - - Ok(()) -} - -async fn add_clients_to_reg_queue( - client_list: Vec, - contact: &Web3, - requester_address: Address, - contract: Address, - reg_queue: Arc>, -) { - let existing_users: HashSet = - match get_all_registered_clients(contact, requester_address, contract).await { - Ok(a) => HashSet::from_iter(a.iter().cloned()), - Err(e) => { - error!( - "Failed to get a list of existing users with {}!. Trying to add all users", - e - ); - HashSet::new() - } - }; - - for c in client_list { - let id = Identity { - mesh_ip: match c.mesh_ip.parse() { - Ok(a) => a, - Err(e) => { - error!("Cannot parse client {:?} mesh ip! with {}", c, e); - continue; - } - }, - eth_address: match c.eth_address.parse() { - Ok(a) => a, - Err(e) => { - error!("Cannot parse client {:?} eth addr! with {}", c, e); - continue; - } - }, - wg_public_key: match c.wg_pubkey.parse() { - Ok(a) => a, - Err(e) => { - error!("Cannot parse client {:?} wg key! with {}", c, e); - continue; - } - }, - nickname: None, - }; - - if !existing_users.contains(&id) { - info!("Adding user {}", id.mesh_ip); - reg_queue.push(RegistrationRequest { - identity: id, - contract, - }); - } else { - warn!("User {} already exists!", id.mesh_ip); - } - } -} - -pub fn get_database_connection( - db_url: String, -) -> Result>, RitaDBMigrationError> { - let manager = ConnectionManager::new(db_url); - let pool = r2d2::Pool::builder() - .max_size(1) - .build(manager) - .expect("Failed to create pool."); - - match pool.try_get() { - Some(connection) => Ok(connection), - None => { - error!("No available db connection!"); - Err(RitaDBMigrationError::MiscStringError( - "No Database connection available!".to_string(), - )) - } - } -} diff --git a/rita_db_migration/src/models.rs b/rita_db_migration/src/models.rs deleted file mode 100644 index fb9c3538b..000000000 --- a/rita_db_migration/src/models.rs +++ /dev/null @@ -1,37 +0,0 @@ -#![allow(clippy::extra_unused_lifetimes)] -use crate::schema::{assigned_ips, clients}; - -#[derive(Queryable, Serialize, Deserialize, Debug, Insertable, Clone, Default)] -#[table_name = "clients"] -pub struct Client { - pub mesh_ip: String, - pub wg_pubkey: String, - pub wg_port: i32, - pub eth_address: String, - pub internal_ip: String, - pub internet_ipv6: String, - pub nickname: String, - pub email: String, - pub phone: String, - pub country: String, - pub email_code: String, - pub verified: bool, - pub email_sent_time: i64, - pub text_sent: i32, - pub last_seen: i64, - pub last_balance_warning_time: i64, -} - -/// This struct holds information about the ipv6 subnets being assigned to clients who connect. -/// The vector available subnets is a stack that has a list of available subnets to use. This stack gets populated whenever -/// a client gets removed from the database. It is stored as a string of indecies, for example, "1,24,36" -/// The iterative index stores the index at which we assign a subnet to a client -/// For example, if our exit subnet is fd00::1000/120 and our client subnets are /124, index 0 represents -/// fd00::1000/124 index 1 represents fd00::1010/124, 2 is fd00::1120/124 etc... -#[derive(Queryable, Serialize, Deserialize, Debug, Insertable, Clone, Default)] -#[table_name = "assigned_ips"] -pub struct AssignedIps { - pub subnet: String, - pub available_subnets: String, - pub iterative_index: i64, -} diff --git a/rita_db_migration/src/schema.rs b/rita_db_migration/src/schema.rs deleted file mode 100644 index d8470b758..000000000 --- a/rita_db_migration/src/schema.rs +++ /dev/null @@ -1,28 +0,0 @@ -table! { - clients (mesh_ip) { - mesh_ip -> Varchar, - wg_pubkey -> Varchar, - wg_port -> Int4, - eth_address -> Varchar, - internal_ip -> Varchar, - internet_ipv6 -> Varchar, - nickname -> Varchar, - email -> Varchar, - phone -> Varchar, - country -> Varchar, - email_code -> Varchar, - verified -> Bool, - email_sent_time -> Int8, - text_sent -> Int4, - last_seen -> Int8, - last_balance_warning_time -> Int8, - } -} - -table! { - assigned_ips (subnet) { - subnet -> Varchar, - available_subnets -> Varchar, - iterative_index -> Int8, - } -} diff --git a/scripts/integration_tests/all-up-test-ci.sh b/scripts/integration_tests/all-up-test-ci.sh index 9fabfaefa..b1cd9ccb7 100644 --- a/scripts/integration_tests/all-up-test-ci.sh +++ b/scripts/integration_tests/all-up-test-ci.sh @@ -12,11 +12,6 @@ sudo apt install -y sudo \ jq \ vim \ netcat-traditional \ - default-libmysqlclient-dev \ - libsqlite3-dev \ - postgresql-client-14 \ - postgresql-server-dev-14 \ - libpq-dev \ python3-pip \ bridge-utils \ wireguard \ diff --git a/test_runner/src/main.rs b/test_runner/src/main.rs index 9dadf0a9f..869ddf059 100644 --- a/test_runner/src/main.rs +++ b/test_runner/src/main.rs @@ -1,5 +1,4 @@ use integration_tests::contract_test::run_altheadb_contract_test; -use integration_tests::db_migration_test::run_db_migration_test; use integration_tests::debts::run_debts_test; /// Binary crate for actually running the integration tests use integration_tests::five_nodes::run_five_node_test_scenario; @@ -50,8 +49,6 @@ async fn main() { run_multi_exit_test().await } else if test_type == "CONTRACT_TEST" { run_altheadb_contract_test().await - } else if test_type == "MIGRATION_TEST" || test_type == "DB_MIGRATION" { - run_db_migration_test().await } else { panic!("Error unknown test type {}!", test_type); } From 21b50f8dee15c85f30806fb4922e169fdf10eac3 Mon Sep 17 00:00:00 2001 From: Justin Kilpatrick Date: Wed, 4 Dec 2024 20:18:42 -0500 Subject: [PATCH 4/4] Cargo audit deps updates --- Cargo.lock | 695 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 469 insertions(+), 226 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 626203e40..3d4442947 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -90,7 +90,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -130,7 +130,7 @@ dependencies = [ "futures-core", "futures-util", "mio", - "socket2 0.5.7", + "socket2 0.5.8", "tokio", "tracing", ] @@ -157,7 +157,7 @@ dependencies = [ "actix-utils", "futures-core", "http 0.2.12", - "http 1.1.0", + "http 1.2.0", "impl-more", "openssl", "pin-project-lite", @@ -213,7 +213,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "smallvec", - "socket2 0.5.7", + "socket2 0.5.8", "time", "url", ] @@ -245,7 +245,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -271,7 +271,7 @@ checksum = "b6ac1e58cded18cb28ddc17143c4dea5345b3ad575e14f32f66e4054a56eb271" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -387,9 +387,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -402,36 +402,36 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -468,9 +468,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.90" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37bf3594c4c988a53154954629820791dde498571819ae4ca50ca811e060cc95" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" [[package]] name = "arrayvec" @@ -500,7 +500,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -511,7 +511,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -577,15 +577,15 @@ dependencies = [ [[package]] name = "axum" -version = "0.7.7" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "http-body-util", "itoa", @@ -596,7 +596,7 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower 0.5.1", "tower-layer", "tower-service", @@ -611,13 +611,13 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "http-body-util", "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", ] @@ -761,9 +761,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" dependencies = [ "borsh-derive", "cfg_aliases 0.2.1", @@ -771,16 +771,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" dependencies = [ "once_cell", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.79", - "syn_derive", + "syn 2.0.90", ] [[package]] @@ -819,9 +818,9 @@ checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "bytestring" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72" +checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f" dependencies = [ "bytes", ] @@ -834,9 +833,9 @@ checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b" [[package]] name = "cc" -version = "1.1.30" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945" +checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" dependencies = [ "jobserver", "libc", @@ -874,9 +873,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "69371e34337c4c984bbe322360c2547210bf632eb2814bbe78a6e87a2935bd2b" dependencies = [ "clap_builder", "clap_derive", @@ -884,9 +883,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "6e24c1b4099818523236a8ca881d2b45db98dadfb4625cf6608c12069fcbbde1" dependencies = [ "anstream", "anstyle", @@ -903,14 +902,14 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "clarity" @@ -946,9 +945,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "compressed_log" @@ -985,6 +984,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1004,9 +1013,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -1149,7 +1158,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -1204,7 +1213,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -1218,6 +1227,17 @@ dependencies = [ "subtle", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "docopt" version = "1.1.1" @@ -1263,9 +1283,9 @@ checksum = "e079f19b08ca6239f47f8ba8509c11cf3ea30095831f7fed61441475edd8c449" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -1301,12 +1321,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1346,9 +1366,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "fiat-crypto" @@ -1364,9 +1384,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "miniz_oxide", @@ -1470,7 +1490,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -1572,7 +1592,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.6.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -1581,17 +1601,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.6.0", + "http 1.2.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -1629,9 +1649,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "heck" @@ -1639,12 +1659,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hex-conservative" version = "0.2.1" @@ -1693,9 +1707,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -1709,7 +1723,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.2.0", ] [[package]] @@ -1720,7 +1734,7 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "pin-project-lite", ] @@ -1745,15 +1759,15 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.7", + "http 1.2.0", "http-body", "httparse", "httpdate", @@ -1766,9 +1780,9 @@ dependencies = [ [[package]] name = "hyper-timeout" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ "hyper", "hyper-util", @@ -1779,23 +1793,141 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "hyper", "pin-project-lite", - "socket2 0.5.7", + "socket2 0.5.8", "tokio", "tower-service", "tracing", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "idna" version = "0.3.0" @@ -1808,12 +1940,23 @@ dependencies = [ [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -1834,12 +1977,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.2", ] [[package]] @@ -1942,9 +2085,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jemalloc-sys" @@ -2023,9 +2166,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.161" +version = "0.2.167" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" [[package]] name = "libsodium-sys" @@ -2051,6 +2194,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" + [[package]] name = "local-channel" version = "0.1.5" @@ -2172,11 +2321,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi", "libc", "log", "wasi", @@ -2195,7 +2343,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -2402,7 +2550,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -2413,9 +2561,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.3.2+3.3.2" +version = "300.4.1+3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" +checksum = "faa4eac4138c62414b5622d1b31c5c304f34b406b013c079c2bbc652fdd6678c" dependencies = [ "cc", ] @@ -2520,7 +2668,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -2541,7 +2689,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.6.0", + "indexmap 2.7.0", ] [[package]] @@ -2567,29 +2715,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -2638,34 +2786,11 @@ dependencies = [ "toml_edit", ] -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - [[package]] name = "proc-macro2" -version = "1.0.88" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -2690,7 +2815,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -2804,9 +2929,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -2816,9 +2941,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -3120,9 +3245,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags 2.6.0", "errno", @@ -3133,9 +3258,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.15" +version = "0.23.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" +checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" dependencies = [ "log", "once_cell", @@ -3148,15 +3273,14 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.0.1", ] [[package]] @@ -3217,18 +3341,18 @@ dependencies = [ [[package]] name = "scc" -version = "2.2.2" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c1f7fc6deb21665a9060dfc7d271be784669295a31babdcd4dd2c79ae8cbfb" +checksum = "66b202022bb57c049555430e11fc22fea12909276a80a4c3d368da36ac1d88ed" dependencies = [ "sdd", ] [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -3287,7 +3411,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -3295,9 +3432,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -3311,9 +3448,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -3330,20 +3467,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] name = "serde_json" -version = "1.0.129" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbcf9b78a125ee667ae19388837dd12294b858d101fdd393cb9d5501ef09eb2" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "itoa", "memchr", @@ -3374,9 +3511,9 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" +checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" dependencies = [ "futures 0.3.31", "log", @@ -3388,13 +3525,13 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" +checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -3504,9 +3641,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -3530,6 +3667,12 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "strsim" version = "0.10.0" @@ -3561,7 +3704,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -3583,27 +3726,15 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.79", -] - [[package]] name = "sync_wrapper" version = "0.1.2" @@ -3612,9 +3743,20 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] [[package]] name = "tap" @@ -3624,12 +3766,12 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", - "fastrand 2.1.1", + "fastrand 2.2.0", "once_cell", "rustix", "windows-sys 0.59.0", @@ -3657,29 +3799,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -3698,14 +3840,24 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -3723,9 +3875,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", "bytes", @@ -3734,7 +3886,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.7", + "socket2 0.5.8", "tokio-macros", "windows-sys 0.52.0", ] @@ -3747,7 +3899,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] @@ -3785,9 +3937,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -3832,7 +3984,7 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", @@ -3851,8 +4003,8 @@ dependencies = [ "base64 0.22.1", "bytes", "flate2", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.7", + "http 1.2.0", "http-body", "http-body-util", "hyper", @@ -3863,7 +4015,7 @@ dependencies = [ "prost", "rustls-native-certs", "rustls-pemfile", - "socket2 0.5.7", + "socket2 0.5.8", "tokio", "tokio-rustls", "tokio-stream", @@ -3921,9 +4073,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -3933,20 +4085,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", ] @@ -3977,9 +4129,9 @@ checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" @@ -4008,15 +4160,27 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna 1.0.3", "percent-encoding", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -4216,6 +4380,18 @@ dependencies = [ "memchr", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "wyz" version = "0.5.1" @@ -4225,6 +4401,30 @@ dependencies = [ "tap", ] +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -4243,7 +4443,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.90", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", + "synstructure", ] [[package]] @@ -4252,6 +4473,28 @@ version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "zstd" version = "0.13.2"