From f6c7c8729c51c01ab7a62787bc94c340e590f43a Mon Sep 17 00:00:00 2001 From: Ross Savage Date: Tue, 10 Sep 2024 15:59:28 +0200 Subject: [PATCH] Upgrade Greenlight to use VLS 0.12 --- libs/Cargo.lock | 444 +++++++++++++++++++--- libs/Cargo.toml | 4 +- libs/sdk-core/Cargo.toml | 4 +- libs/sdk-core/src/greenlight/node_api.rs | 119 +----- tools/sdk-cli/Cargo.lock | 457 ++++++++++++++++++++--- 5 files changed, 816 insertions(+), 212 deletions(-) diff --git a/libs/Cargo.lock b/libs/Cargo.lock index 693e276c7..800ce24c8 100644 --- a/libs/Cargo.lock +++ b/libs/Cargo.lock @@ -17,6 +17,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aead" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +dependencies = [ + "generic-array", +] + [[package]] name = "aead" version = "0.5.2" @@ -27,6 +36,18 @@ dependencies = [ "generic-array", ] +[[package]] +name = "aes" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +dependencies = [ + "cfg-if", + "cipher 0.3.0", + "cpufeatures", + "opaque-debug", +] + [[package]] name = "aes" version = "0.8.3" @@ -34,21 +55,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures", ] +[[package]] +name = "aes-gcm" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f" +dependencies = [ + "aead 0.4.3", + "aes 0.7.5", + "cipher 0.3.0", + "ctr 0.7.0", + "ghash 0.4.4", + "subtle", +] + [[package]] name = "aes-gcm" version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", + "aead 0.5.2", + "aes 0.8.3", + "cipher 0.4.4", + "ctr 0.9.2", + "ghash 0.5.0", "subtle", ] @@ -539,6 +574,16 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding 0.2.1", + "generic-array", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -548,6 +593,12 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + [[package]] name = "block-padding" version = "0.3.3" @@ -559,9 +610,9 @@ dependencies = [ [[package]] name = "bolt-derive" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4a20c5d2dd939142aa8edcfcaa5126bf0e4483d8edce6502037c2b0adbe069" +checksum = "d5d9d752698eaa9d487c8bd9e587c4ee941ed79e8fe70ededde3bc1d24508f64" dependencies = [ "proc-macro2", "quote", @@ -572,7 +623,7 @@ dependencies = [ name = "breez-sdk-core" version = "0.5.1-rc6" dependencies = [ - "aes", + "aes 0.8.3", "anyhow", "base64 0.13.1", "chrono", @@ -652,6 +703,12 @@ version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "bytes" version = "1.6.0" @@ -696,7 +753,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] @@ -721,7 +778,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures", ] @@ -731,9 +788,9 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ - "aead", + "aead 0.5.2", "chacha20", - "cipher", + "cipher 0.4.4", "poly1305", "zeroize", ] @@ -759,6 +816,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa622bd314835eb026b776af471344d0dba94705c937900656a31d0407e53689" +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array", +] + [[package]] name = "cipher" version = "0.4.4" @@ -923,13 +989,22 @@ dependencies = [ "typenum", ] +[[package]] +name = "ctr" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" +dependencies = [ + "cipher 0.3.0", +] + [[package]] name = "ctr" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] @@ -1037,7 +1112,7 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", + "block-buffer 0.10.4", "crypto-common", "subtle", ] @@ -1065,14 +1140,14 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53f43496fc04523aa716c5dd76133cb6d7c81eb213375684d06a8b1683f8bc1e" dependencies = [ - "aes-gcm", + "aes-gcm 0.10.3", "getrandom", "hkdf", "libsecp256k1", "once_cell", "parking_lot", "rand_core", - "sha2", + "sha2 0.10.8", "typenum", "wasm-bindgen", ] @@ -1367,6 +1442,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "ghash" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +dependencies = [ + "opaque-debug", + "polyval 0.5.3", +] + [[package]] name = "ghash" version = "0.5.0" @@ -1374,7 +1459,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ "opaque-debug", - "polyval", + "polyval 0.6.1", ] [[package]] @@ -1386,14 +1471,16 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "gl-client" version = "0.2.0" -source = "git+https://github.com/Blockstream/greenlight.git?rev=43f02207182e28a4d62e7aa1c79cd098f9b300ba#43f02207182e28a4d62e7aa1c79cd098f9b300ba" +source = "git+https://github.com/Blockstream/greenlight.git?rev=7540980dd8f1630b1b148a9eb8b44e2b05ca7e6d#7540980dd8f1630b1b148a9eb8b44e2b05ca7e6d" dependencies = [ "anyhow", + "async-stream", "async-trait", "base64 0.21.5", "bech32 0.9.1", "bytes", "chacha20poly1305", + "chrono", "cln-grpc", "futures", "hex", @@ -1401,6 +1488,9 @@ dependencies = [ "http-body", "log", "mockall", + "picky", + "picky-asn1-der 0.4.1", + "picky-asn1-x509 0.12.0", "pin-project", "prost", "prost-derive", @@ -1412,13 +1502,13 @@ dependencies = [ "rustls-pemfile", "secp256k1 0.26.0", "serde", - "serde_bolt", "serde_json", "sha256", "tempfile", "thiserror", "time", "tokio", + "tokio-stream", "tonic", "tonic-build", "tower", @@ -1757,7 +1847,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "block-padding", + "block-padding 0.3.3", "generic-array", ] @@ -1802,11 +1892,23 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] [[package]] name = "libc" @@ -1814,6 +1916,12 @@ version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "libsecp256k1" version = "0.7.1" @@ -1872,9 +1980,9 @@ dependencies = [ [[package]] name = "lightning" -version = "0.0.116" +version = "0.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90a0f2155316f1570446a0447c993480673f840748c8ed25bbc59dfc442ac770" +checksum = "d52cec5fa9382154fe9671e8df93095b800c7d77abc66e2a5ef839d672521c5e" dependencies = [ "bitcoin 0.29.2", "hex", @@ -1883,9 +1991,9 @@ dependencies = [ [[package]] name = "lightning-invoice" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788c0158526ec27a502043c2911ea6ea58fdc656bdf8749484942c07b790d23" +checksum = "3eb24878b0f4ef75f020976c886d9ad1503867802329cc963e0ab4623ea3b25c" dependencies = [ "bech32 0.9.1", "bitcoin 0.29.2", @@ -2067,6 +2175,24 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-bigint-dig" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9bc3e36fd683e004fd59c64a425e0e991616f5a8b617c3b9a933a93c168facc" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand", + "serde", + "smallvec", + "zeroize", +] + [[package]] name = "num-conv" version = "0.1.0" @@ -2083,6 +2209,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-iter" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.17" @@ -2090,6 +2227,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -2111,6 +2249,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "oid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c19903c598813dba001b53beeae59bb77ad4892c5c1b9b3500ce4293a0d06c2" +dependencies = [ + "serde", +] + [[package]] name = "oid-registry" version = "0.6.1" @@ -2230,6 +2377,17 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "pem" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb" +dependencies = [ + "base64 0.13.1", + "once_cell", + "regex", +] + [[package]] name = "pem" version = "1.1.1" @@ -2271,6 +2429,102 @@ dependencies = [ "indexmap 2.1.0", ] +[[package]] +name = "picky" +version = "6.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6b25b296bb2a45678748f61c51f5a548ea56b25b0ad4966183709b386eaecf" +dependencies = [ + "aes-gcm 0.9.2", + "base64 0.13.1", + "digest 0.9.0", + "http", + "num-bigint-dig", + "oid", + "picky-asn1 0.3.3", + "picky-asn1-der 0.2.5", + "picky-asn1-x509 0.6.1", + "rand", + "rsa", + "serde", + "serde_json", + "sha-1", + "sha2 0.9.9", + "sha3", + "thiserror", +] + +[[package]] +name = "picky-asn1" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "889bbb26c80acf919e89980dfc8e04eb19df272d8a9893ec9b748d3a1675abde" +dependencies = [ + "oid", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "295eea0f33c16be21e2a98b908fdd4d73c04dd48c8480991b76dbcf0cb58b212" +dependencies = [ + "oid", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1-der" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbbd5390ab967396cc7473e6e0848684aec7166e657c6088604e07b54a73dbe" +dependencies = [ + "picky-asn1 0.3.3", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1-der" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5df7873a9e36d42dadb393bea5e211fe83d793c172afad5fb4ec846ec582793f" +dependencies = [ + "picky-asn1 0.8.0", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1-x509" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3033675030de806aba1d5470949701b7c9f1dbf77e3bb17bd12e5f945e560ba" +dependencies = [ + "base64 0.13.1", + "num-bigint-dig", + "oid", + "picky-asn1 0.3.3", + "picky-asn1-der 0.2.5", + "serde", +] + +[[package]] +name = "picky-asn1-x509" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c5f20f71a68499ff32310f418a6fad8816eac1a2859ed3f0c5c741389dd6208" +dependencies = [ + "base64 0.21.5", + "oid", + "picky-asn1 0.8.0", + "picky-asn1-der 0.4.1", + "serde", +] + [[package]] name = "pin-project" version = "1.1.5" @@ -2323,7 +2577,19 @@ checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", "opaque-debug", - "universal-hash", + "universal-hash 0.5.1", +] + +[[package]] +name = "polyval" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash 0.4.0", ] [[package]] @@ -2335,7 +2601,7 @@ dependencies = [ "cfg-if", "cpufeatures", "opaque-debug", - "universal-hash", + "universal-hash 0.5.1", ] [[package]] @@ -2653,6 +2919,26 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "rsa" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ef841a26fc5d040ced0417c6c6a64ee851f42489df11cdf0218e545b6f8d28" +dependencies = [ + "byteorder", + "digest 0.9.0", + "lazy_static", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pem 0.8.3", + "rand", + "simple_asn1", + "subtle", + "zeroize", +] + [[package]] name = "runeauth" version = "0.1.4" @@ -2665,7 +2951,7 @@ dependencies = [ "env_logger 0.10.1", "hex", "indexmap 2.1.0", - "sha2", + "sha2 0.10.8", "thiserror", ] @@ -2844,7 +3130,7 @@ dependencies = [ name = "sdk-common" version = "0.5.1-rc6" dependencies = [ - "aes", + "aes 0.8.3", "anyhow", "base64 0.13.1", "bip21", @@ -3007,9 +3293,9 @@ dependencies = [ [[package]] name = "serde_bolt" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54f634eeb988ab754b0711815e13e6ad983bfc52f76e0af342d492c6cad4f681" +checksum = "b06b8577e0fd88c67c88e08139a7ecb7b6ab9b8800dfe1290d3de66d2a2601f2" dependencies = [ "bitcoin 0.29.2", "bitcoin-consensus-derive", @@ -3017,6 +3303,15 @@ dependencies = [ "hex", ] +[[package]] +name = "serde_bytes" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" version = "1.0.193" @@ -3081,6 +3376,32 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + [[package]] name = "sha2" version = "0.10.8" @@ -3101,10 +3422,22 @@ dependencies = [ "async-trait", "bytes", "hex", - "sha2", + "sha2 0.10.8", "tokio", ] +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -3129,6 +3462,18 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597" +[[package]] +name = "simple_asn1" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb4ea60fb301dc81dfc113df680571045d375ab7345d171c5dc7d7e13107a80" +dependencies = [ + "chrono", + "num-bigint", + "num-traits", + "thiserror", +] + [[package]] name = "siphasher" version = "0.3.11" @@ -3374,7 +3719,7 @@ dependencies = [ "pbkdf2", "rand", "rustc-hash", - "sha2", + "sha2 0.10.8", "thiserror", "unicode-normalization", "wasm-bindgen", @@ -3632,9 +3977,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "txoo" -version = "0.6.4" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d63e3a8a97175f205a3b101cb100568ce15e6b4e77d88207e9065da4a4e061e" +checksum = "a9db6dd6fd9fff3c0d875c1d8b891481c368b02c76d81bacd0f52f832a3699ef" dependencies = [ "bitcoin 0.29.2", "log", @@ -3820,6 +4165,16 @@ dependencies = [ "serde_json", ] +[[package]] +name = "universal-hash" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" +dependencies = [ + "generic-array", + "subtle", +] + [[package]] name = "universal-hash" version = "0.5.1" @@ -3882,9 +4237,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "vls-core" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e930b25c7dd20dabbff7f564f6a33729ed59c85d759ecfe026d3723c492601b" +checksum = "3e4ffd7d4f73477364006d79e58f7a78e2abf7db1bd715ca285f4dfc897f5a44" dependencies = [ "anyhow", "backtrace", @@ -3904,14 +4259,15 @@ dependencies = [ "serde_bolt", "serde_derive", "serde_with", + "tracing", "txoo", ] [[package]] name = "vls-persist" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd59da7c08b3ec90791c4acc13a590a32b7cfef17c58f42690f1ae1cb2a39e7a" +checksum = "dc1908e667de1b883705b13d6247a1ac276bedf033f08ce0193a1d7313e25b4f" dependencies = [ "hex", "log", @@ -3919,14 +4275,15 @@ dependencies = [ "serde_json", "serde_with", "tempfile", + "tracing", "vls-core", ] [[package]] name = "vls-protocol" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "931878f2eaa91810f7cc183cd9909d6db5c967bda6b7a317aafe710a3e14d30c" +checksum = "f1a587cd1c110fcb5b3ba1ce043f94040c2fd704a05bd4f6aa5d8b9b9bdaaa8b" dependencies = [ "as-any", "bitcoin-consensus-derive", @@ -3935,13 +4292,14 @@ dependencies = [ "log", "serde_bolt", "txoo", + "vls-core", ] [[package]] name = "vls-protocol-signer" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd8e85b22aa3fd45097652a6064e85963ac66f95ce027fe9a5cc87c571ba453" +checksum = "d83515109f514a78497cc13fc81ffc7cc3ff6ef46b623e6a710bc56b60a02b8e" dependencies = [ "bit-vec", "log", diff --git a/libs/Cargo.toml b/libs/Cargo.toml index 0f42bf139..c4be9ca96 100644 --- a/libs/Cargo.toml +++ b/libs/Cargo.toml @@ -23,8 +23,8 @@ base64 = "0.13.0" bitcoin = "=0.29.2" # Same version as used in gl-client # Pin the reqwest dependency until macOS linker issue is fixed: https://github.com/seanmonstar/reqwest/issues/2006 hex = "0.4" -lightning = "=0.0.116" # Same version as used in gl-client -lightning-invoice = "=0.24.0" # Same version as used in gl-client +lightning = "=0.0.118" # Same version as used in gl-client +lightning-invoice = "=0.26.0" # Same version as used in gl-client log = "0.4" mockito = "1" once_cell = "1" diff --git a/libs/sdk-core/Cargo.toml b/libs/sdk-core/Cargo.toml index 72eb258f1..1a1fb5495 100644 --- a/libs/sdk-core/Cargo.toml +++ b/libs/sdk-core/Cargo.toml @@ -12,11 +12,9 @@ flutter_rust_bridge = "=1.82.6" aes = { workspace = true } anyhow = { workspace = true } hex = { workspace = true } -# The last commit on gl-client 0.1. Development will continue on 0.2. -# The switch to 0.2 will happen with https://github.com/breez/breez-sdk/pull/724 gl-client = { git = "https://github.com/Blockstream/greenlight.git", features = [ "permissive", -], rev = "43f02207182e28a4d62e7aa1c79cd098f9b300ba" } +], rev = "7540980dd8f1630b1b148a9eb8b44e2b05ca7e6d" } zbase32 = "0.1.2" base64 = { workspace = true } chrono = "0.4" diff --git a/libs/sdk-core/src/greenlight/node_api.rs b/libs/sdk-core/src/greenlight/node_api.rs index df3b10945..f8b1d3268 100644 --- a/libs/sdk-core/src/greenlight/node_api.rs +++ b/libs/sdk-core/src/greenlight/node_api.rs @@ -10,7 +10,8 @@ use std::time::{Duration, SystemTime, UNIX_EPOCH}; use anyhow::{anyhow, Result}; use ecies::symmetric::{sym_decrypt, sym_encrypt}; use futures::{Future, Stream}; -use gl_client::credentials::{Device, Nobody, TlsConfigProvider}; +use gl_client::credentials::{Device, Nobody}; +use gl_client::node; use gl_client::node::ClnClient; use gl_client::pb::cln::listinvoices_invoices::ListinvoicesInvoicesStatus; use gl_client::pb::cln::listpays_pays::ListpaysPaysStatus; @@ -20,21 +21,17 @@ use gl_client::pb::cln::{ ListclosedchannelsClosedchannels, ListpaysPays, ListpeerchannelsChannels, PreapproveinvoiceRequest, SendpayRequest, SendpayRoute, WaitsendpayRequest, }; -use gl_client::pb::scheduler::scheduler_client::SchedulerClient; -use gl_client::pb::scheduler::{NodeInfoRequest, UpgradeRequest}; use gl_client::pb::{OffChainPayment, PayStatus, TrampolinePayRequest}; use gl_client::scheduler::Scheduler; use gl_client::signer::model::greenlight::{amount, scheduler}; -use gl_client::signer::{Error, Signer}; -use gl_client::{node, utils}; +use gl_client::signer::Signer; use sdk_common::prelude::*; use serde::{Deserialize, Serialize}; use strum_macros::{Display, EnumString}; use tokio::sync::{mpsc, watch, Mutex}; use tokio::time::{sleep, MissedTickBehavior}; use tokio_stream::StreamExt; -use tonic::transport::{Endpoint, Uri}; -use tonic::{Code, Streaming}; +use tonic::Streaming; use crate::bitcoin::bech32::{u5, ToBase32}; use crate::bitcoin::blockdata::constants::WITNESS_SCALE_FACTOR; @@ -178,112 +175,6 @@ impl Greenlight { }) } - /// Create and, if necessary, upgrade the scheduler - async fn init_scheduler(&self) -> Result> { - let channel = Endpoint::from_shared(utils::scheduler_uri())? - .tls_config(self.device.tls_config().client_tls_config())? - .tcp_keepalive(Some(Duration::from_secs(5))) - .http2_keep_alive_interval(Duration::from_secs(5)) - .keep_alive_timeout(Duration::from_secs(90)) - .keep_alive_while_idle(true) - .connect_lazy(); - let mut scheduler = SchedulerClient::new(channel); - - // Upgrade node if necessary. - // If it fails due to connection error, sleep and retry. Re-throw all other errors. - info!("Entering the upgrade loop"); - loop { - #[allow(deprecated)] - let maybe_upgrade_res = scheduler - .maybe_upgrade(UpgradeRequest { - initmsg: self.signer.get_init(), - signer_version: self.signer.version().to_owned(), - startupmsgs: self - .signer - .get_startup_messages() - .into_iter() - .map(|s| s.into()) - .collect(), - }) - .await; - - if let Err(err_status) = maybe_upgrade_res { - match err_status.code() { - Code::Unavailable => { - debug!("Cannot connect to scheduler, sleeping and retrying"); - sleep(Duration::from_secs(3)).await; - continue; - } - _ => { - return Err(Error::Upgrade(err_status))?; - } - } - } - - break; - } - - Ok(scheduler) - } - - /// The core signer loop. Connects to the signer and keeps the connection alive. - /// - /// Used as inner loop for `run_forever`. - async fn run_forever_inner( - &self, - mut scheduler: SchedulerClient, - ) -> Result<(), anyhow::Error> { - loop { - debug!("Start of the signer loop, getting node_info from scheduler"); - let node_info_res = scheduler - .get_node_info(NodeInfoRequest { - node_id: self.signer.node_id(), - // Purposely not using the `wait` parameter - wait: false, - }) - .await; - - let node_info = match node_info_res.map(|v| v.into_inner()) { - Ok(v) => { - debug!("Got node_info from scheduler: {:?}", v); - v - } - Err(e) => { - trace!("Got an error from the scheduler: {e}. Sleeping before retrying"); - sleep(Duration::from_millis(1000)).await; - continue; - } - }; - - if node_info.grpc_uri.is_empty() { - trace!("Got an empty GRPC URI, node is not scheduled, sleeping and retrying"); - sleep(Duration::from_millis(1000)).await; - continue; - } - - if let Err(e) = self - .signer - .run_once(Uri::from_maybe_shared(node_info.grpc_uri)?) - .await - { - warn!("Error running against node: {e}"); - } - } - } - - async fn run_forever(&self, mut shutdown: mpsc::Receiver<()>) -> Result<(), anyhow::Error> { - let scheduler = self.init_scheduler().await?; - tokio::select! { - run_forever_inner_res = self.run_forever_inner(scheduler) => { - error!("Inner signer loop exited unexpectedly: {run_forever_inner_res:?}"); - }, - _ = shutdown.recv() => debug!("Received the signal to exit the signer loop") - }; - - info!("Exiting the signer loop"); - Ok(()) - } - fn derive_bip32_key( network: Network, signer: &Signer, @@ -1325,7 +1216,7 @@ impl NodeAPI for Greenlight { /// Starts the signer that listens in a loop until the shutdown signal is received async fn start_signer(&self, shutdown: mpsc::Receiver<()>) { - match self.run_forever(shutdown).await { + match self.signer.run_forever(shutdown).await { Ok(_) => info!("signer exited gracefully"), Err(e) => error!("signer exited with error: {e}"), } diff --git a/tools/sdk-cli/Cargo.lock b/tools/sdk-cli/Cargo.lock index 211e401be..cbda434ed 100644 --- a/tools/sdk-cli/Cargo.lock +++ b/tools/sdk-cli/Cargo.lock @@ -17,6 +17,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aead" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +dependencies = [ + "generic-array", +] + [[package]] name = "aead" version = "0.5.2" @@ -27,6 +36,18 @@ dependencies = [ "generic-array", ] +[[package]] +name = "aes" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +dependencies = [ + "cfg-if", + "cipher 0.3.0", + "cpufeatures", + "opaque-debug", +] + [[package]] name = "aes" version = "0.8.2" @@ -34,21 +55,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures", ] +[[package]] +name = "aes-gcm" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f" +dependencies = [ + "aead 0.4.3", + "aes 0.7.5", + "cipher 0.3.0", + "ctr 0.7.0", + "ghash 0.4.4", + "subtle", +] + [[package]] name = "aes-gcm" version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", + "aead 0.5.2", + "aes 0.8.2", + "cipher 0.4.4", + "ctr 0.9.2", + "ghash 0.5.0", "subtle", ] @@ -432,6 +467,16 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding 0.2.1", + "generic-array", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -441,6 +486,12 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + [[package]] name = "block-padding" version = "0.3.3" @@ -452,9 +503,9 @@ dependencies = [ [[package]] name = "bolt-derive" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4a20c5d2dd939142aa8edcfcaa5126bf0e4483d8edce6502037c2b0adbe069" +checksum = "d5d9d752698eaa9d487c8bd9e587c4ee941ed79e8fe70ededde3bc1d24508f64" dependencies = [ "proc-macro2", "quote", @@ -482,7 +533,7 @@ dependencies = [ name = "breez-sdk-core" version = "0.5.1-rc6" dependencies = [ - "aes", + "aes 0.8.2", "anyhow", "base64 0.13.1", "chrono", @@ -538,6 +589,12 @@ version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "bytes" version = "1.6.0" @@ -550,7 +607,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] @@ -572,7 +629,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures", ] @@ -582,9 +639,9 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ - "aead", + "aead 0.5.2", "chacha20", - "cipher", + "cipher 0.4.4", "poly1305", "zeroize", ] @@ -610,6 +667,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa622bd314835eb026b776af471344d0dba94705c937900656a31d0407e53689" +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array", +] + [[package]] name = "cipher" version = "0.4.4" @@ -777,13 +843,22 @@ dependencies = [ "typenum", ] +[[package]] +name = "ctr" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" +dependencies = [ + "cipher 0.3.0", +] + [[package]] name = "ctr" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] @@ -891,7 +966,7 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", + "block-buffer 0.10.4", "crypto-common", "subtle", ] @@ -919,14 +994,14 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53f43496fc04523aa716c5dd76133cb6d7c81eb213375684d06a8b1683f8bc1e" dependencies = [ - "aes-gcm", + "aes-gcm 0.10.3", "getrandom", "hkdf", "libsecp256k1", "once_cell", "parking_lot", "rand_core", - "sha2", + "sha2 0.10.7", "typenum", "wasm-bindgen", ] @@ -1228,6 +1303,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "ghash" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +dependencies = [ + "opaque-debug", + "polyval 0.5.3", +] + [[package]] name = "ghash" version = "0.5.0" @@ -1235,7 +1320,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ "opaque-debug", - "polyval", + "polyval 0.6.1", ] [[package]] @@ -1247,14 +1332,16 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "gl-client" version = "0.2.0" -source = "git+https://github.com/Blockstream/greenlight.git?rev=43f02207182e28a4d62e7aa1c79cd098f9b300ba#43f02207182e28a4d62e7aa1c79cd098f9b300ba" +source = "git+https://github.com/Blockstream/greenlight.git?rev=7540980dd8f1630b1b148a9eb8b44e2b05ca7e6d#7540980dd8f1630b1b148a9eb8b44e2b05ca7e6d" dependencies = [ "anyhow", + "async-stream", "async-trait", "base64 0.21.2", "bech32", "bytes", "chacha20poly1305", + "chrono", "cln-grpc", "futures", "hex", @@ -1262,6 +1349,9 @@ dependencies = [ "http-body", "log", "mockall", + "picky", + "picky-asn1-der 0.4.1", + "picky-asn1-x509 0.12.0", "pin-project", "prost", "prost-derive", @@ -1273,13 +1363,13 @@ dependencies = [ "rustls-pemfile", "secp256k1 0.26.0", "serde", - "serde_bolt", "serde_json", "sha256", "tempfile", "thiserror", "time", "tokio", + "tokio-stream", "tonic", "tonic-build", "tower", @@ -1590,7 +1680,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "block-padding", + "block-padding 0.3.3", "generic-array", ] @@ -1647,11 +1737,23 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] [[package]] name = "libc" @@ -1659,6 +1761,12 @@ version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "libsecp256k1" version = "0.7.1" @@ -1717,9 +1825,9 @@ dependencies = [ [[package]] name = "lightning" -version = "0.0.116" +version = "0.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90a0f2155316f1570446a0447c993480673f840748c8ed25bbc59dfc442ac770" +checksum = "d52cec5fa9382154fe9671e8df93095b800c7d77abc66e2a5ef839d672521c5e" dependencies = [ "bitcoin 0.29.2", "hex", @@ -1728,9 +1836,9 @@ dependencies = [ [[package]] name = "lightning-invoice" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788c0158526ec27a502043c2911ea6ea58fdc656bdf8749484942c07b790d23" +checksum = "3eb24878b0f4ef75f020976c886d9ad1503867802329cc963e0ab4623ea3b25c" dependencies = [ "bech32", "bitcoin 0.29.2", @@ -1910,6 +2018,24 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-bigint-dig" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9bc3e36fd683e004fd59c64a425e0e991616f5a8b617c3b9a933a93c168facc" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand", + "serde", + "smallvec", + "zeroize", +] + [[package]] name = "num-conv" version = "0.1.0" @@ -1926,6 +2052,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-iter" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -1933,6 +2070,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1954,6 +2092,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "oid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c19903c598813dba001b53beeae59bb77ad4892c5c1b9b3500ce4293a0d06c2" +dependencies = [ + "serde", +] + [[package]] name = "oid-registry" version = "0.6.1" @@ -2061,6 +2208,17 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "pem" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb" +dependencies = [ + "base64 0.13.1", + "once_cell", + "regex", +] + [[package]] name = "pem" version = "1.1.1" @@ -2102,6 +2260,102 @@ dependencies = [ "indexmap 1.9.3", ] +[[package]] +name = "picky" +version = "6.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6b25b296bb2a45678748f61c51f5a548ea56b25b0ad4966183709b386eaecf" +dependencies = [ + "aes-gcm 0.9.2", + "base64 0.13.1", + "digest 0.9.0", + "http", + "num-bigint-dig", + "oid", + "picky-asn1 0.3.3", + "picky-asn1-der 0.2.5", + "picky-asn1-x509 0.6.1", + "rand", + "rsa", + "serde", + "serde_json", + "sha-1", + "sha2 0.9.9", + "sha3", + "thiserror", +] + +[[package]] +name = "picky-asn1" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "889bbb26c80acf919e89980dfc8e04eb19df272d8a9893ec9b748d3a1675abde" +dependencies = [ + "oid", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "295eea0f33c16be21e2a98b908fdd4d73c04dd48c8480991b76dbcf0cb58b212" +dependencies = [ + "oid", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1-der" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbbd5390ab967396cc7473e6e0848684aec7166e657c6088604e07b54a73dbe" +dependencies = [ + "picky-asn1 0.3.3", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1-der" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5df7873a9e36d42dadb393bea5e211fe83d793c172afad5fb4ec846ec582793f" +dependencies = [ + "picky-asn1 0.8.0", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1-x509" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3033675030de806aba1d5470949701b7c9f1dbf77e3bb17bd12e5f945e560ba" +dependencies = [ + "base64 0.13.1", + "num-bigint-dig", + "oid", + "picky-asn1 0.3.3", + "picky-asn1-der 0.2.5", + "serde", +] + +[[package]] +name = "picky-asn1-x509" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c5f20f71a68499ff32310f418a6fad8816eac1a2859ed3f0c5c741389dd6208" +dependencies = [ + "base64 0.21.2", + "oid", + "picky-asn1 0.8.0", + "picky-asn1-der 0.4.1", + "serde", +] + [[package]] name = "pin-project" version = "1.1.5" @@ -2148,7 +2402,19 @@ checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", "opaque-debug", - "universal-hash", + "universal-hash 0.5.1", +] + +[[package]] +name = "polyval" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash 0.4.0", ] [[package]] @@ -2160,7 +2426,7 @@ dependencies = [ "cfg-if", "cpufeatures", "opaque-debug", - "universal-hash", + "universal-hash 0.5.1", ] [[package]] @@ -2471,6 +2737,26 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "rsa" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ef841a26fc5d040ced0417c6c6a64ee851f42489df11cdf0218e545b6f8d28" +dependencies = [ + "byteorder", + "digest 0.9.0", + "lazy_static", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pem 0.8.3", + "rand", + "simple_asn1", + "subtle", + "zeroize", +] + [[package]] name = "runeauth" version = "0.1.4" @@ -2483,7 +2769,7 @@ dependencies = [ "env_logger 0.10.0", "hex", "indexmap 2.0.0", - "sha2", + "sha2 0.10.7", "thiserror", ] @@ -2691,7 +2977,7 @@ dependencies = [ name = "sdk-common" version = "0.5.1-rc6" dependencies = [ - "aes", + "aes 0.8.2", "anyhow", "base64 0.13.1", "bip21", @@ -2799,9 +3085,9 @@ dependencies = [ [[package]] name = "serde_bolt" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54f634eeb988ab754b0711815e13e6ad983bfc52f76e0af342d492c6cad4f681" +checksum = "b06b8577e0fd88c67c88e08139a7ecb7b6ab9b8800dfe1290d3de66d2a2601f2" dependencies = [ "bitcoin 0.29.2", "bitcoin-consensus-derive", @@ -2809,6 +3095,15 @@ dependencies = [ "hex", ] +[[package]] +name = "serde_bytes" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" version = "1.0.204" @@ -2873,6 +3168,32 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + [[package]] name = "sha2" version = "0.10.7" @@ -2893,10 +3214,22 @@ dependencies = [ "async-trait", "bytes", "hex", - "sha2", + "sha2 0.10.7", "tokio", ] +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -2915,6 +3248,18 @@ dependencies = [ "rand_core", ] +[[package]] +name = "simple_asn1" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb4ea60fb301dc81dfc113df680571045d375ab7345d171c5dc7d7e13107a80" +dependencies = [ + "chrono", + "num-bigint", + "num-traits", + "thiserror", +] + [[package]] name = "slab" version = "0.4.8" @@ -3138,7 +3483,7 @@ dependencies = [ "pbkdf2", "rand", "rustc-hash", - "sha2", + "sha2 0.10.7", "thiserror", "unicode-normalization", "wasm-bindgen", @@ -3339,11 +3684,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if", "log", "pin-project-lite", "tracing-attributes", @@ -3352,9 +3696,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", @@ -3363,9 +3707,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", ] @@ -3388,9 +3732,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "txoo" -version = "0.6.4" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d63e3a8a97175f205a3b101cb100568ce15e6b4e77d88207e9065da4a4e061e" +checksum = "a9db6dd6fd9fff3c0d875c1d8b891481c368b02c76d81bacd0f52f832a3699ef" dependencies = [ "bitcoin 0.29.2", "log", @@ -3443,6 +3787,16 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "universal-hash" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" +dependencies = [ + "generic-array", + "subtle", +] + [[package]] name = "universal-hash" version = "0.5.1" @@ -3511,9 +3865,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "vls-core" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e930b25c7dd20dabbff7f564f6a33729ed59c85d759ecfe026d3723c492601b" +checksum = "3e4ffd7d4f73477364006d79e58f7a78e2abf7db1bd715ca285f4dfc897f5a44" dependencies = [ "anyhow", "backtrace", @@ -3533,14 +3887,15 @@ dependencies = [ "serde_bolt", "serde_derive", "serde_with", + "tracing", "txoo", ] [[package]] name = "vls-persist" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd59da7c08b3ec90791c4acc13a590a32b7cfef17c58f42690f1ae1cb2a39e7a" +checksum = "dc1908e667de1b883705b13d6247a1ac276bedf033f08ce0193a1d7313e25b4f" dependencies = [ "hex", "log", @@ -3548,14 +3903,15 @@ dependencies = [ "serde_json", "serde_with", "tempfile", + "tracing", "vls-core", ] [[package]] name = "vls-protocol" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "931878f2eaa91810f7cc183cd9909d6db5c967bda6b7a317aafe710a3e14d30c" +checksum = "f1a587cd1c110fcb5b3ba1ce043f94040c2fd704a05bd4f6aa5d8b9b9bdaaa8b" dependencies = [ "as-any", "bitcoin-consensus-derive", @@ -3564,13 +3920,14 @@ dependencies = [ "log", "serde_bolt", "txoo", + "vls-core", ] [[package]] name = "vls-protocol-signer" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd8e85b22aa3fd45097652a6064e85963ac66f95ce027fe9a5cc87c571ba453" +checksum = "d83515109f514a78497cc13fc81ffc7cc3ff6ef46b623e6a710bc56b60a02b8e" dependencies = [ "bit-vec", "log",