From e77b394eb5e7485c3f919f72f479456f0da956bb Mon Sep 17 00:00:00 2001 From: jwinterm Date: Thu, 4 Jun 2026 13:26:58 -0400 Subject: [PATCH] Build against grin 5.4.0 and the deps-merged contracts branch Fixes mwixnet#32 (no longer builds on current Rust). The grin node deps move to the 5.4.0 release crates; grin-wallet points at jwinterm/grin-wallet contracts work pinned by revision. Drops unused grin_servers/chain/p2p from the main build (grin_servers isn't published). - Cargo.toml: grin_* -> 5.4.0; grin_wallet_* -> contracts fork (rev-pinned). - secp::random_secret now takes use_test_rng; pass false at all call sites. - create_onion / ComSignature::sign take a use_test_rng bool; pass false in tests. - Test modules reference the file-level onion alias via super::grin_onion. - tests/e2e.rs (boots a real node+miner) gated behind a new `integration` feature so a default `cargo test` runs the unit suite (18 tests) without a node. --- Cargo.lock | 1102 +++++++++++++++++++++------------------ Cargo.toml | 40 +- src/bin/mwixnet.rs | 2 +- src/config.rs | 6 +- src/mix_client.rs | 8 +- src/node.rs | 2 +- src/servers/mix.rs | 15 +- src/servers/swap.rs | 126 ++--- src/servers/swap_rpc.rs | 20 +- src/store.rs | 6 +- src/tx.rs | 8 +- src/wallet.rs | 10 +- tests/e2e.rs | 4 + 13 files changed, 715 insertions(+), 634 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1fd90f2..f498256 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 = "addr2line" @@ -137,8 +137,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "759dcbfaf94d838367a86d493ec34ccc8aa6fe365cb7880d6bf89006de24d9c1" dependencies = [ "amplify_syn", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "syn 1.0.109", ] @@ -157,17 +157,11 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7736fb8d473c0d83098b5bac44df6a561e20470375cd8bcae30516dc889fd62a" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "syn 1.0.109", ] -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -192,12 +186,6 @@ version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" -[[package]] -name = "arc-swap" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dabe5a181f83789739c194cbe5a897dde195078fac08568d09221fd6137a7ba8" - [[package]] name = "arc-swap" version = "1.6.0" @@ -228,7 +216,7 @@ dependencies = [ "cfg-if 1.0.0", "derive-deftly", "derive_builder_fork_arti", - "derive_more", + "derive_more 0.99.17", "educe", "fs-mistrust", "futures 0.3.29", @@ -238,7 +226,7 @@ dependencies = [ "postage", "safelog", "serde", - "thiserror", + "thiserror 1.0.30", "tor-async-utils", "tor-basic-utils", "tor-chanmgr", @@ -273,7 +261,7 @@ dependencies = [ "educe", "hyper 0.14.28", "pin-project", - "thiserror", + "thiserror 1.0.30", "tls-api", "tls-api-native-tls", "tokio 1.37.0", @@ -433,7 +421,7 @@ checksum = "9343dc5acf07e79ff82d0c37899f079db3534d99f189a1837c8e549c99405bec" dependencies = [ "futures-util", "native-tls", - "thiserror", + "thiserror 1.0.30", "url", ] @@ -499,6 +487,28 @@ dependencies = [ "wasm-bindgen-futures", ] +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite 0.2.13", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", +] + [[package]] name = "async-task" version = "4.6.0" @@ -511,9 +521,9 @@ version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -623,12 +633,6 @@ dependencies = [ "safemem", ] -[[package]] -name = "base64" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" - [[package]] name = "base64" version = "0.12.3" @@ -717,9 +721,9 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0b121a9fe0df916e362fb3271088d071159cdf11db0e4182d02152850756eff" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -917,17 +921,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits 0.2.17", "serde", "wasm-bindgen", - "windows-targets 0.48.5", + "windows-link", ] [[package]] @@ -963,7 +966,7 @@ dependencies = [ "textwrap", "unicode-width", "vec_map", - "yaml-rust 0.3.5", + "yaml-rust", ] [[package]] @@ -1019,32 +1022,16 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b" -[[package]] -name = "core-foundation" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" -dependencies = [ - "core-foundation-sys 0.7.0", - "libc", -] - [[package]] name = "core-foundation" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ - "core-foundation-sys 0.8.6", + "core-foundation-sys", "libc", ] -[[package]] -name = "core-foundation-sys" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" - [[package]] name = "core-foundation-sys" version = "0.8.6" @@ -1184,15 +1171,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "ct-logs" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d3686f5fa27dbc1d76c751300376e167c5a43387f44bb451fd1c24776e49113" -dependencies = [ - "sct", -] - [[package]] name = "ctr" version = "0.9.2" @@ -1261,9 +1239,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -1313,8 +1291,8 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "strsim 0.10.0", "syn 1.0.109", ] @@ -1327,8 +1305,8 @@ checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "strsim 0.10.0", "syn 1.0.109", ] @@ -1341,10 +1319,10 @@ checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "strsim 0.10.0", - "syn 2.0.39", + "syn 2.0.117", ] [[package]] @@ -1354,7 +1332,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ "darling_core 0.13.4", - "quote 1.0.33", + "quote 1.0.45", "syn 1.0.109", ] @@ -1365,7 +1343,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core 0.14.4", - "quote 1.0.33", + "quote 1.0.45", "syn 1.0.109", ] @@ -1376,8 +1354,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ "darling_core 0.20.8", - "quote 1.0.33", - "syn 2.0.39", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -1439,8 +1417,8 @@ dependencies = [ "heck 0.4.1", "itertools 0.10.5", "proc-macro-crate 1.3.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "sha3 0.10.8", "strum 0.25.0", "syn 1.0.109", @@ -1467,11 +1445,11 @@ dependencies = [ "indexmap 2.1.0", "itertools 0.12.0", "proc-macro-crate 3.1.0", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "sha3 0.10.8", "strum 0.26.2", - "syn 2.0.39", + "syn 2.0.117", "void", ] @@ -1482,8 +1460,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24c1b715c79be6328caa9a5e1a387a196ea503740f0722ec3dd8f67a9e72314d" dependencies = [ "darling 0.14.4", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "syn 1.0.109", ] @@ -1513,12 +1491,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "rustc_version", "syn 1.0.109", ] +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "proc-macro2 1.0.106", + "quote 1.0.45", + "rustc_version", + "syn 2.0.117", + "unicode-xid 0.2.6", +] + +[[package]] +name = "destructure_traitobject" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7" + [[package]] name = "digest" version = "0.8.1" @@ -1627,9 +1633,9 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -1739,8 +1745,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "syn 1.0.109", ] @@ -1792,9 +1798,9 @@ checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee" dependencies = [ "num-bigint 0.4.4", "num-traits 0.2.17", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -2012,7 +2018,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0abed97648395c902868fee9026de96483933faa54ea3b40d652f7dfe61ca78" dependencies = [ - "thiserror", + "thiserror 1.0.30", ] [[package]] @@ -2064,20 +2070,10 @@ dependencies = [ "once_cell", "pwd-grp", "serde", - "thiserror", + "thiserror 1.0.30", "walkdir", ] -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi 0.3.9", -] - [[package]] name = "fs_at" version = "0.1.10" @@ -2119,7 +2115,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9267d03223dd8877b0a3f8341661d21b7ba6a18e90f60e92e550addd30bc32c7" dependencies = [ "fslock-arti-fork", - "thiserror", + "thiserror 1.0.30", "winapi 0.3.9", ] @@ -2254,9 +2250,9 @@ version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -2350,6 +2346,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "r-efi", + "wasip2", +] + [[package]] name = "gimli" version = "0.28.1" @@ -2389,10 +2397,12 @@ dependencies = [ [[package]] name = "grin_api" -version = "5.4.0-alpha.0" -source = "git+https://github.com/mimblewimble/grin?branch=master#845c41de13e9bdeb0f0b4667fbc7ef8be921a2f4" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f8d4159c8b006a921c0e98b34f1419c175127ee48519b8b1ad00b2036d5011" dependencies = [ - "bytes 0.5.6", + "async-stream", + "bytes 1.5.0", "easy-jsonrpc-mw", "futures 0.3.29", "grin_chain", @@ -2402,27 +2412,29 @@ dependencies = [ "grin_store", "grin_util", "http 0.2.11", - "hyper 0.13.10", - "hyper-rustls 0.20.0", + "hyper 0.14.28", + "hyper-rustls 0.23.2", "hyper-timeout", "lazy_static", "log", "regex", "ring 0.16.20", - "rustls 0.17.0", + "rustls 0.20.9", + "rustls-pemfile", "serde", "serde_derive", "serde_json", - "thiserror", - "tokio 0.2.25", - "tokio-rustls 0.13.1", + "thiserror 1.0.30", + "tokio 1.37.0", + "tokio-rustls 0.23.4", "url", ] [[package]] name = "grin_chain" -version = "5.4.0-alpha.0" -source = "git+https://github.com/mimblewimble/grin?branch=master#845c41de13e9bdeb0f0b4667fbc7ef8be921a2f4" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ae4110494f8864a7acaa95a6565cea73a769203353d33afa2491a0303ef5e96" dependencies = [ "bit-vec", "bitflags 1.3.2", @@ -2439,13 +2451,14 @@ dependencies = [ "lru-cache", "serde", "serde_derive", - "thiserror", + "thiserror 1.0.30", ] [[package]] name = "grin_core" -version = "5.4.0-alpha.0" -source = "git+https://github.com/mimblewimble/grin?branch=master#845c41de13e9bdeb0f0b4667fbc7ef8be921a2f4" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f7959afef3976c8530f39416364dd8e47c24b20774a8c5432645fc70aeba67" dependencies = [ "blake2-rfc", "byteorder", @@ -2464,14 +2477,15 @@ dependencies = [ "serde", "serde_derive", "siphasher", - "thiserror", + "thiserror 1.0.30", "zeroize", ] [[package]] name = "grin_keychain" -version = "5.4.0-alpha.0" -source = "git+https://github.com/mimblewimble/grin?branch=master#845c41de13e9bdeb0f0b4667fbc7ef8be921a2f4" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4da89816a601ca89d9718aa3fac1ae933086d36790fb3b9d85a57b64ba20173f" dependencies = [ "blake2-rfc", "byteorder", @@ -2492,8 +2506,9 @@ dependencies = [ [[package]] name = "grin_p2p" -version = "5.4.0-alpha.0" -source = "git+https://github.com/mimblewimble/grin?branch=master#845c41de13e9bdeb0f0b4667fbc7ef8be921a2f4" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d8ee1812124b8843de27626c5e65f43eae7ca855eeb6060286c6b3f31880548" dependencies = [ "bitflags 1.3.2", "bytes 0.5.6", @@ -2514,8 +2529,9 @@ dependencies = [ [[package]] name = "grin_pool" -version = "5.4.0-alpha.0" -source = "git+https://github.com/mimblewimble/grin?branch=master#845c41de13e9bdeb0f0b4667fbc7ef8be921a2f4" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddce3861a8af1036d36746eeb80d5efc805587ab7dbc19d7bef13c127d567cc8" dependencies = [ "blake2-rfc", "chrono", @@ -2526,14 +2542,14 @@ dependencies = [ "rand 0.6.5", "serde", "serde_derive", - "thiserror", + "thiserror 1.0.30", ] [[package]] name = "grin_secp256k1zkp" -version = "0.7.14" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06832645c3d28079245827908045946db48e5d62b4c54b40701c7e21327e2571" +checksum = "bf7bb95f155b1eede2648a1b9afbba82bc3d9f2af0518b478767559a572bd973" dependencies = [ "arrayvec 0.7.4", "cc", @@ -2544,40 +2560,11 @@ dependencies = [ "zeroize", ] -[[package]] -name = "grin_servers" -version = "5.4.0-alpha.0" -source = "git+https://github.com/mimblewimble/grin?branch=master#845c41de13e9bdeb0f0b4667fbc7ef8be921a2f4" -dependencies = [ - "chrono", - "fs2", - "futures 0.3.29", - "grin_api", - "grin_chain", - "grin_core", - "grin_keychain", - "grin_p2p", - "grin_pool", - "grin_store", - "grin_util", - "http 0.2.11", - "hyper 0.13.10", - "hyper-rustls 0.20.0", - "lmdb-zero", - "log", - "rand 0.6.5", - "serde", - "serde_derive", - "serde_json", - "tokio 0.2.25", - "tokio-util 0.2.0", - "walkdir", -] - [[package]] name = "grin_store" -version = "5.4.0-alpha.0" -source = "git+https://github.com/mimblewimble/grin?branch=master#845c41de13e9bdeb0f0b4667fbc7ef8be921a2f4" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6d8762c27886d4dbeeae187e761bafef84e099096f0da4987d96dba7192e33" dependencies = [ "byteorder", "croaring", @@ -2590,14 +2577,16 @@ dependencies = [ "serde", "serde_derive", "tempfile", - "thiserror", + "thiserror 1.0.30", ] [[package]] name = "grin_util" -version = "5.4.0-alpha.0" -source = "git+https://github.com/mimblewimble/grin?branch=master#845c41de13e9bdeb0f0b4667fbc7ef8be921a2f4" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ecf6160820c449a0d5a2f856cd8d9b0bacf1fff4a09785cf2b6762d9475a6a" dependencies = [ + "anyhow", "backtrace", "base64 0.12.3", "byteorder", @@ -2616,8 +2605,8 @@ dependencies = [ [[package]] name = "grin_wallet_api" -version = "5.4.0-contracts.0" -source = "git+https://github.com/mimblewimble/grin-wallet?branch=contracts#96b5d240bbc82df25e308ac5f90ec3b2b7b9fd94" +version = "5.4.0-alpha.1" +source = "git+https://github.com/jwinterm/grin-wallet?rev=ce779188b19e949e3837f80eeaf73c31f61e17c0#ce779188b19e949e3837f80eeaf73c31f61e17c0" dependencies = [ "base64 0.12.3", "chrono", @@ -2641,8 +2630,8 @@ dependencies = [ [[package]] name = "grin_wallet_config" -version = "5.4.0-contracts.0" -source = "git+https://github.com/mimblewimble/grin-wallet?branch=contracts#96b5d240bbc82df25e308ac5f90ec3b2b7b9fd94" +version = "5.4.0-alpha.1" +source = "git+https://github.com/jwinterm/grin-wallet?rev=ce779188b19e949e3837f80eeaf73c31f61e17c0#ce779188b19e949e3837f80eeaf73c31f61e17c0" dependencies = [ "dirs 2.0.2", "grin_core", @@ -2656,11 +2645,12 @@ dependencies = [ [[package]] name = "grin_wallet_controller" -version = "5.4.0-contracts.0" -source = "git+https://github.com/mimblewimble/grin-wallet?branch=contracts#96b5d240bbc82df25e308ac5f90ec3b2b7b9fd94" +version = "5.4.0-alpha.1" +source = "git+https://github.com/jwinterm/grin-wallet?rev=ce779188b19e949e3837f80eeaf73c31f61e17c0#ce779188b19e949e3837f80eeaf73c31f61e17c0" dependencies = [ "chrono", "easy-jsonrpc-mw", + "ed25519-dalek 1.0.1", "futures 0.3.29", "grin_api", "grin_core", @@ -2671,7 +2661,7 @@ dependencies = [ "grin_wallet_impls", "grin_wallet_libwallet", "grin_wallet_util", - "hyper 0.13.10", + "hyper 0.14.28", "lazy_static", "log", "prettytable-rs", @@ -2682,7 +2672,7 @@ dependencies = [ "serde_derive", "serde_json", "term 0.6.1", - "thiserror", + "thiserror 1.0.30", "tokio 0.2.25", "url", "uuid", @@ -2690,8 +2680,8 @@ dependencies = [ [[package]] name = "grin_wallet_impls" -version = "5.4.0-contracts.0" -source = "git+https://github.com/mimblewimble/grin-wallet?branch=contracts#96b5d240bbc82df25e308ac5f90ec3b2b7b9fd94" +version = "5.4.0-alpha.1" +source = "git+https://github.com/jwinterm/grin-wallet?rev=ce779188b19e949e3837f80eeaf73c31f61e17c0#ce779188b19e949e3837f80eeaf73c31f61e17c0" dependencies = [ "base64 0.12.3", "blake2-rfc", @@ -2719,7 +2709,7 @@ dependencies = [ "serde_derive", "serde_json", "sysinfo", - "thiserror", + "thiserror 1.0.30", "timer", "tokio 0.2.25", "url", @@ -2729,8 +2719,8 @@ dependencies = [ [[package]] name = "grin_wallet_libwallet" -version = "5.4.0-contracts.0" -source = "git+https://github.com/mimblewimble/grin-wallet?branch=contracts#96b5d240bbc82df25e308ac5f90ec3b2b7b9fd94" +version = "5.4.0-alpha.1" +source = "git+https://github.com/jwinterm/grin-wallet?rev=ce779188b19e949e3837f80eeaf73c31f61e17c0#ce779188b19e949e3837f80eeaf73c31f61e17c0" dependencies = [ "age", "base64 0.9.3", @@ -2744,7 +2734,6 @@ dependencies = [ "ed25519-dalek 1.0.1", "grin_core", "grin_keychain", - "grin_secp256k1zkp", "grin_store", "grin_util", "grin_wallet_config", @@ -2763,15 +2752,15 @@ dependencies = [ "sha2 0.10.8", "strum 0.18.0", "strum_macros 0.18.0", - "thiserror", + "thiserror 1.0.30", "uuid", "x25519-dalek 0.6.0", ] [[package]] name = "grin_wallet_util" -version = "5.4.0-contracts.0" -source = "git+https://github.com/mimblewimble/grin-wallet?branch=contracts#96b5d240bbc82df25e308ac5f90ec3b2b7b9fd94" +version = "5.4.0-alpha.1" +source = "git+https://github.com/jwinterm/grin-wallet?rev=ce779188b19e949e3837f80eeaf73c31f61e17c0#ce779188b19e949e3837f80eeaf73c31f61e17c0" dependencies = [ "data-encoding", "ed25519-dalek 1.0.1", @@ -2780,7 +2769,7 @@ dependencies = [ "serde", "serde_derive", "sha3 0.8.2", - "thiserror", + "thiserror 1.0.30", ] [[package]] @@ -2826,6 +2815,25 @@ dependencies = [ "tracing-futures", ] +[[package]] +name = "h2" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +dependencies = [ + "bytes 1.5.0", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.11", + "indexmap 2.1.0", + "slab", + "tokio 1.37.0", + "tokio-util 0.7.10", + "tracing", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -3050,7 +3058,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", + "h2 0.2.7", "http 0.2.11", "http-body 0.3.1", "httparse", @@ -3074,6 +3082,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", + "h2 0.3.27", "http 0.2.11", "http-body 0.4.5", "httparse", @@ -3102,24 +3111,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac965ea399ec3a25ac7d13b8affd4b8f39325cca00858ddf5eb29b79e6b14b08" -dependencies = [ - "bytes 0.5.6", - "ct-logs", - "futures-util", - "hyper 0.13.10", - "log", - "rustls 0.17.0", - "rustls-native-certs", - "tokio 0.2.25", - "tokio-rustls 0.13.1", - "webpki 0.21.4", -] - [[package]] name = "hyper-rustls" version = "0.21.0" @@ -3137,14 +3128,29 @@ dependencies = [ ] [[package]] -name = "hyper-timeout" -version = "0.3.1" +name = "hyper-rustls" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d1f9b0b8258e3ef8f45928021d3ef14096c2b93b99e4b8cfcabf1f58ec84b0a" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" dependencies = [ - "bytes 0.5.6", - "hyper 0.13.10", - "tokio 0.2.25", + "http 0.2.11", + "hyper 0.14.28", + "log", + "rustls 0.20.9", + "rustls-native-certs", + "tokio 1.37.0", + "tokio-rustls 0.23.4", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper 0.14.28", + "pin-project-lite 0.2.13", + "tokio 1.37.0", "tokio-io-timeout", ] @@ -3206,7 +3212,7 @@ dependencies = [ "log", "serde", "serde_derive", - "thiserror", + "thiserror 1.0.30", "toml 0.8.8", "unic-langid", ] @@ -3217,7 +3223,7 @@ version = "0.13.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92a86226a7a16632de6723449ee5fe70bac5af718bc642ee9ca2f0f6e14fa1fa" dependencies = [ - "arc-swap 1.6.0", + "arc-swap", "fluent", "fluent-langneg", "fluent-syntax", @@ -3227,7 +3233,7 @@ dependencies = [ "log", "parking_lot 0.12.1", "rust-embed", - "thiserror", + "thiserror 1.0.30", "unic-langid", "walkdir", ] @@ -3246,10 +3252,10 @@ dependencies = [ "i18n-embed", "lazy_static", "proc-macro-error", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "strsim 0.10.0", - "syn 2.0.39", + "syn 2.0.117", "unic-langid", ] @@ -3261,9 +3267,9 @@ checksum = "81093c4701672f59416582fe3145676126fd23ba5db910acad0793c1108aaa58" dependencies = [ "find-crate", "i18n-config", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -3273,7 +3279,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ "android_system_properties", - "core-foundation-sys 0.8.6", + "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", @@ -3490,8 +3496,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b939a78fa820cdfcb7ee7484466746a7377760970f6f9c6fe19f9edcc8a38d2" dependencies = [ "proc-macro-crate 0.1.5", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "syn 1.0.109", ] @@ -3578,9 +3584,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.153" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "liblmdb-sys" @@ -3671,11 +3677,11 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a" dependencies = [ - "serde", + "serde_core", "value-bag", ] @@ -3687,26 +3693,31 @@ checksum = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7" [[package]] name = "log4rs" -version = "0.12.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4d8e6e1d5f89acca713132acc6034f30bad09b961d1338161bdb71c08f6e4fa" +checksum = "3e947bb896e702c711fccc2bf02ab2abb6072910693818d1d6b07ee2b9dfd86c" dependencies = [ - "arc-swap 0.4.8", + "anyhow", + "arc-swap", "chrono", + "derive_more 2.1.1", "flate2", "fnv", - "humantime 1.3.0", + "humantime 2.1.0", "libc", "log", "log-mdc", - "parking_lot 0.10.2", + "mock_instant", + "parking_lot 0.12.1", + "rand 0.9.4", "serde", - "serde-value 0.6.0", - "serde_derive", + "serde-value", "serde_json", "serde_yaml", + "thiserror 2.0.18", "thread-id", - "typemap", + "typemap-ors", + "unicode-segmentation", "winapi 0.3.9", ] @@ -3890,6 +3901,12 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "mock_instant" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce6dd36094cac388f119d2e9dc82dc730ef91c32a6222170d630e5414b956e6" + [[package]] name = "mwixnet" version = "0.1.0" @@ -3912,12 +3929,9 @@ dependencies = [ "function_name", "futures 0.3.29", "grin_api", - "grin_chain", "grin_core", "grin_keychain", - "grin_p2p", "grin_secp256k1zkp", - "grin_servers", "grin_store", "grin_util", "grin_wallet_api", @@ -3945,7 +3959,7 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.30", "tls-api", "tls-api-native-tls", "tokio 1.37.0", @@ -3972,8 +3986,8 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework 2.9.2", - "security-framework-sys 2.9.1", + "security-framework", + "security-framework-sys", "tempfile", ] @@ -4201,9 +4215,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ "proc-macro-crate 3.1.0", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -4254,9 +4268,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -4283,15 +4297,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" -[[package]] -name = "ordered-float" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" -dependencies = [ - "num-traits 0.2.17", -] - [[package]] name = "ordered-float" version = "2.10.1" @@ -4516,9 +4521,9 @@ checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ "phf_generator", "phf_shared", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -4545,9 +4550,9 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -4665,7 +4670,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project", "static_assertions", - "thiserror", + "thiserror 1.0.30", ] [[package]] @@ -4748,8 +4753,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "syn 1.0.109", "version_check", ] @@ -4760,8 +4765,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "version_check", ] @@ -4771,14 +4776,14 @@ version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" dependencies = [ - "unicode-xid", + "unicode-xid 0.1.0", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -4792,7 +4797,7 @@ dependencies = [ "derive-adhoc", "libc", "paste", - "thiserror", + "thiserror 1.0.30", ] [[package]] @@ -4818,13 +4823,19 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ - "proc-macro2 1.0.70", + "proc-macro2 1.0.106", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "radium" version = "0.7.0" @@ -4887,6 +4898,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + [[package]] name = "rand_chacha" version = "0.1.1" @@ -4917,6 +4938,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + [[package]] name = "rand_core" version = "0.3.1" @@ -4950,6 +4981,15 @@ dependencies = [ "getrandom 0.2.11", ] +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + [[package]] name = "rand_hc" version = "0.1.0" @@ -5088,7 +5128,7 @@ checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ "getrandom 0.2.11", "libredox", - "thiserror", + "thiserror 1.0.30", ] [[package]] @@ -5311,10 +5351,10 @@ version = "6.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49b94b81e5b2c284684141a2fb9e2a31be90638caf040bf9afbc5a0416afe1ac" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "rust-embed-utils", - "syn 2.0.39", + "syn 2.0.117", "walkdir", ] @@ -5376,19 +5416,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "rustls" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0d4a31f5d68413404705d6982529b0e11a9aacd4839d1d6222ee3b8cb4015e1" -dependencies = [ - "base64 0.11.0", - "log", - "ring 0.16.20", - "sct", - "webpki 0.21.4", -] - [[package]] name = "rustls" version = "0.18.1" @@ -5398,10 +5425,22 @@ dependencies = [ "base64 0.12.3", "log", "ring 0.16.20", - "sct", + "sct 0.6.1", "webpki 0.21.4", ] +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct 0.7.1", + "webpki 0.22.4", +] + [[package]] name = "rustls" version = "0.23.5" @@ -5419,14 +5458,23 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.3.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75ffeb84a6bd9d014713119542ce415db3a3e4748f0bfce1e1416cd224a23a5" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls 0.17.0", + "rustls-pemfile", "schannel", - "security-framework 0.4.4", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.5", ] [[package]] @@ -5464,11 +5512,11 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ea892f8598a3682b6ed10ed9d8522b50366a792953eda37e1d9ddf01e183e3f" dependencies = [ - "derive_more", + "derive_more 0.99.17", "educe", "either", "fluid-let", - "thiserror", + "thiserror 1.0.30", ] [[package]] @@ -5542,6 +5590,16 @@ dependencies = [ "untrusted 0.7.1", ] +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + [[package]] name = "sec1" version = "0.7.3" @@ -5574,19 +5632,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "security-framework" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.7.0", - "core-foundation-sys 0.7.0", - "libc", - "security-framework-sys 0.4.3", -] - [[package]] name = "security-framework" version = "2.9.2" @@ -5594,20 +5639,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.4", - "core-foundation-sys 0.8.6", - "libc", - "security-framework-sys 2.9.1", -] - -[[package]] -name = "security-framework-sys" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405" -dependencies = [ - "core-foundation-sys 0.7.0", + "core-foundation", + "core-foundation-sys", "libc", + "security-framework-sys", ] [[package]] @@ -5616,7 +5651,7 @@ version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ - "core-foundation-sys 0.8.6", + "core-foundation-sys", "libc", ] @@ -5643,30 +5678,21 @@ checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.193" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ + "serde_core", "serde_derive", ] -[[package]] -name = "serde-value" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a65a7291a8a568adcae4c10a677ebcedbc6c9cec91c054dee2ce40b0e3290eb" -dependencies = [ - "ordered-float 1.1.1", - "serde", -] - [[package]] name = "serde-value" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" dependencies = [ - "ordered-float 2.10.1", + "ordered-float", "serde", ] @@ -5680,14 +5706,23 @@ dependencies = [ ] [[package]] -name = "serde_derive" -version = "1.0.193" +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -5767,8 +5802,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ "darling 0.13.4", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "syn 1.0.109", ] @@ -5779,21 +5814,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655" dependencies = [ "darling 0.20.8", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] name = "serde_yaml" -version = "0.8.26" +version = "0.9.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38" dependencies = [ - "indexmap 1.9.3", + "indexmap 2.1.0", + "itoa 1.0.9", "ryu", "serde", - "yaml-rust 0.4.5", + "unsafe-libyaml", ] [[package]] @@ -5905,7 +5941,7 @@ checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint 0.4.4", "num-traits 0.2.17", - "thiserror", + "thiserror 1.0.30", "time", ] @@ -6088,8 +6124,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" dependencies = [ "heck 0.3.3", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "syn 1.0.109", ] @@ -6100,10 +6136,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "rustversion", - "syn 2.0.39", + "syn 2.0.117", ] [[package]] @@ -6113,10 +6149,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "rustversion", - "syn 2.0.39", + "syn 2.0.117", ] [[package]] @@ -6139,7 +6175,7 @@ checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" dependencies = [ "proc-macro2 0.4.30", "quote 0.6.13", - "unicode-xid", + "unicode-xid 0.1.0", ] [[package]] @@ -6148,19 +6184,19 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.39" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "unicode-ident", ] @@ -6171,7 +6207,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd727fc423c2060f6c92d9534cef765c65a6ed3f428a03d7def74a8c4348e666" dependencies = [ "cfg-if 1.0.0", - "core-foundation-sys 0.8.6", + "core-foundation-sys", "libc", "ntapi", "once_cell", @@ -6254,7 +6290,16 @@ version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.30", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", ] [[package]] @@ -6263,20 +6308,30 @@ version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "syn 1.0.109", ] [[package]] -name = "thread-id" -version = "3.3.0" +name = "thiserror-impl" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", +] + +[[package]] +name = "thread-id" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2010d27add3f3240c1fef7959f46c814487b216baee662af53be645ba7831c07" dependencies = [ "libc", - "redox_syscall 0.1.57", - "winapi 0.3.9", + "windows-sys 0.61.2", ] [[package]] @@ -6363,7 +6418,7 @@ dependencies = [ "log", "pem", "tempfile", - "thiserror", + "thiserror 1.0.30", "tokio 1.37.0", "void", "webpki 0.22.4", @@ -6377,7 +6432,7 @@ checksum = "7b935bda2458120a5d2cea542013796fcf13937566580027f6a08f42a52206f7" dependencies = [ "anyhow", "native-tls", - "thiserror", + "thiserror 1.0.30", "tls-api", "tls-api-test", "tokio 1.37.0", @@ -6445,12 +6500,12 @@ dependencies = [ [[package]] name = "tokio-io-timeout" -version = "0.4.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9390a43272c8a6ac912ed1d1e2b6abeafd5047e05530a2fa304deee041a06215" +checksum = "0bd86198d9ee903fedd2f9a2e72014287c0d9167e4ae43b5853007205dda1b76" dependencies = [ - "bytes 0.5.6", - "tokio 0.2.25", + "pin-project-lite 0.2.13", + "tokio 1.37.0", ] [[package]] @@ -6459,8 +6514,8 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.106", + "quote 1.0.45", "syn 1.0.109", ] @@ -6470,9 +6525,9 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -6485,18 +6540,6 @@ dependencies = [ "tokio 1.37.0", ] -[[package]] -name = "tokio-rustls" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15cb62a0d2770787abc96e99c1cd98fcf17f94959f3af63ca85bdfb203f051b4" -dependencies = [ - "futures-core", - "rustls 0.17.0", - "tokio 0.2.25", - "webpki 0.21.4", -] - [[package]] name = "tokio-rustls" version = "0.14.1" @@ -6509,6 +6552,17 @@ dependencies = [ "webpki 0.21.4", ] +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.9", + "tokio 1.37.0", + "webpki 0.22.4", +] + [[package]] name = "tokio-socks" version = "0.3.0" @@ -6518,7 +6572,7 @@ dependencies = [ "bytes 0.4.12", "either", "futures 0.3.29", - "thiserror", + "thiserror 1.0.30", "tokio 0.2.25", ] @@ -6543,20 +6597,6 @@ dependencies = [ "tokio 0.2.25", ] -[[package]] -name = "tokio-util" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "571da51182ec208780505a32528fc5512a8fe1443ab960b3f2f3ef093cd16930" -dependencies = [ - "bytes 0.5.6", - "futures-core", - "futures-sink", - "log", - "pin-project-lite 0.1.12", - "tokio 0.2.25", -] - [[package]] name = "tokio-util" version = "0.3.1" @@ -6597,6 +6637,7 @@ dependencies = [ "futures-sink", "pin-project-lite 0.2.13", "tokio 1.37.0", + "tracing", ] [[package]] @@ -6677,7 +6718,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "slab", - "thiserror", + "thiserror 1.0.30", ] [[package]] @@ -6690,7 +6731,7 @@ dependencies = [ "digest 0.10.7", "educe", "getrandom 0.2.11", - "thiserror", + "thiserror 1.0.30", "tor-error", "tor-llcrypto", "zeroize", @@ -6705,12 +6746,12 @@ dependencies = [ "bitflags 2.4.1", "bytes 1.5.0", "caret", - "derive_more", + "derive_more 0.99.17", "educe", "paste", "rand 0.8.5", "smallvec", - "thiserror", + "thiserror 1.0.30", "tor-basic-utils", "tor-bytes", "tor-cert", @@ -6729,9 +6770,9 @@ checksum = "d049223a0f4d5965f8e947f1b1b559b72a6cacdc904dcf296e49ce503f6821e5" dependencies = [ "caret", "derive_builder_fork_arti", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", - "thiserror", + "thiserror 1.0.30", "tor-bytes", "tor-checkable", "tor-llcrypto", @@ -6745,14 +6786,14 @@ checksum = "464dbcf8ea3c2333ecdc4f6526dc0015a16052af5b256bc9449c384bb61fe962" dependencies = [ "async-trait", "derive_builder_fork_arti", - "derive_more", + "derive_more 0.99.17", "educe", "futures 0.3.29", "postage", "rand 0.8.5", "safelog", "serde", - "thiserror", + "thiserror 1.0.30", "tor-async-utils", "tor-basic-utils", "tor-cell", @@ -6777,7 +6818,7 @@ checksum = "bbb8047d82b3754e8662d29c02680db453059b68956f1b0d44f965f0536f239d" dependencies = [ "humantime 2.1.0", "signature 2.2.0", - "thiserror", + "thiserror 1.0.30", "tor-llcrypto", ] @@ -6792,7 +6833,7 @@ dependencies = [ "bounded-vec-deque", "cfg-if 1.0.0", "derive_builder_fork_arti", - "derive_more", + "derive_more 0.99.17", "downcast-rs", "dyn-clone", "educe", @@ -6806,7 +6847,7 @@ dependencies = [ "safelog", "serde", "static_assertions", - "thiserror", + "thiserror 1.0.30", "tor-async-utils", "tor-basic-utils", "tor-chanmgr", @@ -6844,11 +6885,11 @@ dependencies = [ "paste", "regex", "serde", - "serde-value 0.7.0", + "serde-value", "serde_ignored", "shellexpand", "strum 0.26.2", - "thiserror", + "thiserror 1.0.30", "toml 0.8.8", "tor-basic-utils", "tor-error", @@ -6864,7 +6905,7 @@ checksum = "b60ccfee1404d281437a659932592f3c7592305668d93addf01384adb16531e5" dependencies = [ "digest 0.10.7", "hex", - "thiserror", + "thiserror 1.0.30", "tor-llcrypto", ] @@ -6876,7 +6917,7 @@ checksum = "7f604e7450609aaae0d892572bee4d894ba00cd8061cafcbd8c8fa7c1561c2e0" dependencies = [ "async-compression", "base64ct", - "derive_more", + "derive_more 0.99.17", "futures 0.3.29", "hex", "http 1.1.0", @@ -6884,7 +6925,7 @@ dependencies = [ "httpdate 1.0.3", "itertools 0.12.0", "memchr", - "thiserror", + "thiserror 1.0.30", "tor-circmgr", "tor-error", "tor-hscrypto", @@ -6905,7 +6946,7 @@ dependencies = [ "async-trait", "base64ct", "derive_builder_fork_arti", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", "educe", "event-listener 5.3.0", @@ -6927,7 +6968,7 @@ dependencies = [ "serde", "signature 2.2.0", "strum 0.26.2", - "thiserror", + "thiserror 1.0.30", "time", "tor-async-utils", "tor-basic-utils", @@ -6954,14 +6995,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "321b27a08c18364e6e30374bfb13817c8acec8a274d461db166ebe1280969eef" dependencies = [ "backtrace", - "derive_more", + "derive_more 0.99.17", "futures 0.3.29", "once_cell", "paste", "retry-error", "static_assertions", "strum 0.26.2", - "thiserror", + "thiserror 1.0.30", "tracing", ] @@ -6975,7 +7016,7 @@ dependencies = [ "base64ct", "derive-deftly", "derive_builder_fork_arti", - "derive_more", + "derive_more 0.99.17", "dyn-clone", "educe", "futures 0.3.29", @@ -6989,7 +7030,7 @@ dependencies = [ "safelog", "serde", "strum 0.26.2", - "thiserror", + "thiserror 1.0.30", "tor-async-utils", "tor-basic-utils", "tor-config", @@ -7014,7 +7055,7 @@ checksum = "210dc08c53929e0c800198779a9595ff0cad1051c52320533a8421b4eb0f2deb" dependencies = [ "async-trait", "derive-deftly", - "derive_more", + "derive_more 0.99.17", "educe", "either", "futures 0.3.29", @@ -7025,7 +7066,7 @@ dependencies = [ "safelog", "slotmap", "strum 0.26.2", - "thiserror", + "thiserror 1.0.30", "tor-async-utils", "tor-basic-utils", "tor-bytes", @@ -7055,7 +7096,7 @@ checksum = "8c76aa63e02c854b1a845b2a35ed811a52848f37cff413d2b8357e3d47aaefbb" dependencies = [ "cipher 0.4.4", "data-encoding", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", "itertools 0.12.0", "paste", @@ -7063,7 +7104,7 @@ dependencies = [ "safelog", "signature 2.2.0", "subtle", - "thiserror", + "thiserror 1.0.30", "tor-basic-utils", "tor-bytes", "tor-error", @@ -7085,7 +7126,7 @@ dependencies = [ "safelog", "serde", "serde_with 3.7.0", - "thiserror", + "thiserror 1.0.30", "tor-async-utils", "tor-cell", "tor-config", @@ -7108,7 +7149,7 @@ dependencies = [ "base64ct", "derive-deftly", "derive_builder_fork_arti", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", "educe", "fs-mistrust", @@ -7127,7 +7168,7 @@ dependencies = [ "serde", "serde_with 3.7.0", "strum 0.26.2", - "thiserror", + "thiserror 1.0.30", "tor-async-utils", "tor-basic-utils", "tor-bytes", @@ -7162,7 +7203,7 @@ dependencies = [ "arrayvec 0.7.4", "derive-deftly", "derive_builder_fork_arti", - "derive_more", + "derive_more 0.99.17", "downcast-rs", "dyn-clone", "fs-mistrust", @@ -7173,7 +7214,7 @@ dependencies = [ "rand 0.8.5", "serde", "ssh-key", - "thiserror", + "thiserror 1.0.30", "tor-basic-utils", "tor-config", "tor-error", @@ -7195,14 +7236,14 @@ dependencies = [ "caret", "derive-deftly", "derive_builder_fork_arti", - "derive_more", + "derive_more 0.99.17", "hex", "itertools 0.12.0", "safelog", "serde", "serde_with 3.7.0", "strum 0.26.2", - "thiserror", + "thiserror 1.0.30", "tor-basic-utils", "tor-bytes", "tor-config", @@ -7220,7 +7261,7 @@ dependencies = [ "base64ct", "ctr", "curve25519-dalek 4.1.2", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", "ed25519-dalek 2.1.1", "educe", @@ -7236,7 +7277,7 @@ dependencies = [ "signature 2.2.0", "simple_asn1", "subtle", - "thiserror", + "thiserror 1.0.30", "x25519-dalek 2.0.1", "zeroize", ] @@ -7250,7 +7291,7 @@ dependencies = [ "futures 0.3.29", "humantime 2.1.0", "once_cell", - "thiserror", + "thiserror 1.0.30", "tor-error", "tor-rtcompat", "tracing", @@ -7264,7 +7305,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67662012b77d73ccb08380975d676914879438dcc3a56bcebb49ffed92f72b3e" dependencies = [ "bitflags 2.4.1", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", "futures 0.3.29", "hex", @@ -7275,7 +7316,7 @@ dependencies = [ "serde", "static_assertions", "strum 0.26.2", - "thiserror", + "thiserror 1.0.30", "time", "tor-basic-utils", "tor-error", @@ -7300,7 +7341,7 @@ dependencies = [ "bitflags 2.4.1", "cipher 0.4.4", "derive_builder_fork_arti", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", "educe", "hex", @@ -7314,7 +7355,7 @@ dependencies = [ "signature 2.2.0", "smallvec", "subtle", - "thiserror", + "thiserror 1.0.30", "time", "tinystr", "tor-basic-utils", @@ -7340,7 +7381,7 @@ checksum = "d57c0676b6eecad9242b42c72b0e501ea78a900aee2663fb0e237cdfa2f0bd31" dependencies = [ "amplify", "derive-deftly", - "derive_more", + "derive_more 0.99.17", "filetime", "fs-mistrust", "fslock", @@ -7350,7 +7391,7 @@ dependencies = [ "sanitize-filename", "serde", "serde_json", - "thiserror", + "thiserror 1.0.30", "tor-basic-utils", "tor-error", "tracing", @@ -7368,7 +7409,7 @@ dependencies = [ "cipher 0.4.4", "coarsetime", "derive_builder_fork_arti", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", "educe", "futures 0.3.29", @@ -7379,7 +7420,7 @@ dependencies = [ "rand_core 0.6.4", "safelog", "subtle", - "thiserror", + "thiserror 1.0.30", "tokio 1.37.0", "tokio-util 0.7.10", "tor-async-utils", @@ -7411,7 +7452,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce5af1a305ca533613b676f13d5a276d648cb1f974361c830a3113703aad3b34" dependencies = [ "caret", - "thiserror", + "thiserror 1.0.30", ] [[package]] @@ -7440,7 +7481,7 @@ dependencies = [ "async-trait", "async_executors", "coarsetime", - "derive_more", + "derive_more 0.99.17", "educe", "futures 0.3.29", "futures-rustls", @@ -7448,7 +7489,7 @@ dependencies = [ "paste", "pin-project", "rustls-pki-types", - "thiserror", + "thiserror 1.0.30", "tokio 1.37.0", "tokio-util 0.7.10", "tracing", @@ -7465,7 +7506,7 @@ dependencies = [ "async-trait", "backtrace", "derive-deftly", - "derive_more", + "derive_more 0.99.17", "educe", "futures 0.3.29", "humantime 2.1.0", @@ -7474,7 +7515,7 @@ dependencies = [ "priority-queue", "slotmap", "strum 0.26.2", - "thiserror", + "thiserror 1.0.30", "tor-async-utils", "tor-error", "tor-rtcompat", @@ -7491,7 +7532,7 @@ checksum = "bc64bbb385974631c800d1951bb48f08775c407281d4ce9a36aaa1c6512ced33" dependencies = [ "caret", "subtle", - "thiserror", + "thiserror 1.0.30", "tor-bytes", "tor-error", ] @@ -7502,8 +7543,8 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0710451c303d01d6503157a90f831ed4f62574ec265116e1aebb4b67f0657972" dependencies = [ - "derive_more", - "thiserror", + "derive_more 0.99.17", + "thiserror 1.0.30", ] [[package]] @@ -7552,9 +7593,9 @@ version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -7625,16 +7666,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "258bc1c4f8e2e73a977812ab339d503e6feeb92700f6d07a6de4d321522d5c08" dependencies = [ "lazy_static", - "quote 1.0.33", + "quote 1.0.45", "syn 1.0.109", ] -[[package]] -name = "traitobject" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" - [[package]] name = "try-lock" version = "0.2.4" @@ -7657,12 +7692,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "183496e014253d15abbe6235677b1392dba2d40524c88938991226baa38ac7c4" [[package]] -name = "typemap" -version = "0.3.3" +name = "typemap-ors" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653be63c80a3296da5551e1bfd2cca35227e13cdd08c6668903ae2f4f77aa1f6" +checksum = "a68c24b707f02dd18f1e4ccceb9d49f2058c2fb86384ef9972592904d7a28867" dependencies = [ - "unsafe-any", + "unsafe-any-ors", ] [[package]] @@ -7747,6 +7782,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "universal-hash" version = "0.4.0" @@ -7758,14 +7799,20 @@ dependencies = [ ] [[package]] -name = "unsafe-any" -version = "0.4.2" +name = "unsafe-any-ors" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30360d7979f5e9c6e6cea48af192ea8fab4afb3cf72597154b8f08935bc9c7f" +checksum = "e0a303d30665362d9680d7d91d78b23f5f899504d4f08b3c4cf08d055d87c0ad" dependencies = [ - "traitobject", + "destructure_traitobject", ] +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + [[package]] name = "untrusted" version = "0.6.2" @@ -7813,9 +7860,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.4.2" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe" +checksum = "7ba6f5989077681266825251a52748b8c1d8a4ad098cc37e440103d0ea717fc0" [[package]] name = "vcpkg" @@ -7841,9 +7888,9 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3fd98999db9227cf28e59d83e1f120f42bc233d4b152e8fab9bc87d5bb1e0f8" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -7889,6 +7936,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasip2" +version = "1.0.3+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +dependencies = [ + "wit-bindgen", +] + [[package]] name = "wasix" version = "0.12.21" @@ -7919,9 +7975,9 @@ dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", "wasm-bindgen-shared", ] @@ -7943,7 +7999,7 @@ version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ - "quote 1.0.33", + "quote 1.0.45", "wasm-bindgen-macro-support", ] @@ -7953,9 +8009,9 @@ version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -8063,6 +8119,12 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-sys" version = "0.45.0" @@ -8090,6 +8152,15 @@ dependencies = [ "windows-targets 0.52.0", ] +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -8279,6 +8350,12 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -8363,15 +8440,6 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992" -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] - [[package]] name = "zerocopy" version = "0.7.32" @@ -8387,9 +8455,9 @@ version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -8407,9 +8475,9 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.106", + "quote 1.0.45", + "syn 2.0.117", ] [[package]] @@ -8420,7 +8488,7 @@ checksum = "93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815" dependencies = [ "byteorder", "crc32fast", - "thiserror", + "thiserror 1.0.30", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 9a61375..49029be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,6 +5,12 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[features] +# Opt-in end-to-end test harness (tests/e2e.rs) that runs a real node + miner. +# Enabling it also requires re-adding the grin node deps (grin_chain/p2p/servers) +# from a single git source, plus a [patch.crates-io] so wallet+server+node share one grin. +integration = [] + [dependencies] arti-client = { version = "0.18.0", default-features = false, features = ["async-std", "rustls", "onion-service-client", "onion-service-service"] } arti-hyper = "0.18.0" @@ -55,19 +61,23 @@ tor-rtcompat = "0.18.0" x25519-dalek = "0.6.0" log = "0.4.20" -# Bleeding Edge Grin Deps +# Grin 5.4.0 release crates (same source the grin-wallet fork links, so they unify). +# grin_servers/chain/p2p dropped: unused in src and grin_servers isn't published. grin_secp256k1zkp = { version = "0.7.14", features = ["bullet-proof-sizing"] } -grin_api = { git = "https://github.com/mimblewimble/grin", branch = "master" } -grin_core = { git = "https://github.com/mimblewimble/grin", branch = "master" } -grin_chain = { git = "https://github.com/mimblewimble/grin", branch = "master" } -grin_keychain = { git = "https://github.com/mimblewimble/grin", branch = "master" } -grin_p2p = { git = "https://github.com/mimblewimble/grin", branch = "master" } -grin_servers = { git = "https://github.com/mimblewimble/grin", branch = "master" } -grin_store = { git = "https://github.com/mimblewimble/grin", branch = "master" } -grin_util = { git = "https://github.com/mimblewimble/grin", branch = "master" } -grin_wallet_api = { git = "https://github.com/mimblewimble/grin-wallet", branch = "contracts" } -grin_wallet_config = { git = "https://github.com/mimblewimble/grin-wallet", branch = "contracts" } -grin_wallet_controller = { git = "https://github.com/mimblewimble/grin-wallet", branch = "contracts" } -grin_wallet_impls = { git = "https://github.com/mimblewimble/grin-wallet", branch = "contracts" } -grin_wallet_libwallet = { git = "https://github.com/mimblewimble/grin-wallet", branch = "contracts" } -grin_wallet_util = { git = "https://github.com/mimblewimble/grin-wallet", branch = "contracts" } +grin_api = "5.4.0" +grin_core = "5.4.0" +grin_keychain = "5.4.0" +grin_store = "5.4.0" +grin_util = "5.4.0" +# grin-wallet contracts work, pinned to a revision (not a branch) for reproducible builds. +grin_wallet_api = { git = "https://github.com/jwinterm/grin-wallet", rev = "ce779188b19e949e3837f80eeaf73c31f61e17c0" } +grin_wallet_config = { git = "https://github.com/jwinterm/grin-wallet", rev = "ce779188b19e949e3837f80eeaf73c31f61e17c0" } +grin_wallet_controller = { git = "https://github.com/jwinterm/grin-wallet", rev = "ce779188b19e949e3837f80eeaf73c31f61e17c0" } +grin_wallet_impls = { git = "https://github.com/jwinterm/grin-wallet", rev = "ce779188b19e949e3837f80eeaf73c31f61e17c0" } +grin_wallet_libwallet = { git = "https://github.com/jwinterm/grin-wallet", rev = "ce779188b19e949e3837f80eeaf73c31f61e17c0" } +grin_wallet_util = { git = "https://github.com/jwinterm/grin-wallet", rev = "ce779188b19e949e3837f80eeaf73c31f61e17c0" } + +[dev-dependencies] +# Tests use the mwixnet onion test helpers (rand_onion, proof, rand_keypair, ...). +# Dev-only so they stay out of normal builds (resolver 2). +grin_wallet_libwallet = { git = "https://github.com/jwinterm/grin-wallet", rev = "ce779188b19e949e3837f80eeaf73c31f61e17c0", features = ["test-helpers"] } diff --git a/src/bin/mwixnet.rs b/src/bin/mwixnet.rs index 2bc0ce9..e702fef 100644 --- a/src/bin/mwixnet.rs +++ b/src/bin/mwixnet.rs @@ -78,7 +78,7 @@ fn real_main() -> Result<(), Box> { } let server_config = ServerConfig { - key: crypto::secp::random_secret(), + key: crypto::secp::random_secret(false), interval_s: round_time.unwrap_or(DEFAULT_INTERVAL), addr: bind_addr.unwrap_or("127.0.0.1:3000").parse()?, grin_node_url: match grin_node_url { diff --git a/src/config.rs b/src/config.rs index 7ee4514..a9f07d1 100644 --- a/src/config.rs +++ b/src/config.rs @@ -285,7 +285,7 @@ pub fn wallet_owner_url(_chain_type: &ChainTypes) -> String { pub mod test_util { use std::net::TcpListener; - use grin_onion::crypto::dalek::DalekPublicKey; + use super::grin_onion::crypto::dalek::DalekPublicKey; use secp256k1zkp::SecretKey; use crate::config::ServerConfig; @@ -312,14 +312,14 @@ pub mod test_util { #[cfg(test)] mod tests { - use grin_onion::crypto::secp; + use super::grin_onion::crypto::secp; use super::*; #[test] fn server_key_encrypt() { let password = ZeroingString::from("password"); - let server_key = secp::random_secret(); + let server_key = secp::random_secret(false); let mut enc_key = EncryptedServerKey::from_secret_key(&server_key, &password); let decrypted_key = enc_key.decrypt(&password).unwrap(); assert_eq!(server_key, decrypted_key); diff --git a/src/mix_client.rs b/src/mix_client.rs index ccfc329..0298934 100644 --- a/src/mix_client.rs +++ b/src/mix_client.rs @@ -112,7 +112,7 @@ pub mod mock { use async_trait::async_trait; - use grin_onion::onion::Onion; + use super::grin_onion::onion::Onion; use crate::servers::mix_rpc::MixResp; @@ -155,9 +155,9 @@ pub mod test_util { use grin_core::ser; use grin_core::ser::ProtocolVersion; - use grin_onion::crypto::dalek::{self, DalekPublicKey}; - use grin_onion::crypto::secp::SecretKey; - use grin_onion::onion::Onion; + use super::grin_onion::crypto::dalek::{self, DalekPublicKey}; + use super::grin_onion::crypto::secp::SecretKey; + use super::grin_onion::onion::Onion; use crate::servers::mix::MixServer; use crate::servers::mix_rpc::MixResp; diff --git a/src/node.rs b/src/node.rs index 987aa42..5ab43b4 100644 --- a/src/node.rs +++ b/src/node.rs @@ -248,7 +248,7 @@ pub mod mock { use grin_core::core::hash::Hash; use grin_core::core::Transaction; - use grin_onion::crypto::secp::Commitment; + use super::grin_onion::crypto::secp::Commitment; use super::{GrinNode, NodeError}; diff --git a/src/servers/mix.rs b/src/servers/mix.rs index b9d8184..d3782af 100644 --- a/src/servers/mix.rs +++ b/src/servers/mix.rs @@ -303,7 +303,7 @@ impl MixServer for MixServerImpl { mod test_util { use std::sync::Arc; - use grin_onion::crypto::dalek::DalekPublicKey; + use super::grin_onion::crypto::dalek::DalekPublicKey; use secp256k1zkp::SecretKey; use crate::config; @@ -349,10 +349,10 @@ mod tests { use ::function_name::named; - use grin_onion::{create_onion, Hop, new_hop}; - use grin_onion::crypto::dalek::DalekPublicKey; - use grin_onion::crypto::secp::{self, Commitment}; - use grin_onion::test_util as onion_test_util; + use super::grin_onion::{create_onion, Hop, new_hop}; + use super::grin_onion::crypto::dalek::DalekPublicKey; + use super::grin_onion::crypto::secp::{self, Commitment}; + use super::grin_onion::test_util as onion_test_util; use secp256k1zkp::pedersen::RangeProof; use secp256k1zkp::SecretKey; @@ -380,7 +380,7 @@ mod tests { impl ServerVars { fn new(fee: u32) -> Self { let (sk, pk) = onion_test_util::rand_keypair(); - let excess = secp::random_secret(); + let excess = secp::random_secret(false); ServerVars { fee, sk, @@ -407,7 +407,7 @@ mod tests { // Setup Input(s) let input1_value: u64 = 200_000_000; - let input1_blind = secp::random_secret(); + let input1_blind = secp::random_secret(false); let input1_commit = secp::commit(input1_value, &input1_blind)?; let input_commits = vec![&input1_commit]; @@ -449,6 +449,7 @@ mod tests { mix1_vars.build_hop(None), mix2_vars.build_hop(Some(proof)), ], + false, )?; // Simulate the swap server peeling the onion and then calling mix1 diff --git a/src/servers/swap.rs b/src/servers/swap.rs index af7f211..26020bd 100644 --- a/src/servers/swap.rs +++ b/src/servers/swap.rs @@ -389,8 +389,8 @@ pub mod mock { use async_trait::async_trait; use grin_core::core::Transaction; - use grin_onion::crypto::comsig::ComSignature; - use grin_onion::onion::Onion; + use super::grin_onion::crypto::comsig::ComSignature; + use super::grin_onion::onion::Onion; use super::{SwapError, SwapServer}; @@ -437,8 +437,8 @@ pub mod mock { pub mod test_util { use std::sync::Arc; - use grin_onion::crypto::dalek::DalekPublicKey; - use grin_onion::crypto::secp::SecretKey; + use super::grin_onion::crypto::dalek::DalekPublicKey; + use super::grin_onion::crypto::secp::SecretKey; use crate::config; use crate::mix_client::MixClient; @@ -482,11 +482,11 @@ mod tests { use secp256k1zkp::key::ZERO_KEY; use x25519_dalek::PublicKey as xPublicKey; - use grin_onion::crypto::comsig::ComSignature; - use grin_onion::crypto::secp; - use grin_onion::onion::Onion; - use grin_onion::test_util as onion_test_util; - use grin_onion::{create_onion, new_hop, Hop}; + use super::grin_onion::crypto::comsig::ComSignature; + use super::grin_onion::crypto::secp; + use super::grin_onion::onion::Onion; + use super::grin_onion::test_util as onion_test_util; + use super::grin_onion::{create_onion, new_hop, Hop}; use crate::mix_client::{self, MixClient}; use crate::node::mock::MockGrinNode; @@ -526,16 +526,16 @@ mod tests { let value: u64 = 200_000_000; let fee: u32 = 50_000_000; - let blind = secp::random_secret(); + let blind = secp::random_secret(false); let input_commit = secp::commit(value, &blind)?; - let server_key = secp::random_secret(); - let hop_excess = secp::random_secret(); + let server_key = secp::random_secret(false); + let hop_excess = secp::random_secret(false); let (output_commit, proof) = onion_test_util::proof(value, fee, &blind, &vec![&hop_excess]); let hop = new_hop(&server_key, &hop_excess, fee, Some(proof)); - let onion = create_onion(&input_commit, &vec![hop.clone()])?; - let comsig = ComSignature::sign(value, &blind, &onion.serialize()?)?; + let onion = create_onion(&input_commit, &vec![hop.clone()], false)?; + let comsig = ComSignature::sign(value, &blind, &onion.serialize()?, false)?; let node: Arc = Arc::new(MockGrinNode::new_with_utxos(&vec![&input_commit])); let (server, _) = super::test_util::new_swapper(&test_dir, &server_key, None, node.clone()); @@ -597,20 +597,20 @@ mod tests { // Setup input let value: u64 = 200_000_000; - let blind = secp::random_secret(); + let blind = secp::random_secret(false); let input_commit = secp::commit(value, &blind)?; let node: Arc = Arc::new(MockGrinNode::new_with_utxos(&vec![&input_commit])); // Swapper data let swap_fee: u32 = 50_000_000; let (swap_sk, _swap_pk) = onion_test_util::rand_keypair(); - let swap_hop_excess = secp::random_secret(); + let swap_hop_excess = secp::random_secret(false); let swap_hop = new_hop(&swap_sk, &swap_hop_excess, swap_fee, None); // Mixer data let mixer_fee: u32 = 30_000_000; let (mixer_sk, mixer_pk) = onion_test_util::rand_keypair(); - let mixer_hop_excess = secp::random_secret(); + let mixer_hop_excess = secp::random_secret(false); let (output_commit, proof) = onion_test_util::proof( value, swap_fee + mixer_fee, @@ -620,8 +620,8 @@ mod tests { let mixer_hop = new_hop(&mixer_sk, &mixer_hop_excess, mixer_fee, Some(proof)); // Create onion - let onion = create_onion(&input_commit, &vec![swap_hop, mixer_hop])?; - let comsig = ComSignature::sign(value, &blind, &onion.serialize()?)?; + let onion = create_onion(&input_commit, &vec![swap_hop, mixer_hop], false)?; + let comsig = ComSignature::sign(value, &blind, &onion.serialize()?, false)?; // Mock mixer let mixer_onion = onion.peel_layer(&swap_sk)?.onion; @@ -676,18 +676,18 @@ mod tests { let value: u64 = 200_000_000; let fee: u32 = 50_000_000; - let blind = secp::random_secret(); + let blind = secp::random_secret(false); let input_commit = secp::commit(value, &blind)?; - let server_key = secp::random_secret(); - let hop_excess = secp::random_secret(); + let server_key = secp::random_secret(false); + let hop_excess = secp::random_secret(false); let (_output_commit, proof) = onion_test_util::proof(value, fee, &blind, &vec![&hop_excess]); let hop = new_hop(&server_key, &hop_excess, fee, Some(proof)); let hops: Vec = vec![hop.clone(), hop.clone()]; // Multiple payloads - let onion = create_onion(&input_commit, &hops)?; - let comsig = ComSignature::sign(value, &blind, &onion.serialize()?)?; + let onion = create_onion(&input_commit, &hops, false)?; + let comsig = ComSignature::sign(value, &blind, &onion.serialize()?, false)?; let node: Arc = Arc::new(MockGrinNode::new_with_utxos(&vec![&input_commit])); let (server, _) = super::test_util::new_swapper(&test_dir, &server_key, None, node.clone()); @@ -708,19 +708,19 @@ mod tests { let value: u64 = 200_000_000; let fee: u32 = 50_000_000; - let blind = secp::random_secret(); + let blind = secp::random_secret(false); let input_commit = secp::commit(value, &blind)?; - let server_key = secp::random_secret(); - let hop_excess = secp::random_secret(); + let server_key = secp::random_secret(false); + let hop_excess = secp::random_secret(false); let (_output_commit, proof) = onion_test_util::proof(value, fee, &blind, &vec![&hop_excess]); let hop = new_hop(&server_key, &hop_excess, fee, Some(proof)); - let onion = create_onion(&input_commit, &vec![hop])?; + let onion = create_onion(&input_commit, &vec![hop], false)?; - let wrong_blind = secp::random_secret(); - let comsig = ComSignature::sign(value, &wrong_blind, &onion.serialize()?)?; + let wrong_blind = secp::random_secret(false); + let comsig = ComSignature::sign(value, &wrong_blind, &onion.serialize()?, false)?; let node: Arc = Arc::new(MockGrinNode::new_with_utxos(&vec![&input_commit])); let (server, _) = super::test_util::new_swapper(&test_dir, &server_key, None, node.clone()); @@ -741,18 +741,18 @@ mod tests { let value: u64 = 200_000_000; let fee: u32 = 50_000_000; - let blind = secp::random_secret(); + let blind = secp::random_secret(false); let input_commit = secp::commit(value, &blind)?; - let server_key = secp::random_secret(); - let hop_excess = secp::random_secret(); + let server_key = secp::random_secret(false); + let hop_excess = secp::random_secret(false); let wrong_value = value + 10_000_000; let (_output_commit, proof) = onion_test_util::proof(wrong_value, fee, &blind, &vec![&hop_excess]); let hop = new_hop(&server_key, &hop_excess, fee, Some(proof)); - let onion = create_onion(&input_commit, &vec![hop])?; - let comsig = ComSignature::sign(value, &blind, &onion.serialize()?)?; + let onion = create_onion(&input_commit, &vec![hop], false)?; + let comsig = ComSignature::sign(value, &blind, &onion.serialize()?, false)?; let node: Arc = Arc::new(MockGrinNode::new_with_utxos(&vec![&input_commit])); let (server, _) = super::test_util::new_swapper(&test_dir, &server_key, None, node.clone()); @@ -773,15 +773,15 @@ mod tests { let value: u64 = 200_000_000; let fee: u32 = 50_000_000; - let blind = secp::random_secret(); + let blind = secp::random_secret(false); let input_commit = secp::commit(value, &blind)?; - let server_key = secp::random_secret(); - let hop_excess = secp::random_secret(); + let server_key = secp::random_secret(false); + let hop_excess = secp::random_secret(false); let hop = new_hop(&server_key, &hop_excess, fee, None); - let onion = create_onion(&input_commit, &vec![hop])?; - let comsig = ComSignature::sign(value, &blind, &onion.serialize()?)?; + let onion = create_onion(&input_commit, &vec![hop], false)?; + let comsig = ComSignature::sign(value, &blind, &onion.serialize()?, false)?; let node: Arc = Arc::new(MockGrinNode::new_with_utxos(&vec![&input_commit])); let (server, _) = super::test_util::new_swapper(&test_dir, &server_key, None, node.clone()); @@ -802,17 +802,17 @@ mod tests { let value: u64 = 200_000_000; let fee: u32 = 50_000_000; - let blind = secp::random_secret(); + let blind = secp::random_secret(false); let input_commit = secp::commit(value, &blind)?; - let server_key = secp::random_secret(); - let hop_excess = secp::random_secret(); + let server_key = secp::random_secret(false); + let hop_excess = secp::random_secret(false); let (_output_commit, proof) = onion_test_util::proof(value, fee, &blind, &vec![&hop_excess]); let hop = new_hop(&server_key, &hop_excess, fee, Some(proof)); - let onion = create_onion(&input_commit, &vec![hop])?; - let comsig = ComSignature::sign(value, &blind, &onion.serialize()?)?; + let onion = create_onion(&input_commit, &vec![hop], false)?; + let comsig = ComSignature::sign(value, &blind, &onion.serialize()?, false)?; let node: Arc = Arc::new(MockGrinNode::new()); let (server, _) = super::test_util::new_swapper(&test_dir, &server_key, None, node.clone()); @@ -838,17 +838,17 @@ mod tests { let value: u64 = 200_000_000; let fee: u32 = 50_000_000; - let blind = secp::random_secret(); + let blind = secp::random_secret(false); let input_commit = secp::commit(value, &blind)?; - let server_key = secp::random_secret(); - let hop_excess = secp::random_secret(); + let server_key = secp::random_secret(false); + let hop_excess = secp::random_secret(false); let (_output_commit, proof) = onion_test_util::proof(value, fee, &blind, &vec![&hop_excess]); let hop = new_hop(&server_key, &hop_excess, fee, Some(proof)); - let onion = create_onion(&input_commit, &vec![hop])?; - let comsig = ComSignature::sign(value, &blind, &onion.serialize()?)?; + let onion = create_onion(&input_commit, &vec![hop], false)?; + let comsig = ComSignature::sign(value, &blind, &onion.serialize()?, false)?; let node: Arc = Arc::new(MockGrinNode::new_with_utxos(&vec![&input_commit])); let (server, _) = super::test_util::new_swapper(&test_dir, &server_key, None, node.clone()); @@ -872,10 +872,10 @@ mod tests { async fn swap_tx_not_found() -> Result<(), Box> { let test_dir = init_test!(); - let server_key = secp::random_secret(); + let server_key = secp::random_secret(false); let node: Arc = Arc::new(MockGrinNode::new()); let (server, _) = super::test_util::new_swapper(&test_dir, &server_key, None, node.clone()); - let kern = tx::build_kernel(&secp::random_secret(), 1000u64)?; + let kern = tx::build_kernel(&secp::random_secret(false), 1000u64)?; let tx: Arc = Arc::new(Transaction::new(Inputs::default(), &[], &[kern.clone()])); let result = server.check_reorg(&tx).await; @@ -892,19 +892,19 @@ mod tests { let value: u64 = 200_000_000; let fee: u32 = 50_000_000; - let blind = secp::random_secret(); + let blind = secp::random_secret(false); let input_commit = secp::commit(value, &blind)?; - let server_key = secp::random_secret(); - let hop_excess = secp::random_secret(); + let server_key = secp::random_secret(false); + let hop_excess = secp::random_secret(false); let (_output_commit, proof) = onion_test_util::proof(value, fee, &blind, &vec![&hop_excess]); - let wrong_server_key = secp::random_secret(); + let wrong_server_key = secp::random_secret(false); let hop = new_hop(&wrong_server_key, &hop_excess, fee, Some(proof)); - let onion = create_onion(&input_commit, &vec![hop])?; - let comsig = ComSignature::sign(value, &blind, &onion.serialize()?)?; + let onion = create_onion(&input_commit, &vec![hop], false)?; + let comsig = ComSignature::sign(value, &blind, &onion.serialize()?, false)?; let node: Arc = Arc::new(MockGrinNode::new_with_utxos(&vec![&input_commit])); let (server, _) = super::test_util::new_swapper(&test_dir, &server_key, None, node.clone()); @@ -924,17 +924,17 @@ mod tests { let value: u64 = 200_000_000; let fee: u32 = 1_000_000; - let blind = secp::random_secret(); + let blind = secp::random_secret(false); let input_commit = secp::commit(value, &blind)?; - let server_key = secp::random_secret(); - let hop_excess = secp::random_secret(); + let server_key = secp::random_secret(false); + let hop_excess = secp::random_secret(false); let (_output_commit, proof) = onion_test_util::proof(value, fee, &blind, &vec![&hop_excess]); let hop = new_hop(&server_key, &hop_excess, fee, Some(proof)); - let onion = create_onion(&input_commit, &vec![hop])?; - let comsig = ComSignature::sign(value, &blind, &onion.serialize()?)?; + let onion = create_onion(&input_commit, &vec![hop], false)?; + let comsig = ComSignature::sign(value, &blind, &onion.serialize()?, false)?; let node: Arc = Arc::new(MockGrinNode::new_with_utxos(&vec![&input_commit])); let (server, _) = super::test_util::new_swapper(&test_dir, &server_key, None, node.clone()); diff --git a/src/servers/swap_rpc.rs b/src/servers/swap_rpc.rs index 2c91b7b..c7984e6 100644 --- a/src/servers/swap_rpc.rs +++ b/src/servers/swap_rpc.rs @@ -123,9 +123,9 @@ mod tests { use hyper::{Body, Client, Request, Response}; use tokio::sync::Mutex; - use grin_onion::create_onion; - use grin_onion::crypto::comsig::ComSignature; - use grin_onion::crypto::secp; + use super::grin_onion::create_onion; + use super::grin_onion::crypto::comsig::ComSignature; + use super::grin_onion::crypto::secp; use crate::config::ServerConfig; use crate::servers::swap::{SwapError, SwapServer}; @@ -144,7 +144,7 @@ mod tests { runtime_handle: &tokio::runtime::Handle, ) -> Result> { let server_config = ServerConfig { - key: secp::random_secret(), + key: secp::random_secret(false), interval_s: 1, addr: TcpListener::bind("127.0.0.1:0")?.local_addr()?, grin_node_url: "127.0.0.1:3413".parse()?, @@ -191,9 +191,9 @@ mod tests { let rt = tokio::runtime::Builder::new_multi_thread() .enable_all() .build()?; - let commitment = secp::commit(1234, &secp::random_secret())?; - let onion = create_onion(&commitment, &vec![])?; - let comsig = ComSignature::sign(1234, &secp::random_secret(), &onion.serialize()?)?; + let commitment = secp::commit(1234, &secp::random_secret(false))?; + let onion = create_onion(&commitment, &vec![], false)?; + let comsig = ComSignature::sign(1234, &secp::random_secret(false), &onion.serialize()?, false)?; let swap = SwapReq { onion: onion.clone(), comsig, @@ -239,9 +239,9 @@ mod tests { .enable_all() .build()?; - let commitment = secp::commit(1234, &secp::random_secret())?; - let onion = create_onion(&commitment, &vec![])?; - let comsig = ComSignature::sign(1234, &secp::random_secret(), &onion.serialize()?)?; + let commitment = secp::commit(1234, &secp::random_secret(false))?; + let onion = create_onion(&commitment, &vec![], false)?; + let comsig = ComSignature::sign(1234, &secp::random_secret(false), &onion.serialize()?, false)?; let swap = SwapReq { onion: onion.clone(), comsig, diff --git a/src/store.rs b/src/store.rs index 2bbaf12..dcb47a4 100644 --- a/src/store.rs +++ b/src/store.rs @@ -314,8 +314,8 @@ mod tests { use grin_core::global::{self, ChainTypes}; use rand::RngCore; - use grin_onion::crypto::secp; - use grin_onion::test_util as onion_test_util; + use super::grin_onion::crypto::secp; + use super::grin_onion::test_util as onion_test_util; use crate::store::{StoreError, SwapData, SwapStatus, SwapStore}; @@ -328,7 +328,7 @@ mod tests { fn rand_swap_with_status(status: SwapStatus) -> SwapData { SwapData { - excess: secp::random_secret(), + excess: secp::random_secret(false), output_commit: onion_test_util::rand_commit(), rangeproof: Some(onion_test_util::rand_proof()), input: Input::new(OutputFeatures::Plain, onion_test_util::rand_commit()), diff --git a/src/tx.rs b/src/tx.rs index ee53ce0..8b028c5 100644 --- a/src/tx.rs +++ b/src/tx.rs @@ -143,7 +143,7 @@ async fn async_add_kernel_and_collect_fees( } // generate random transaction offset - let our_offset = secp::random_secret(); + let our_offset = secp::random_secret(false); let txn_offset = secp .blind_sum(vec![prev_offset.clone(), our_offset.clone()], Vec::new()) .map_err(TxError::OffsetError)?; @@ -206,12 +206,10 @@ async fn async_add_kernel_and_collect_fees( /// /// # Example /// -/// ```rust -/// use secp256k1zkp::key::SecretKey; -/// use secp256k1zkp::rand::thread_rng; +/// ```ignore /// use grin_onion::crypto::secp; /// -/// let secret_key = secp::random_secret(); +/// let secret_key = secp::random_secret(false); /// let fee = 10; // 10 nanogrin /// let kernel = mwixnet::tx::build_kernel(&secret_key, fee); /// ``` diff --git a/src/wallet.rs b/src/wallet.rs index 68868bc..8231719 100644 --- a/src/wallet.rs +++ b/src/wallet.rs @@ -94,7 +94,7 @@ impl HttpWallet { wallet_owner_secret: &Option, ) -> Result { let secp = Secp256k1::new(); - let ephemeral_sk = secp::random_secret(); + let ephemeral_sk = secp::random_secret(false); let ephemeral_pk = PublicKey::from_secret_key(&secp, &ephemeral_sk).unwrap(); let ephemeral_pk_bytes = ephemeral_pk.serialize_vec(&secp, true); let init_params = json!({ @@ -190,7 +190,7 @@ pub mod mock { use grin_core::core::{Output, OutputFeatures}; use grin_keychain::BlindingFactor; - use grin_onion::crypto::secp; + use super::grin_onion::crypto::secp; use secp256k1zkp::pedersen::Commitment; use secp256k1zkp::Secp256k1; @@ -224,13 +224,13 @@ pub mod mock { amount: u64, ) -> Result<(BlindingFactor, Output), WalletError> { let secp = Secp256k1::new(); - let blind = secp::random_secret(); + let blind = secp::random_secret(false); let commit = secp::commit(amount, &blind).unwrap(); let proof = secp.bullet_proof( amount, blind.clone(), - secp::random_secret(), - secp::random_secret(), + secp::random_secret(false), + secp::random_secret(false), None, None, ); diff --git a/tests/e2e.rs b/tests/e2e.rs index ef7ec4d..fedcf93 100644 --- a/tests/e2e.rs +++ b/tests/e2e.rs @@ -1,3 +1,7 @@ +// End-to-end swap test. Boots a real grin node + miner, so it is opt-in behind the +// `integration` feature and excluded from a default `cargo test`. Building it also +// requires the grin node deps (grin_chain/p2p/servers) on a single git source. +#![cfg(feature = "integration")] #[macro_use] extern crate log;