From 91759d8de5bdfe7db362dada8f8f57ae6b101e49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Granh=C3=A3o?= Date: Thu, 2 Jan 2025 17:15:37 +0000 Subject: [PATCH 1/5] Document amountless swaps --- snippets/rust/Cargo.lock | 1291 +++++++++++++++++++------- snippets/rust/Cargo.toml | 4 +- snippets/rust/src/list_payments.rs | 3 + snippets/rust/src/receive_onchain.rs | 38 + src/guide/receive_payment.md | 26 +- 5 files changed, 1002 insertions(+), 360 deletions(-) diff --git a/snippets/rust/Cargo.lock b/snippets/rust/Cargo.lock index 1f1d24c3..a619237b 100644 --- a/snippets/rust/Cargo.lock +++ b/snippets/rust/Cargo.lock @@ -4,19 +4,13 @@ version = 4 [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.0" @@ -93,9 +87,9 @@ dependencies = [ [[package]] name = "allo-isolate" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b6d794345b06592d0ebeed8e477e41b71e5a0a49df4fc0e4184d5938b99509" +checksum = "1f67642eb6773fb42a95dd3b348c305ee18dee6642274c6b412d67e985e3befc" dependencies = [ "anyhow", "atomic", @@ -138,9 +132,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -153,47 +147,53 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" dependencies = [ "backtrace", ] +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + [[package]] name = "arrayvec" version = "0.7.6" @@ -212,7 +212,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -224,7 +224,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", "synstructure", ] @@ -236,14 +236,14 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -252,24 +252,24 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] name = "async-trait" -version = "0.1.82" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] @@ -297,9 +297,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" @@ -308,13 +308,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" dependencies = [ "async-trait", - "axum-core", + "axum-core 0.3.4", "bitflags 1.3.2", "bytes", "futures-util", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.30", + "hyper 0.14.32", "itoa", "matchit", "memchr", @@ -324,7 +324,34 @@ dependencies = [ "rustversion", "serde", "sync_wrapper 0.1.2", - "tower", + "tower 0.4.13", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +dependencies = [ + "async-trait", + "axum-core 0.4.5", + "bytes", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 1.0.2", + "tower 0.5.2", "tower-layer", "tower-service", ] @@ -346,19 +373,39 @@ dependencies = [ "tower-service", ] +[[package]] +name = "axum-core" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 1.0.2", + "tower-layer", + "tower-service", +] + [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", - "miniz_oxide 0.7.4", + "miniz_oxide", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -419,11 +466,11 @@ dependencies = [ [[package]] name = "bip39" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" +checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" dependencies = [ - "bitcoin_hashes 0.11.0", + "bitcoin_hashes 0.13.0", "rand", "rand_core", "serde", @@ -472,9 +519,9 @@ dependencies = [ [[package]] name = "bitcoin" -version = "0.32.4" +version = "0.32.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "788902099d47c8682efe6a7afb01c8d58b9794ba66c06affd81c3d6b560743eb" +checksum = "ce6bc65742dea50536e35ad42492b234c27904a27f0abdcbce605015cb4ea026" dependencies = [ "base58ck", "bech32 0.11.0", @@ -630,40 +677,46 @@ dependencies = [ [[package]] name = "breez-sdk-liquid" version = "0.4.0-rc3" -source = "git+https://github.com/breez/breez-sdk-liquid?rev=e3fa3d62d180e13cc8a9181a5ad28f4e1d18eb64#e3fa3d62d180e13cc8a9181a5ad28f4e1d18eb64" +source = "git+https://github.com/breez/breez-sdk-liquid?rev=a020ed5ddb53fdb6b8624f6eb70ee9e6e76e2ee4#a020ed5ddb53fdb6b8624f6eb70ee9e6e76e2ee4" dependencies = [ "anyhow", "async-trait", "bip39", "boltz-client", "chrono", + "ecies", "electrum-client", - "env_logger 0.11.5", + "env_logger 0.11.6", "flutter_rust_bridge", "futures-util", "glob", "hex", + "lazy_static", "lightning 0.0.125", "log", "lwk_common", "lwk_signer", "lwk_wollet", "openssl", + "prost 0.13.4", "reqwest 0.11.20", "rusqlite", "rusqlite_migration", "sdk-common", "security-framework", "security-framework-sys", + "semver", "serde", "serde_json", "strum", "strum_macros", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-tungstenite", + "tonic 0.12.3", + "tonic-build 0.12.3", "url", "x509-parser", "zbase32", @@ -683,9 +736,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.17.1" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773d90827bc3feecfb67fab12e24de0749aad83c74b9504ecde46237b5cd24e2" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" [[package]] name = "byteorder" @@ -695,9 +748,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cbc" @@ -710,9 +763,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.15" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" +checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333" dependencies = [ "shlex", ] @@ -723,11 +776,17 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", @@ -759,9 +818,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "console_error_panic_hook" @@ -791,9 +850,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -807,6 +866,18 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-common" version = "0.1.6" @@ -894,7 +965,7 @@ checksum = "51aac4c99b2e6775164b412ea33ae8441b2fde2dbf05a20bc0052a63d08c475b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] @@ -920,6 +991,15 @@ dependencies = [ "powerfmt", ] +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + [[package]] name = "digest" version = "0.10.7" @@ -939,7 +1019,24 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", +] + +[[package]] +name = "ecies" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0206e602d2645ec8b24ed8307fadbc6c3110e2b11ab2f806fc02fee49327079" +dependencies = [ + "getrandom", + "hkdf", + "libsecp256k1", + "once_cell", + "openssl", + "parking_lot 0.12.3", + "rand_core", + "sha2", + "wasm-bindgen", ] [[package]] @@ -991,18 +1088,18 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] [[package]] name = "env_filter" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ "log", "regex", @@ -1033,9 +1130,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" dependencies = [ "anstream", "anstyle", @@ -1052,12 +1149,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1074,9 +1171,9 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] name = "fastrand" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fixedbitset" @@ -1086,12 +1183,12 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", - "miniz_oxide 0.8.0", + "miniz_oxide", ] [[package]] @@ -1133,7 +1230,7 @@ dependencies = [ "md-5", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] @@ -1168,9 +1265,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -1183,9 +1280,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -1193,15 +1290,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -1210,38 +1307,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -1276,9 +1373,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", "js-sys", @@ -1289,15 +1386,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "h2" @@ -1311,7 +1408,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.5.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -1320,17 +1417,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.5.0", + "http 1.2.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -1358,6 +1455,12 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + [[package]] name = "hashlink" version = "0.9.1" @@ -1415,22 +1518,31 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + [[package]] name = "hmac" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest", + "digest 0.10.7", ] [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1446,9 +1558,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -1473,7 +1585,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.2.0", ] [[package]] @@ -1484,16 +1596,16 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -1518,9 +1630,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.30" +version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ "bytes", "futures-channel", @@ -1542,17 +1654,18 @@ dependencies = [ [[package]] name = "hyper" -version = "1.4.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.7", + "http 1.2.0", "http-body 1.0.1", "httparse", + "httpdate", "itoa", "pin-project-lite", "smallvec", @@ -1562,20 +1675,20 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.4.1", + "http 1.2.0", + "hyper 1.5.2", "hyper-util", - "rustls 0.23.12", + "rustls 0.23.20", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.1", "tower-service", - "webpki-roots 0.26.5", + "webpki-roots 0.26.7", ] [[package]] @@ -1584,12 +1697,25 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper 0.14.30", + "hyper 0.14.32", "pin-project-lite", "tokio", "tokio-io-timeout", ] +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper 1.5.2", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + [[package]] name = "hyper-tls" version = "0.5.0" @@ -1597,7 +1723,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "hyper 0.14.30", + "hyper 0.14.32", "native-tls", "tokio", "tokio-native-tls", @@ -1605,29 +1731,28 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", - "hyper 1.4.1", + "hyper 1.5.2", "pin-project-lite", "socket2", "tokio", - "tower", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1646,6 +1771,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.94", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -1664,12 +1907,23 @@ dependencies = [ [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -1684,12 +1938,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.5.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] [[package]] @@ -1713,9 +1967,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "is_terminal_polyfill" @@ -1734,16 +1988,17 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1755,9 +2010,54 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "libsecp256k1" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +dependencies = [ + "arrayref", + "base64 0.13.1", + "digest 0.9.0", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand", + "serde", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core", +] [[package]] name = "libsqlite3-sys" @@ -1796,7 +2096,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "767f388e50251da71f95a3737d6db32c9729f9de6427a54fa92bb994d04d793f" dependencies = [ "bech32 0.9.1", - "bitcoin 0.32.4", + "bitcoin 0.32.5", "lightning-invoice 0.32.0", "lightning-types", ] @@ -1835,7 +2135,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90ab9f6ea77e20e3129235e62a2e6bd64ed932363df104e864ee65ccffb54a8f" dependencies = [ "bech32 0.9.1", - "bitcoin 0.32.4", + "bitcoin 0.32.5", "lightning-types", ] @@ -1846,7 +2146,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1083b8d9137000edf3bfcb1ff011c0d25e0cdd2feb98cc21d6765e64a494148f" dependencies = [ "bech32 0.9.1", - "bitcoin 0.32.4", + "bitcoin 0.32.5", "hex-conservative 0.2.1", ] @@ -1867,6 +2167,12 @@ dependencies = [ "tokio", ] +[[package]] +name = "litemap" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" + [[package]] name = "lock_api" version = "0.4.12" @@ -1895,7 +2201,7 @@ dependencies = [ "getrandom", "qr_code", "rand", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1922,13 +2228,13 @@ dependencies = [ "lwk_common", "lwk_containers", "rand", - "reqwest 0.12.7", + "reqwest 0.12.12", "serde", "serde_bytes", "serde_cbor", "serde_json", "tempfile", - "thiserror", + "thiserror 1.0.69", "tracing", "wasm-timer", ] @@ -1944,7 +2250,7 @@ dependencies = [ "elements-miniscript", "lwk_common", "lwk_jade", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1964,10 +2270,10 @@ dependencies = [ "once_cell", "rand", "regex-lite", - "reqwest 0.12.7", + "reqwest 0.12.12", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -1984,7 +2290,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ "cfg-if", - "digest", + "digest 0.10.7", ] [[package]] @@ -2018,29 +2324,19 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - -[[package]] -name = "miniz_oxide" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" dependencies = [ "adler2", ] [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", "wasi", "windows-sys 0.52.0", @@ -2125,9 +2421,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.4" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] @@ -2143,9 +2439,13 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +dependencies = [ + "critical-section", + "portable-atomic", +] [[package]] name = "opaque-debug" @@ -2155,9 +2455,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -2176,7 +2476,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] @@ -2187,18 +2487,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.3.2+3.3.2" +version = "300.4.1+3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" +checksum = "faa4eac4138c62414b5622d1b31c5c304f34b406b013c079c2bbc652fdd6678c" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -2261,7 +2561,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.7", + "redox_syscall 0.5.8", "smallvec", "windows-targets 0.52.6", ] @@ -2285,34 +2585,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.5.0", + "indexmap 2.7.0", ] [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -2322,9 +2622,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polyval" @@ -2338,6 +2638,12 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "portable-atomic" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" + [[package]] name = "powerfmt" version = "0.2.0" @@ -2363,11 +2669,21 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prettyplease" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +dependencies = [ + "proc-macro2", + "syn 2.0.94", +] + [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -2379,7 +2695,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" +dependencies = [ + "bytes", + "prost-derive 0.13.4", ] [[package]] @@ -2395,15 +2721,35 @@ dependencies = [ "log", "multimap", "petgraph", - "prettyplease", - "prost", - "prost-types", + "prettyplease 0.1.25", + "prost 0.11.9", + "prost-types 0.11.9", "regex", "syn 1.0.109", "tempfile", "which", ] +[[package]] +name = "prost-build" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" +dependencies = [ + "heck", + "itertools", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease 0.2.25", + "prost 0.13.4", + "prost-types 0.13.4", + "regex", + "syn 2.0.94", + "tempfile", +] + [[package]] name = "prost-derive" version = "0.11.9" @@ -2417,13 +2763,35 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prost-derive" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn 2.0.94", +] + [[package]] name = "prost-types" version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "prost", + "prost 0.11.9", +] + +[[package]] +name = "prost-types" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" +dependencies = [ + "prost 0.13.4", ] [[package]] @@ -2449,45 +2817,49 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.12", + "rustls 0.23.20", "socket2", - "thiserror", + "thiserror 2.0.9", "tokio", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", + "getrandom", "rand", "ring 0.17.8", "rustc-hash", - "rustls 0.23.12", + "rustls 0.23.20", + "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.9", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" dependencies = [ + "cfg_aliases", "libc", "once_cell", "socket2", @@ -2497,9 +2869,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -2545,18 +2917,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ "bitflags 2.6.0", ] [[package]] name = "regex" -version = "1.10.6" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -2566,9 +2938,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -2583,9 +2955,9 @@ checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" @@ -2601,7 +2973,7 @@ dependencies = [ "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.30", + "hyper 0.14.32", "hyper-tls", "ipnet", "js-sys", @@ -2626,9 +2998,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.7" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" dependencies = [ "base64 0.22.1", "bytes", @@ -2636,11 +3008,11 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.7", + "http 1.2.0", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.2", "hyper-rustls", "hyper-util", "ipnet", @@ -2651,22 +3023,23 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.12", - "rustls-pemfile 2.1.3", + "rustls 0.23.20", + "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "system-configuration", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.1", + "tower 0.5.2", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.26.5", + "webpki-roots 0.26.7", "windows-registry", ] @@ -2732,9 +3105,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" [[package]] name = "rusticata-macros" @@ -2747,15 +3120,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.35" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2784,15 +3157,15 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" dependencies = [ "log", "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.7", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] @@ -2820,19 +3193,21 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" +dependencies = [ + "web-time", +] [[package]] name = "rustls-webpki" @@ -2846,9 +3221,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.7" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -2857,9 +3232,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" @@ -2869,11 +3244,11 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2895,7 +3270,7 @@ dependencies = [ [[package]] name = "sdk-common" version = "0.6.2" -source = "git+https://github.com/breez/breez-sdk?rev=e537feb8ed134bc3c7af5196e10a0a189dd36ac7#e537feb8ed134bc3c7af5196e10a0a189dd36ac7" +source = "git+https://github.com/breez/breez-sdk?rev=f77208acd34d74b571388889e856444908c59a85#f77208acd34d74b571388889e856444908c59a85" dependencies = [ "aes 0.8.4", "anyhow", @@ -2909,17 +3284,17 @@ dependencies = [ "lightning-invoice 0.26.0", "log", "percent-encoding", - "prost", + "prost 0.11.9", "querystring", "regex", "reqwest 0.11.20", "serde", "serde_json", "strum_macros", - "thiserror", + "thiserror 1.0.69", "tokio", - "tonic", - "tonic-build", + "tonic 0.8.3", + "tonic-build 0.8.4", "url", "urlencoding", ] @@ -3046,11 +3421,17 @@ dependencies = [ "libc", ] +[[package]] +name = "semver" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" + [[package]] name = "serde" -version = "1.0.209" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] @@ -3076,20 +3457,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.209" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] name = "serde_json" -version = "1.0.127" +version = "1.0.134" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" dependencies = [ "itoa", "memchr", @@ -3139,7 +3520,7 @@ checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", - "digest", + "digest 0.10.7", ] [[package]] @@ -3150,7 +3531,7 @@ checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", - "digest", + "digest 0.10.7", ] [[package]] @@ -3185,9 +3566,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -3205,6 +3586,12 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "strsim" version = "0.10.0" @@ -3227,7 +3614,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] @@ -3249,9 +3636,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "987bc0be1cdea8b10216bd06e2ca407d40b9543468fafd3ddfb02f36e77f71f3" dependencies = [ "proc-macro2", "quote", @@ -3266,9 +3653,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -3281,7 +3668,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] @@ -3307,9 +3694,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -3346,22 +3733,42 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.9", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.94", ] [[package]] @@ -3375,9 +3782,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -3396,19 +3803,29 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -3455,7 +3872,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] @@ -3481,20 +3898,19 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.12", - "rustls-pki-types", + "rustls 0.23.20", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -3518,9 +3934,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -3537,7 +3953,7 @@ checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" dependencies = [ "async-stream", "async-trait", - "axum", + "axum 0.6.20", "base64 0.13.1", "bytes", "futures-core", @@ -3545,19 +3961,19 @@ dependencies = [ "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.30", - "hyper-timeout", + "hyper 0.14.32", + "hyper-timeout 0.4.1", "percent-encoding", "pin-project", - "prost", - "prost-derive", + "prost 0.11.9", + "prost-derive 0.11.9", "rustls-native-certs", "rustls-pemfile 1.0.4", "tokio", "tokio-rustls 0.23.4", "tokio-stream", "tokio-util", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -3565,19 +3981,66 @@ dependencies = [ "webpki-roots 0.22.6", ] +[[package]] +name = "tonic" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +dependencies = [ + "async-stream", + "async-trait", + "axum 0.7.9", + "base64 0.22.1", + "bytes", + "h2 0.4.7", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.2", + "hyper-timeout 0.5.2", + "hyper-util", + "percent-encoding", + "pin-project", + "prost 0.13.4", + "rustls-pemfile 2.2.0", + "socket2", + "tokio", + "tokio-rustls 0.26.1", + "tokio-stream", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing", + "webpki-roots 0.26.7", +] + [[package]] name = "tonic-build" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4" dependencies = [ - "prettyplease", + "prettyplease 0.1.25", "proc-macro2", - "prost-build", + "prost-build 0.11.9", "quote", "syn 1.0.109", ] +[[package]] +name = "tonic-build" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" +dependencies = [ + "prettyplease 0.2.25", + "proc-macro2", + "prost-build 0.13.4", + "prost-types 0.13.4", + "quote", + "syn 2.0.94", +] + [[package]] name = "tower" version = "0.4.13" @@ -3598,6 +4061,21 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 1.0.2", + "tokio", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -3612,9 +4090,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -3623,20 +4101,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", ] @@ -3666,13 +4144,13 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.1.0", + "http 1.2.0", "httparse", "log", "native-tls", "rand", "sha1", - "thiserror", + "thiserror 1.0.69", "url", "utf-8", ] @@ -3685,15 +4163,15 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" @@ -3728,31 +4206,31 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.10.1" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" +checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" dependencies = [ "base64 0.22.1", "flate2", "log", "native-tls", "once_cell", - "rustls 0.23.12", + "rustls 0.23.20", "rustls-pki-types", "serde", "serde_json", "url", - "webpki-roots 0.26.5", + "webpki-roots 0.26.7", ] [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna 1.0.3", "percent-encoding", ] @@ -3768,6 +4246,18 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -3803,9 +4293,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", "once_cell", @@ -3814,36 +4304,36 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3851,22 +4341,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] name = "wasm-timer" @@ -3885,9 +4375,19 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -3920,9 +4420,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.5" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -4167,6 +4667,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "x509-parser" version = "0.16.0" @@ -4180,10 +4692,34 @@ dependencies = [ "nom", "oid-registry", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.94", + "synstructure", +] + [[package]] name = "zbase32" version = "0.1.2" @@ -4208,7 +4744,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.94", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.94", + "synstructure", ] [[package]] @@ -4216,3 +4773,25 @@ name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.94", +] diff --git a/snippets/rust/Cargo.toml b/snippets/rust/Cargo.toml index 61ce8752..a584b362 100644 --- a/snippets/rust/Cargo.toml +++ b/snippets/rust/Cargo.toml @@ -6,9 +6,9 @@ edition = "2021" [dependencies] anyhow = "1" bip39 = { version = "2", features = ["rand"] } -breez-sdk-liquid = { git = "https://github.com/breez/breez-sdk-liquid", rev = "e3fa3d62d180e13cc8a9181a5ad28f4e1d18eb64" } +breez-sdk-liquid = { git = "https://github.com/breez/breez-sdk-liquid", rev = "a020ed5ddb53fdb6b8624f6eb70ee9e6e76e2ee4" } log = "0.4" -tokio = "1.29" +tokio = "1.42.0" [patch.crates-io] secp256k1-zkp = { git = 'https://github.com/sanket1729/rust-secp256k1-zkp.git', rev = '60e631c24588a0c9e271badd61959294848c665d' } diff --git a/snippets/rust/src/list_payments.rs b/snippets/rust/src/list_payments.rs index 4b3da2b1..92838f62 100644 --- a/snippets/rust/src/list_payments.rs +++ b/snippets/rust/src/list_payments.rs @@ -27,6 +27,7 @@ async fn list_payments_filtered(sdk: Arc) -> Result> { let payments = sdk .list_payments(&ListPaymentsRequest { filters: Some(vec![PaymentType::Send]), + states: None, from_timestamp: Some(1696880000), to_timestamp: Some(1696959200), offset: Some(0), @@ -45,6 +46,7 @@ async fn list_payments_details_address(sdk: Arc) -> Result) -> Result) -> Result<()> { // ANCHOR: list-refundables @@ -46,3 +48,39 @@ async fn recommended_fees(sdk: Arc) -> Result<()> { dbg!(fees); Ok(()) } + +async fn handle_payments_waiting_fee_acceptance(sdk: Arc) -> Result<()> { + // ANCHOR: handle-payments-waiting-fee-acceptance + // Payments on hold waiting for fee acceptance have the state WaitingFeeAcceptance + let payments_waiting_fee_acceptance = sdk + .list_payments(&ListPaymentsRequest { + states: Some(vec![WaitingFeeAcceptance]), + ..Default::default() + }) + .await?; + + for payment in payments_waiting_fee_acceptance { + let PaymentDetails::Bitcoin { swap_id, .. } = payment.details else { + // Only Bitcoin payments can be `WaitingFeeAcceptance` + continue; + }; + + let fetch_fees_response = sdk + .fetch_payment_proposed_fees(&FetchPaymentProposedFeesRequest { swap_id }) + .await?; + + info!( + "Payer sent {} and currently proposed fees are {}", + fetch_fees_response.payer_amount_sat, fetch_fees_response.fees_sat + ); + + // If the user is ok with the fees, accept them, allowing the payment to proceed + sdk.accept_payment_proposed_fees(&AcceptPaymentProposedFeesRequest { + response: fetch_fees_response, + }) + .await?; + } + // ANCHOR_END: handle-payments-waiting-fee-acceptance + + Ok(()) +} diff --git a/src/guide/receive_payment.md b/src/guide/receive_payment.md index 2d608672..43cfeabe 100644 --- a/src/guide/receive_payment.md +++ b/src/guide/receive_payment.md @@ -93,8 +93,12 @@ When receiving via Lightning, we generate an invoice to be paid. Note that the ### Bitcoin When receiving via Bitcoin, we generate a Bitcoin BIP21 URI to be paid. +The `amount` field is optional when preparing a Bitcoin payment. However, if no amount is provided, the returned fees will only be an estimation. This is because: -**Note:** The amount field is currently mandatory when paying via Bitcoin. +1. The fees have an amount-dependent component that can only be determined once the sender initiates the payment +2. The fees also depend on current onchain fee conditions, which may change between the time of preparation and actual payment + +If the onchain fee rate increases between preparation and payment time, the payment will be put on hold until the user explicitly confirms the new fees. To learn more about this, see the [Amountless Bitcoin Payments](#amountless-bitcoin-payments) section below.
Rust
@@ -165,7 +169,7 @@ When receiving via Bitcoin, we generate a Bitcoin BIP21 URI to be paid.

Developer note

-The above checks include validating against maximum and minimum limits. Your application's users must be informed of these limits because if the amount transferred to the swap address falls outside this valid range, the funds will not be successfully received via the normal swap flow. In such cases, a manual refund will be necessary. +The above checks include validating against maximum and minimum limits. **Even when no specific amount is provided**, the amount transferred to the swap address must still fall within these limits. Your application's users must be informed of these limits because if the amount transferred falls outside this valid range, the funds will not be successfully received via the normal swap flow. In such cases, a manual refund will be necessary. For further instructions on how to execute a manual refund, see the section on [refunding payments](refund_payment.md#bitcoin).
@@ -316,3 +320,21 @@ receive method, optionally specifying a description. ```
+ +### Amountless Bitcoin Payments + +To receive a Bitcoin payment that does not specify an amount, it may be necessary to explicitly accept the associated fees. This will be the case when the onchain fee rate increases between preparation and payment time. + +Alternatively, if the fees are considered too high, the user can either choose to wait for them to come down or outright refund the payment. To learn more about refunds, see the [Refunding payments](./refund_payment.md#refunding-payments) section. + +To reduce the likelihood of this extra fee review step being necessary, you can configure a fee rate leeway in the SDK's configuration that will automatically accept slightly higher fees within the specified tolerance. + + +
Rust
+
+ +```rust,ignore +{{#include ../../snippets/rust/src/receive_onchain.rs:handle-payments-waiting-fee-acceptance}} +``` +
+
From f8635f3a65df310a9b09bee833b5b52760403ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Granh=C3=A3o?= Date: Tue, 7 Jan 2025 16:56:56 +0000 Subject: [PATCH 2/5] Add snippets for remaining languages --- snippets/csharp/ReceiveOnchain.cs | 35 +++++++++++- .../dart_snippets/lib/receive_onchain.dart | 37 ++++++++++++ snippets/dart_snippets/lib/sdk_instance.dart | 4 ++ snippets/go/receive_onchain.go | 40 +++++++++++++ .../example/kotlinmpplib/ReceiveOnchain.kt | 32 +++++++++++ snippets/python/main.py | 4 +- snippets/python/src/receive_onchain.py | 33 ++++++++++- snippets/react-native/receive_onchain.ts | 36 +++++++++++- .../Sources/ReceiveOnchain.swift | 51 ++++++++++++++--- src/guide/receive_payment.md | 56 +++++++++++++++++++ 10 files changed, 314 insertions(+), 14 deletions(-) diff --git a/snippets/csharp/ReceiveOnchain.cs b/snippets/csharp/ReceiveOnchain.cs index 3b273e2d..7b6113da 100644 --- a/snippets/csharp/ReceiveOnchain.cs +++ b/snippets/csharp/ReceiveOnchain.cs @@ -25,8 +25,8 @@ public void ExecuteRefund(BindingLiquidSdk sdk, uint refundTxFeeRate, Refundable { sdk.Refund( new RefundRequest( - refundable.swapAddress, - destinationAddress, + refundable.swapAddress, + destinationAddress, feeRateSatPerVbyte)); } catch (Exception) @@ -63,4 +63,35 @@ public void RecommendedFees(BindingLiquidSdk sdk) } // ANCHOR_END: recommended-fees } + + public void HandlePaymentsWaitingFeeAcceptance(BindingLiquidSdk sdk) + { + // ANCHOR: handle-payments-waiting-fee-acceptance + // Payments on hold waiting for fee acceptance have the state WaitingFeeAcceptance + var paymentsWaitingFeeAcceptance = sdk.ListPayments( + new ListPaymentsRequest() + { + states = new List() { PaymentState.WaitingFeeAcceptance } + }); + + foreach (var payment in paymentsWaitingFeeAcceptance) + { + if (payment.details is not PaymentDetails.Bitcoin bitcoinDetails) + { + // Only Bitcoin payments can be `WaitingFeeAcceptance` + continue; + } + + var fetchFeesResponse = sdk.FetchPaymentProposedFees( + new FetchPaymentProposedFeesRequest(bitcoinDetails.swapId)); + + Console.WriteLine( + $"Payer sent {fetchFeesResponse.payerAmountSat} and currently proposed fees are {fetchFeesResponse.feesSat}"); + + // If the user is ok with the fees, accept them, allowing the payment to proceed + sdk.AcceptPaymentProposedFees( + new AcceptPaymentProposedFeesRequest(fetchFeesResponse)); + } + // ANCHOR_END: handle-payments-waiting-fee-acceptance + } } diff --git a/snippets/dart_snippets/lib/receive_onchain.dart b/snippets/dart_snippets/lib/receive_onchain.dart index b5c05290..71871a48 100644 --- a/snippets/dart_snippets/lib/receive_onchain.dart +++ b/snippets/dart_snippets/lib/receive_onchain.dart @@ -39,3 +39,40 @@ Future recommendedFees() async { // ANCHOR_END: recommended-fees print(fees); } + +Future handlePaymentsWaitingFeeAcceptance() async { + // ANCHOR: handle-payments-waiting-fee-acceptance + // Payments on hold waiting for fee acceptance have the state WaitingFeeAcceptance + List paymentsWaitingFeeAcceptance = await breezSDKLiquid.instance!.listPayments( + req: ListPaymentsRequest( + states: [PaymentState.waitingFeeAcceptance], + ), + ); + + for (Payment payment in paymentsWaitingFeeAcceptance) { + if (payment.details is! PaymentDetails_Bitcoin) { + // Only Bitcoin payments can be `WaitingFeeAcceptance` + continue; + } + + PaymentDetails_Bitcoin details = payment.details as PaymentDetails_Bitcoin; + FetchPaymentProposedFeesResponse fetchFeesResponse = + await breezSDKLiquid.instance!.fetchPaymentProposedFees( + req: FetchPaymentProposedFeesRequest( + swapId: details.swapId, + ), + ); + + print( + "Payer sent ${fetchFeesResponse.payerAmountSat} and currently proposed fees are ${fetchFeesResponse.feesSat}", + ); + + // If the user is ok with the fees, accept them, allowing the payment to proceed + await breezSDKLiquid.instance!.acceptPaymentProposedFees( + req: AcceptPaymentProposedFeesRequest( + response: fetchFeesResponse, + ), + ); + } + // ANCHOR_END: handle-payments-waiting-fee-acceptance +} diff --git a/snippets/dart_snippets/lib/sdk_instance.dart b/snippets/dart_snippets/lib/sdk_instance.dart index f35a4d8d..99c3787a 100644 --- a/snippets/dart_snippets/lib/sdk_instance.dart +++ b/snippets/dart_snippets/lib/sdk_instance.dart @@ -185,7 +185,9 @@ extension ConfigCopyWith on liquid_sdk.Config { liquid_sdk.LiquidNetwork? network, BigInt? paymentTimeoutSec, int? zeroConfMinFeeRateMsat, + String? syncServiceUrl, List? externalInputParsers, + bool? useDefaultExternalInputParsers, }) { return liquid_sdk.Config( liquidElectrumUrl: liquidElectrumUrl ?? this.liquidElectrumUrl, @@ -195,6 +197,8 @@ extension ConfigCopyWith on liquid_sdk.Config { network: network ?? this.network, paymentTimeoutSec: paymentTimeoutSec ?? this.paymentTimeoutSec, zeroConfMinFeeRateMsat: zeroConfMinFeeRateMsat ?? this.zeroConfMinFeeRateMsat, + syncServiceUrl: syncServiceUrl ?? this.syncServiceUrl, + useDefaultExternalInputParsers: useDefaultExternalInputParsers ?? this.useDefaultExternalInputParsers, externalInputParsers: externalInputParsers ?? this.externalInputParsers, ); } diff --git a/snippets/go/receive_onchain.go b/snippets/go/receive_onchain.go index 508ebe0f..11cb9838 100644 --- a/snippets/go/receive_onchain.go +++ b/snippets/go/receive_onchain.go @@ -45,3 +45,43 @@ func RecommendedFees(sdk *breez_sdk_liquid.BindingLiquidSdk) { } // ANCHOR_END: recommended-fees } + +func HandlePaymentsWaitingFeeAcceptance(sdk *breez_sdk_liquid.BindingLiquidSdk) { + // ANCHOR: handle-payments-waiting-fee-acceptance + // Payments on hold waiting for fee acceptance have the state WaitingFeeAcceptance + request := breez_sdk_liquid.ListPaymentsRequest{ + States: &[]breez_sdk_liquid.PaymentState{breez_sdk_liquid.PaymentStateWaitingFeeAcceptance}, + } + + paymentsWaitingFeeAcceptance, err := sdk.ListPayments(request) + if err != nil { + return + } + + for _, payment := range paymentsWaitingFeeAcceptance { + bitcoinPayment, ok := payment.Details.(breez_sdk_liquid.PaymentDetailsBitcoin) + if !ok { + // Only Bitcoin payments can be `WaitingFeeAcceptance` + continue + } + + fetchFeesRequest := breez_sdk_liquid.FetchPaymentProposedFeesRequest{ + SwapId: bitcoinPayment.SwapId, + } + + fetchFeesResponse, err := sdk.FetchPaymentProposedFees(fetchFeesRequest) + if err != nil { + continue + } + + log.Printf("Payer sent %d and currently proposed fees are %d", + fetchFeesResponse.PayerAmountSat, fetchFeesResponse.FeesSat) + + // If the user is ok with the fees, accept them, allowing the payment to proceed + acceptFeesRequest := breez_sdk_liquid.AcceptPaymentProposedFeesRequest{ + Response: fetchFeesResponse, + } + sdk.AcceptPaymentProposedFees(acceptFeesRequest) + } + // ANCHOR_END: handle-payments-waiting-fee-acceptance +} diff --git a/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/ReceiveOnchain.kt b/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/ReceiveOnchain.kt index 836749ce..ffae930e 100644 --- a/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/ReceiveOnchain.kt +++ b/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/ReceiveOnchain.kt @@ -43,4 +43,36 @@ class ReceiveOnchain { } // ANCHOR_END: recommended-fees } + + fun handlePaymentsWaitingFeeAcceptance(sdk: BindingLiquidSdk) { + // ANCHOR: handle-payments-waiting-fee-acceptance + try { + // Payments on hold waiting for fee acceptance have the state WaitingFeeAcceptance + val paymentsWaitingFeeAcceptance = sdk.listPayments(ListPaymentsRequest( + states = listOf(PaymentState.WaitingFeeAcceptance) + )) + + for (payment in paymentsWaitingFeeAcceptance) { + when (val details = payment.details) { + is PaymentDetails.Bitcoin -> { + val fetchFeesResponse = sdk.fetchPaymentProposedFees( + FetchPaymentProposedFeesRequest(details.swapId) + ) + + println("Payer sent ${fetchFeesResponse.payerAmountSat} and currently proposed fees are ${fetchFeesResponse.feesSat}") + + // If the user is ok with the fees, accept them, allowing the payment to proceed + sdk.acceptPaymentProposedFees(AcceptPaymentProposedFeesRequest(fetchFeesResponse)) + } + else -> { + // Only Bitcoin payments can be `WaitingFeeAcceptance` + continue + } + } + } + } catch (e: Exception) { + // handle error + } + // ANCHOR_END: handle-payments-waiting-fee-acceptance + } } diff --git a/snippets/python/main.py b/snippets/python/main.py index 38849f6e..1fb36cdb 100755 --- a/snippets/python/main.py +++ b/snippets/python/main.py @@ -8,7 +8,7 @@ from src.lnurl_pay import pay from src.lnurl_withdraw import withdraw from src.pay_onchain import fetch_pay_onchain_limits, prepare_pay_onchain, prepare_pay_onchain_fee_rate, start_pay_onchain -from src.receive_onchain import list_refundables, execute_refund, rescan_swaps +from src.receive_onchain import list_refundables, execute_refund, rescan_swaps, recommended_fees, handle_payments_waiting_fee_acceptance from src.receive_payment import prepare_receive_lightning, prepare_receive_onchain, prepare_receive_liquid, receive_payment from src.send_payment import prepare_send_payment_lightning, prepare_send_payment_liquid, send_payment from src.webhook import register_webhook, unregister_webhook @@ -54,6 +54,8 @@ def main(): refundables = list_refundables(sdk) execute_refund(sdk, 1, refundables[0]) rescan_swaps(sdk) + recommended_fees(sdk) + handle_payments_waiting_fee_acceptance(sdk) # receive payment prepare_response = prepare_receive_lightning(sdk) diff --git a/snippets/python/src/receive_onchain.py b/snippets/python/src/receive_onchain.py index e113fcbe..47092da2 100644 --- a/snippets/python/src/receive_onchain.py +++ b/snippets/python/src/receive_onchain.py @@ -1,5 +1,5 @@ import logging -from breez_sdk_liquid import BindingLiquidSdk, RefundableSwap, RefundRequest +from breez_sdk_liquid import BindingLiquidSdk, RefundableSwap, RefundRequest, PaymentDetails, PaymentState, ListPaymentsRequest, FetchPaymentProposedFeesRequest, AcceptPaymentProposedFeesRequest def list_refundables(sdk: BindingLiquidSdk): @@ -40,3 +40,34 @@ def recommended_fees(sdk: BindingLiquidSdk): logging.error(error) raise # ANCHOR_END: recommended-fees + +def handle_payments_waiting_fee_acceptance(sdk: BindingLiquidSdk): + # ANCHOR: handle-payments-waiting-fee-acceptance + try: + # Payments on hold waiting for fee acceptance have the state WAITING_FEE_ACCEPTANCE + payments_waiting_fee_acceptance = sdk.list_payments( + ListPaymentsRequest(states=[PaymentState.WAITING_FEE_ACCEPTANCE]) + ) + + for payment in payments_waiting_fee_acceptance: + if not isinstance(payment.details, PaymentDetails.BITCOIN): + # Only Bitcoin payments can be `WAITING_FEE_ACCEPTANCE` + continue + + fetch_fees_response = sdk.fetch_payment_proposed_fees( + FetchPaymentProposedFeesRequest(payment.details.swap_id) + ) + + logging.info( + f"Payer sent {fetch_fees_response.payer_amount_sat} and currently proposed fees are {fetch_fees_response.fees_sat}" + ) + + # If the user is ok with the fees, accept them, allowing the payment to proceed + sdk.accept_payment_proposed_fees( + AcceptPaymentProposedFeesRequest(fetch_fees_response) + ) + + except Exception as error: + logging.error(error) + raise + # ANCHOR_END: handle-payments-waiting-fee-acceptance diff --git a/snippets/react-native/receive_onchain.ts b/snippets/react-native/receive_onchain.ts index f55ff724..86efb6e3 100644 --- a/snippets/react-native/receive_onchain.ts +++ b/snippets/react-native/receive_onchain.ts @@ -3,7 +3,12 @@ import { rescanOnchainSwaps, type RefundableSwap, refund, - recommendedFees + recommendedFees, + listPayments, + fetchPaymentProposedFees, + acceptPaymentProposedFees, + PaymentState, + PaymentDetailsVariant } from '@breeztech/react-native-breez-sdk-liquid' const exampleListRefundables = async () => { @@ -48,3 +53,32 @@ const exampleRecommendedFees = async () => { } // ANCHOR_END: recommended-fees } + +const exampleHandlePaymentsWaitingFeeAcceptance = async () => { + // ANCHOR: handle-payments-waiting-fee-acceptance + // Payments on hold waiting for fee acceptance have the state WAITING_FEE_ACCEPTANCE + const paymentsWaitingFeeAcceptance = await listPayments({ + states: [PaymentState.WAITING_FEE_ACCEPTANCE] + }) + + for (const payment of paymentsWaitingFeeAcceptance) { + if (payment.details.type !== PaymentDetailsVariant.BITCOIN) { + // Only Bitcoin payments can be `WAITING_FEE_ACCEPTANCE` + continue + } + + const fetchFeesResponse = await fetchPaymentProposedFees({ + swapId: payment.details.swapId + }) + + console.info( + `Payer sent ${fetchFeesResponse.payerAmountSat} and currently proposed fees are ${fetchFeesResponse.feesSat}` + ) + + // If the user is ok with the fees, accept them, allowing the payment to proceed + await acceptPaymentProposedFees({ + response: fetchFeesResponse + }) + } + // ANCHOR_END: handle-payments-waiting-fee-acceptance +} diff --git a/snippets/swift/BreezSDKExamples/Sources/ReceiveOnchain.swift b/snippets/swift/BreezSDKExamples/Sources/ReceiveOnchain.swift index 2479dd27..35eb632d 100644 --- a/snippets/swift/BreezSDKExamples/Sources/ReceiveOnchain.swift +++ b/snippets/swift/BreezSDKExamples/Sources/ReceiveOnchain.swift @@ -8,27 +8,60 @@ func listRefundables(sdk: BindingLiquidSdk) -> [RefundableSwap]? { return refundables } -func executeRefund(sdk: BindingLiquidSdk, refundable: RefundableSwap, refundTxFeeRate: UInt32) -> RefundResponse? { +func executeRefund(sdk: BindingLiquidSdk, refundable: RefundableSwap, refundTxFeeRate: UInt32) + -> RefundResponse? +{ // ANCHOR: execute-refund let destinationAddress = "..." let feeRateSatPerVbyte = refundTxFeeRate - let response = try? sdk.refund(req: RefundRequest( - swapAddress: refundable.swapAddress, - refundAddress: destinationAddress, - feeRateSatPerVbyte: feeRateSatPerVbyte)) + let response = try? sdk.refund( + req: RefundRequest( + swapAddress: refundable.swapAddress, + refundAddress: destinationAddress, + feeRateSatPerVbyte: feeRateSatPerVbyte)) // ANCHOR_END: execute-refund return response } -func rescanSwaps(sdk: BindingLiquidSdk) -> Void { +func rescanSwaps(sdk: BindingLiquidSdk) { // ANCHOR: rescan-swaps try? sdk.rescanOnchainSwaps() - // ANCHOR_END: rescan-swaps + // ANCHOR_END: rescan-swaps } func recommendedFees(sdk: BindingLiquidSdk) -> RecommendedFees? { // ANCHOR: recommended-fees let fees = try? sdk.recommendedFees() - // ANCHOR_END: recommended-fees - return fees + // ANCHOR_END: recommended-fees + return fees +} + +func handlePaymentsWaitingFeeAcceptance(sdk: BindingLiquidSdk) { + // ANCHOR: handle-payments-waiting-fee-acceptance + // Payments on hold waiting for fee acceptance have the state WaitingFeeAcceptance + guard + let paymentsWaitingFeeAcceptance = try? sdk.listPayments( + req: ListPaymentsRequest(states: [.waitingFeeAcceptance])) + else { return } + + for payment in paymentsWaitingFeeAcceptance { + guard case .bitcoin(let swapId, _, _, _) = payment.details else { continue } + + // Only Bitcoin payments can be `WaitingFeeAcceptance` + guard + let fetchFeesResponse = try? sdk.fetchPaymentProposedFees( + req: FetchPaymentProposedFeesRequest( + swapId: swapId)) + else { continue } + + print( + "Payer sent \(fetchFeesResponse.payerAmountSat) and currently proposed fees are \(fetchFeesResponse.feesSat)" + ) + + // If the user is ok with the fees, accept them, allowing the payment to proceed + try? sdk.acceptPaymentProposedFees( + req: AcceptPaymentProposedFeesRequest( + response: fetchFeesResponse)) + } + // ANCHOR_END: handle-payments-waiting-fee-acceptance } diff --git a/src/guide/receive_payment.md b/src/guide/receive_payment.md index 43cfeabe..6e56366e 100644 --- a/src/guide/receive_payment.md +++ b/src/guide/receive_payment.md @@ -337,4 +337,60 @@ To reduce the likelihood of this extra fee review step being necessary, you can {{#include ../../snippets/rust/src/receive_onchain.rs:handle-payments-waiting-fee-acceptance}} ``` + +
Swift
+
+ +```swift,ignore +{{#include ../../snippets/swift/BreezSDKExamples/Sources/ReceiveOnchain.swift:handle-payments-waiting-fee-acceptance}} +``` +
+ +
Kotlin
+
+ +```kotlin,ignore +{{#include ../../snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/ReceiveOnchain.kt:handle-payments-waiting-fee-acceptance}} +``` +
+ +
React Native
+
+ +```typescript +{{#include ../../snippets/react-native/receive_onchain.ts:handle-payments-waiting-fee-acceptance}} +``` +
+ +
Dart
+
+ +```dart,ignore +{{#include ../../snippets/dart_snippets/lib/receive_onchain.dart:handle-payments-waiting-fee-acceptance}} +``` +
+ +
Python
+
+ +```python,ignore +{{#include ../../snippets/python/src/receive_onchain.py:handle-payments-waiting-fee-acceptance}} +``` +
+ +
Go
+
+ +```go,ignore +{{#include ../../snippets/go/receive_onchain.go:handle-payments-waiting-fee-acceptance}} +``` +
+ +
C#
+
+ +```cs,ignore +{{#include ../../snippets/csharp/ReceiveOnchain.cs:handle-payments-waiting-fee-acceptance}} +``` +
From 29b7d16cfd90ce8b18376a425a4eed9283a0562d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Granh=C3=A3o?= Date: Mon, 13 Jan 2025 11:41:19 +0000 Subject: [PATCH 3/5] Update SDK version and apply various fixes --- snippets/csharp/GettingStarted.cs | 15 +- snippets/csharp/Snippets.csproj | 2 +- .../dart_snippets/lib/getting_started.dart | 6 +- snippets/dart_snippets/pubspec.lock | 28 ++-- snippets/dart_snippets/pubspec.yaml | 4 +- snippets/go/getting_started.go | 6 +- snippets/go/go.mod | 2 +- .../kotlin_mpp_lib/shared/build.gradle.kts | 2 +- .../example/kotlinmpplib/GettingStarted.kt | 6 +- .../example/kotlinmpplib/ReceiveOnchain.kt | 2 +- snippets/python/main.py | 5 +- snippets/react-native/getting_started.ts | 6 +- snippets/react-native/package.json | 2 +- snippets/react-native/parsing_inputs.ts | 2 +- snippets/react-native/yarn.lock | 36 +++- snippets/rust/Cargo.lock | 157 ++++++++++++++++-- snippets/rust/Cargo.toml | 2 +- snippets/rust/src/getting_started.rs | 6 +- .../swift/BreezSDKExamples/Package.resolved | 4 +- snippets/swift/BreezSDKExamples/Package.swift | 2 +- .../Sources/GettingStarted.swift | 6 +- .../Sources/ReceiveOnchain.swift | 2 +- 22 files changed, 230 insertions(+), 73 deletions(-) diff --git a/snippets/csharp/GettingStarted.cs b/snippets/csharp/GettingStarted.cs index 6e1d63d1..867d84b0 100644 --- a/snippets/csharp/GettingStarted.cs +++ b/snippets/csharp/GettingStarted.cs @@ -35,9 +35,9 @@ public void FetchBalance(BindingLiquidSdk sdk) try { var info = sdk.GetInfo(); - var balanceSat = info?.balanceSat; - var pendingSendSat = info?.pendingSendSat; - var pendingReceiveSat = info?.pendingReceiveSat; + var balanceSat = info?.walletInfo?.balanceSat; + var pendingSendSat = info?.walletInfo?.pendingSendSat; + var pendingReceiveSat = info?.walletInfo?.pendingReceiveSat; } catch (Exception) { @@ -45,7 +45,7 @@ public void FetchBalance(BindingLiquidSdk sdk) } // ANCHOR_END: fetch-balance } - + // ANCHOR: logging public class SdkLogger : Logger { @@ -55,7 +55,8 @@ public void Log(LogEntry l) } } - public void SetLogger(SdkLogger logger) { + public void SetLogger(SdkLogger logger) + { try { BreezSdkLiquidMethods.SetLogger(logger); @@ -70,7 +71,7 @@ public void SetLogger(SdkLogger logger) { // ANCHOR: add-event-listener public class SdkListener : EventListener { - public void OnEvent(SdkEvent e) + public void OnEvent(SdkEvent e) { Console.WriteLine($"Received event {e}"); } @@ -104,7 +105,7 @@ public void RemoveEventListener(BindingLiquidSdk sdk, String listenerId) } } // ANCHOR_END: remove-event-listener - + // ANCHOR: disconnect public void Disconnect(BindingLiquidSdk sdk) { diff --git a/snippets/csharp/Snippets.csproj b/snippets/csharp/Snippets.csproj index 8d405f66..8f5eb6cb 100644 --- a/snippets/csharp/Snippets.csproj +++ b/snippets/csharp/Snippets.csproj @@ -10,4 +10,4 @@ - + \ No newline at end of file diff --git a/snippets/dart_snippets/lib/getting_started.dart b/snippets/dart_snippets/lib/getting_started.dart index 2852ff98..3f11671f 100644 --- a/snippets/dart_snippets/lib/getting_started.dart +++ b/snippets/dart_snippets/lib/getting_started.dart @@ -43,9 +43,9 @@ Future initializeSDK() async { Future fetchBalance(String lspId) async { // ANCHOR: fetch-balance GetInfoResponse? info = await breezSDKLiquid.instance!.getInfo(); - BigInt balanceSat = info.balanceSat; - BigInt pendingSendSat = info.pendingSendSat; - BigInt pendingReceiveSat = info.pendingReceiveSat; + BigInt balanceSat = info.walletInfo.balanceSat; + BigInt pendingSendSat = info.walletInfo.pendingSendSat; + BigInt pendingReceiveSat = info.walletInfo.pendingReceiveSat; // ANCHOR_END: fetch-balance print(balanceSat); print(pendingSendSat); diff --git a/snippets/dart_snippets/pubspec.lock b/snippets/dart_snippets/pubspec.lock index f4e47bcb..aa9961f1 100644 --- a/snippets/dart_snippets/pubspec.lock +++ b/snippets/dart_snippets/pubspec.lock @@ -46,10 +46,10 @@ packages: description: path: "." ref: HEAD - resolved-ref: 619a9b23256820b291ddf97f3fee7224c5b084fd + resolved-ref: "0c419e0703d5f37e13a96113e71618afc5c50fd3" url: "https://github.com/breez/breez-sdk-liquid-dart" source: git - version: "0.5.0-rc8" + version: "0.6.0-dev1" build_cli_annotations: dependency: transitive description: @@ -78,10 +78,10 @@ packages: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.0" convert: dependency: transitive description: @@ -140,18 +140,18 @@ packages: description: path: "." ref: HEAD - resolved-ref: a0ee25c652159a0c99faaf55f8b21becc5b32999 + resolved-ref: "751cd4525f325b69c0652513b86170cfce480e40" url: "https://github.com/breez/breez-sdk-liquid-flutter" source: git - version: "0.5.0-rc8" + version: "0.6.0-dev1" flutter_rust_bridge: dependency: transitive description: name: flutter_rust_bridge - sha256: b0271cc147d5afccf9774809e4eef52b7357babe1a1a31db649df6f02dd27580 + sha256: a43a6649385b853bc836ef2bc1b056c264d476c35e131d2d69c38219b5e799f1 url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.4.0" freezed_annotation: dependency: transitive description: @@ -244,18 +244,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.15.0" mime: dependency: transitive description: @@ -356,7 +356,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_map_stack_trace: dependency: transitive description: @@ -511,4 +511,4 @@ packages: version: "2.2.1" sdks: dart: ">=3.4.0 <4.0.0" - flutter: ">=3.22.0" + flutter: ">=3.24.0" diff --git a/snippets/dart_snippets/pubspec.yaml b/snippets/dart_snippets/pubspec.yaml index 55d88aab..0efbde3b 100644 --- a/snippets/dart_snippets/pubspec.yaml +++ b/snippets/dart_snippets/pubspec.yaml @@ -10,11 +10,11 @@ dependencies: breez_liquid: git: url: https://github.com/breez/breez-sdk-liquid-dart - tag: 0.5.0-rc8 + tag: 0.6.0-dev1 flutter_breez_liquid: git: url: https://github.com/breez/breez-sdk-liquid-flutter - tag: 0.5.0-rc8 + tag: 0.6.0-dev1 rxdart: ^0.28.0 dependency_overrides: diff --git a/snippets/go/getting_started.go b/snippets/go/getting_started.go index 5f1e82ef..f49fc6d8 100644 --- a/snippets/go/getting_started.go +++ b/snippets/go/getting_started.go @@ -34,9 +34,9 @@ func Start() (*breez_sdk_liquid.BindingLiquidSdk, error) { func FetchBalance(sdk *breez_sdk_liquid.BindingLiquidSdk) { // ANCHOR: fetch-balance if info, err := sdk.GetInfo(); err == nil { - balanceSat := info.BalanceSat - pendingSendSat := info.PendingSendSat - pendingReceiveSat := info.PendingReceiveSat + balanceSat := info.WalletInfo.BalanceSat + pendingSendSat := info.WalletInfo.PendingSendSat + pendingReceiveSat := info.WalletInfo.PendingReceiveSat log.Printf("Balance: %v sats", balanceSat) log.Printf("Pending: send %v sats, receive %v sats", pendingSendSat, pendingReceiveSat) } diff --git a/snippets/go/go.mod b/snippets/go/go.mod index fa01fae0..492e54fc 100644 --- a/snippets/go/go.mod +++ b/snippets/go/go.mod @@ -2,6 +2,6 @@ module main go 1.19 -require github.com/breez/breez-sdk-liquid-go v0.5.0-rc8 +require github.com/breez/breez-sdk-liquid-go v0.6.0-dev1 //replace github.com/breez/breez-sdk-liquid-go => ./packages/breez-sdk-liquid-go diff --git a/snippets/kotlin_mpp_lib/shared/build.gradle.kts b/snippets/kotlin_mpp_lib/shared/build.gradle.kts index f1b7105a..74cb52d1 100644 --- a/snippets/kotlin_mpp_lib/shared/build.gradle.kts +++ b/snippets/kotlin_mpp_lib/shared/build.gradle.kts @@ -29,7 +29,7 @@ kotlin { } val commonMain by getting { dependencies { - implementation("technology.breez.liquid:breez-sdk-liquid-kmp:0.5.0-rc8") + implementation("technology.breez.liquid:breez-sdk-liquid-kmp:0.6.0-dev1") } } } diff --git a/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/GettingStarted.kt b/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/GettingStarted.kt index fa384628..a3cf2332 100644 --- a/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/GettingStarted.kt +++ b/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/GettingStarted.kt @@ -25,9 +25,9 @@ class GettingStarted { // ANCHOR: fetch-balance try { val info = sdk.getInfo() - val balanceSat = info?.balanceSat - val pendingSendSat = info?.pendingSendSat - val pendingReceiveSat = info?.pendingReceiveSat + val balanceSat = info?.walletInfo?.balanceSat + val pendingSendSat = info?.walletInfo?.pendingSendSat + val pendingReceiveSat = info?.walletInfo?.pendingReceiveSat } catch (e: Exception) { // handle error } diff --git a/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/ReceiveOnchain.kt b/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/ReceiveOnchain.kt index ffae930e..cdf97e38 100644 --- a/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/ReceiveOnchain.kt +++ b/snippets/kotlin_mpp_lib/shared/src/commonMain/kotlin/com/example/kotlinmpplib/ReceiveOnchain.kt @@ -49,7 +49,7 @@ class ReceiveOnchain { try { // Payments on hold waiting for fee acceptance have the state WaitingFeeAcceptance val paymentsWaitingFeeAcceptance = sdk.listPayments(ListPaymentsRequest( - states = listOf(PaymentState.WaitingFeeAcceptance) + states = listOf(PaymentState.WAITING_FEE_ACCEPTANCE) )) for (payment in paymentsWaitingFeeAcceptance) { diff --git a/snippets/python/main.py b/snippets/python/main.py index 1fb36cdb..ab9c215b 100755 --- a/snippets/python/main.py +++ b/snippets/python/main.py @@ -10,7 +10,7 @@ from src.pay_onchain import fetch_pay_onchain_limits, prepare_pay_onchain, prepare_pay_onchain_fee_rate, start_pay_onchain from src.receive_onchain import list_refundables, execute_refund, rescan_swaps, recommended_fees, handle_payments_waiting_fee_acceptance from src.receive_payment import prepare_receive_lightning, prepare_receive_onchain, prepare_receive_liquid, receive_payment -from src.send_payment import prepare_send_payment_lightning, prepare_send_payment_liquid, send_payment +from src.send_payment import prepare_send_payment_lightning_bolt11, prepare_send_payment_lightning_bolt12, prepare_send_payment_liquid, send_payment from src.webhook import register_webhook, unregister_webhook @@ -64,7 +64,8 @@ def main(): receive_payment(sdk, prepare_response) # send payment - prepare_response = prepare_send_payment_lightning(sdk) + prepare_response = prepare_send_payment_lightning_bolt11(sdk) + prepare_response = prepare_send_payment_lightning_bolt12(sdk) prepare_send_payment_liquid(sdk) send_payment(sdk, prepare_response) diff --git a/snippets/react-native/getting_started.ts b/snippets/react-native/getting_started.ts index a8020f33..99464230 100644 --- a/snippets/react-native/getting_started.ts +++ b/snippets/react-native/getting_started.ts @@ -35,9 +35,9 @@ const exampleGettingStarted = async () => { const exampleFetchNodeInfo = async () => { // ANCHOR: fetch-balance const info = await getInfo() - const balanceSat = info.balanceSat - const pendingSendSat = info.pendingSendSat - const pendingReceiveSat = info.pendingReceiveSat + const balanceSat = info.walletInfo.balanceSat + const pendingSendSat = info.walletInfo.pendingSendSat + const pendingReceiveSat = info.walletInfo.pendingReceiveSat // ANCHOR_END: fetch-balance } diff --git a/snippets/react-native/package.json b/snippets/react-native/package.json index 02b50be0..17ba4bfd 100644 --- a/snippets/react-native/package.json +++ b/snippets/react-native/package.json @@ -10,7 +10,7 @@ "compile": "tsc" }, "dependencies": { - "@breeztech/react-native-breez-sdk-liquid": "^0.5.0-rc8", + "@breeztech/react-native-breez-sdk-liquid": "^0.6.0-dev1", "react": "18.1.0", "react-native": "0.70.6" }, diff --git a/snippets/react-native/parsing_inputs.ts b/snippets/react-native/parsing_inputs.ts index 002294a3..a63dcac0 100644 --- a/snippets/react-native/parsing_inputs.ts +++ b/snippets/react-native/parsing_inputs.ts @@ -72,4 +72,4 @@ const configureParsers = async () => { await connect({ mnemonic, config }) // ANCHOR_END: configure-external-parser -} \ No newline at end of file +} diff --git a/snippets/react-native/yarn.lock b/snippets/react-native/yarn.lock index da87477b..8f05e027 100644 --- a/snippets/react-native/yarn.lock +++ b/snippets/react-native/yarn.lock @@ -703,10 +703,10 @@ "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" -"@breeztech/react-native-breez-sdk-liquid@^0.5.0-rc8": - version "0.5.0-rc8" - resolved "https://registry.yarnpkg.com/@breeztech/react-native-breez-sdk-liquid/-/react-native-breez-sdk-liquid-0.5.0-rc8.tgz#a1dc7c004a336aa6ba8f5dc385bb3eda4ff0c449" - integrity sha512-d3YNCUcdYknTeotGy2xFSDZuXTSwdkBvNjk+C9PpfkT+eT53JleKs2cWxOidDhhZ26g+K33Us3LpCaQc7DvSpg== +"@breeztech/react-native-breez-sdk-liquid@^0.6.0-dev1": + version "0.6.0-dev1" + resolved "https://registry.yarnpkg.com/@breeztech/react-native-breez-sdk-liquid/-/react-native-breez-sdk-liquid-0.6.0-dev1.tgz#89bb49cea5774483167622185f416ef6248f9d5a" + integrity sha512-83Qv9PWDn+SvAUZpExCtxBXii0pd0QPOGF02mvjnDfw/U1Hawh3rSVaQA3rmWt2+dVGZBtOkHGDZwtNZNd2fiQ== "@esbuild/android-arm64@0.18.20": version "0.18.20" @@ -1152,6 +1152,14 @@ resolved "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz" integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ== +"@react-native/virtualized-lists@^0.72.4": + version "0.72.8" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.72.8.tgz#a2c6a91ea0f1d40eb5a122fb063daedb92ed1dc3" + integrity sha512-J3Q4Bkuo99k7mu+jPS9gSUSgq+lLRSI/+ahXNwV92XgJ/8UgOTxu2LPwhJnBk/sQKxq7E8WkZBnBiozukQMqrw== + dependencies: + invariant "^2.2.4" + nullthrows "^1.1.1" + "@sideway/address@^4.1.3": version "4.1.4" resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz" @@ -1205,6 +1213,21 @@ dependencies: undici-types "~5.25.1" +"@types/react-native@^0.72.8": + version "0.72.8" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.72.8.tgz#eb6238fab289f5f132f7ccf138bdfe6f21ed93e1" + integrity sha512-St6xA7+EoHN5mEYfdWnfYt0e8u6k2FR0P9s2arYgakQGFgU1f9FlPrIEcj0X24pLCF5c5i3WVuLCUdiCYHmOoA== + dependencies: + "@react-native/virtualized-lists" "^0.72.4" + "@types/react" "*" + +"@types/react@*": + version "19.0.6" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.6.tgz#98deae4c5c4b24735e5d9e341302f9ebd45e80d3" + integrity sha512-gIlMztcTeDgXCUj0vCBOqEuSEhX//63fW9SZtCJ+agxoQTOklwDfiEMlTWn4mR/C/UK5VHlpwsCsOyf7/hc4lw== + dependencies: + csstype "^3.0.2" + "@types/semver@^7.5.0": version "7.5.5" resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz" @@ -1929,6 +1952,11 @@ cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + dayjs@^1.8.15: version "1.11.10" resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz" diff --git a/snippets/rust/Cargo.lock b/snippets/rust/Cargo.lock index a619237b..7ddab524 100644 --- a/snippets/rust/Cargo.lock +++ b/snippets/rust/Cargo.lock @@ -676,8 +676,8 @@ dependencies = [ [[package]] name = "breez-sdk-liquid" -version = "0.4.0-rc3" -source = "git+https://github.com/breez/breez-sdk-liquid?rev=a020ed5ddb53fdb6b8624f6eb70ee9e6e76e2ee4#a020ed5ddb53fdb6b8624f6eb70ee9e6e76e2ee4" +version = "0.6.0-dev1" +source = "git+https://github.com/breez/breez-sdk-liquid?tag=0.6.0-dev1#23044ac8ac6c01980654b4ab6289d3f2c276d864" dependencies = [ "anyhow", "async-trait", @@ -692,7 +692,6 @@ dependencies = [ "glob", "hex", "lazy_static", - "lightning 0.0.125", "log", "lwk_common", "lwk_signer", @@ -933,10 +932,10 @@ dependencies = [ ] [[package]] -name = "dart-sys-fork" -version = "4.1.1" +name = "dart-sys" +version = "4.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "933dafff26172b719bb9695dd3715a1e7792f62dcdc8a5d4c740db7e0fedee8b" +checksum = "57967e4b200d767d091b961d6ab42cc7d0cc14fe9e052e75d0d3cf9eb732d895" dependencies = [ "cc", ] @@ -1095,6 +1094,18 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "enum-as-inner" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.94", +] + [[package]] name = "env_filter" version = "0.1.3" @@ -1193,9 +1204,9 @@ dependencies = [ [[package]] name = "flutter_rust_bridge" -version = "2.4.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff967a5893be60d849e4362910762acdc275febe44333153a11dcec1bca2cd2" +checksum = "5419323ff3ae8b63ed20b7cd0fd0e3e73fa9234b3b212b87b5586fe76ae52318" dependencies = [ "allo-isolate", "android_logger", @@ -1205,7 +1216,7 @@ dependencies = [ "byteorder", "chrono", "console_error_panic_hook", - "dart-sys-fork", + "dart-sys", "delegate-attr", "flutter_rust_bridge_macros", "futures", @@ -1213,6 +1224,7 @@ dependencies = [ "lazy_static", "log", "oslog", + "portable-atomic", "threadpool", "tokio", "wasm-bindgen", @@ -1222,9 +1234,9 @@ dependencies = [ [[package]] name = "flutter_rust_bridge_macros" -version = "2.4.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d48b4d3fae9d29377b19134a38386d8792bde70b9448cde49e96391bcfc8fed1" +checksum = "9c6fd06cacc0dfe931d00f3acdc5ac6c5dd9382b33dd78d71cce8f0a62e9458b" dependencies = [ "hex", "md-5", @@ -1476,6 +1488,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -1518,6 +1536,52 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" +[[package]] +name = "hickory-proto" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447afdcdb8afb9d0a852af6dc65d9b285ce720ed7a59e42a8bf2e931c67bc1b5" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 1.0.3", + "ipnet", + "once_cell", + "rand", + "ring 0.16.20", + "thiserror 1.0.69", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "hickory-resolver" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a2e2aba9c389ce5267d31cf1e4dace82390ae276b0b364ea55630b1fa1b44b4" +dependencies = [ + "cfg-if", + "futures-util", + "hickory-proto", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot 0.12.3", + "rand", + "resolv-conf", + "smallvec", + "thiserror 1.0.69", + "tokio", + "tracing", +] + [[package]] name = "hkdf" version = "0.12.4" @@ -1545,6 +1609,17 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", +] + [[package]] name = "http" version = "0.2.12" @@ -1965,6 +2040,18 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "ipconfig" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +dependencies = [ + "socket2", + "widestring", + "windows-sys 0.48.0", + "winreg", +] + [[package]] name = "ipnet" version = "2.10.1" @@ -2150,6 +2237,12 @@ dependencies = [ "hex-conservative 0.2.1", ] +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -2189,6 +2282,15 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + [[package]] name = "lwk_common" version = "0.7.0" @@ -2277,6 +2379,12 @@ dependencies = [ "tracing", ] +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + [[package]] name = "matchit" version = "0.7.3" @@ -2715,7 +2823,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", - "heck", + "heck 0.4.1", "itertools", "lazy_static", "log", @@ -2736,7 +2844,7 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" dependencies = [ - "heck", + "heck 0.4.1", "itertools", "log", "multimap", @@ -3043,6 +3151,16 @@ dependencies = [ "windows-registry", ] +[[package]] +name = "resolv-conf" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +dependencies = [ + "hostname", + "quick-error", +] + [[package]] name = "ring" version = "0.16.20" @@ -3270,7 +3388,7 @@ dependencies = [ [[package]] name = "sdk-common" version = "0.6.2" -source = "git+https://github.com/breez/breez-sdk?rev=f77208acd34d74b571388889e856444908c59a85#f77208acd34d74b571388889e856444908c59a85" +source = "git+https://github.com/breez/breez-sdk?rev=e0f2548b4ba917e69c532eb9ff900b64ed9a3da3#e0f2548b4ba917e69c532eb9ff900b64ed9a3da3" dependencies = [ "aes 0.8.4", "anyhow", @@ -3280,7 +3398,10 @@ dependencies = [ "cbc", "elements", "hex", + "hickory-resolver", + "lazy_static", "lightning 0.0.118", + "lightning 0.0.125", "lightning-invoice 0.26.0", "log", "percent-encoding", @@ -3610,7 +3731,7 @@ version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", @@ -4439,6 +4560,12 @@ dependencies = [ "rustix", ] +[[package]] +name = "widestring" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" + [[package]] name = "winapi" version = "0.3.9" diff --git a/snippets/rust/Cargo.toml b/snippets/rust/Cargo.toml index a584b362..4fc16ca4 100644 --- a/snippets/rust/Cargo.toml +++ b/snippets/rust/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" [dependencies] anyhow = "1" bip39 = { version = "2", features = ["rand"] } -breez-sdk-liquid = { git = "https://github.com/breez/breez-sdk-liquid", rev = "a020ed5ddb53fdb6b8624f6eb70ee9e6e76e2ee4" } +breez-sdk-liquid = { git = "https://github.com/breez/breez-sdk-liquid", tag = "0.6.0-dev1" } log = "0.4" tokio = "1.42.0" diff --git a/snippets/rust/src/getting_started.rs b/snippets/rust/src/getting_started.rs index 45acd450..c6b6903a 100644 --- a/snippets/rust/src/getting_started.rs +++ b/snippets/rust/src/getting_started.rs @@ -33,9 +33,9 @@ async fn getting_started() -> Result> { async fn getting_started_node_info(sdk: Arc) -> Result<()> { // ANCHOR: fetch-balance let info = sdk.get_info().await?; - let balance_sat = info.balance_sat; - let pending_send_sat = info.pending_send_sat; - let pending_receive_sat = info.pending_receive_sat; + let balance_sat = info.wallet_info.balance_sat; + let pending_send_sat = info.wallet_info.pending_send_sat; + let pending_receive_sat = info.wallet_info.pending_receive_sat; // ANCHOR_END: fetch-balance Ok(()) diff --git a/snippets/swift/BreezSDKExamples/Package.resolved b/snippets/swift/BreezSDKExamples/Package.resolved index e2d45e61..f1ada7e8 100644 --- a/snippets/swift/BreezSDKExamples/Package.resolved +++ b/snippets/swift/BreezSDKExamples/Package.resolved @@ -5,8 +5,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/breez/breez-sdk-liquid-swift", "state" : { - "revision" : "956af9ef344db6108c64c5d18faa803a70e2333e", - "version" : "0.5.0-rc8" + "revision" : "d15eefd220401032769ab7b6823330686374fa56", + "version" : "0.6.0-dev1" } }, { diff --git a/snippets/swift/BreezSDKExamples/Package.swift b/snippets/swift/BreezSDKExamples/Package.swift index 69332258..aa924596 100644 --- a/snippets/swift/BreezSDKExamples/Package.swift +++ b/snippets/swift/BreezSDKExamples/Package.swift @@ -8,7 +8,7 @@ let package = Package( platforms: [.macOS("15.0")], dependencies: [ .package(url: "https://github.com/apple/swift-argument-parser", from: "1.2.3"), - .package(url: "https://github.com/breez/breez-sdk-liquid-swift", from:"0.5.0-rc8") + .package(url: "https://github.com/breez/breez-sdk-liquid-swift", from:"0.6.0-dev1") // To use a local version of breez-sdk-liquid, comment-out the above and un-comment: // .package(name: "bindings-swift", path: "/local-path/breez-sdk-liquid/lib/bindings/langs/swift") ], diff --git a/snippets/swift/BreezSDKExamples/Sources/GettingStarted.swift b/snippets/swift/BreezSDKExamples/Sources/GettingStarted.swift index 1e3e1f01..9c4cc65a 100644 --- a/snippets/swift/BreezSDKExamples/Sources/GettingStarted.swift +++ b/snippets/swift/BreezSDKExamples/Sources/GettingStarted.swift @@ -22,9 +22,9 @@ func gettingStarted() throws -> BindingLiquidSdk? { func gettingStartedNodeInfo(sdk: BindingLiquidSdk) { // ANCHOR: fetch-balance if let info = try? sdk.getInfo() { - let balanceSat = info.balanceSat - let pendingSendSat = info.pendingSendSat - let pendingReceiveSat = info.pendingReceiveSat + let balanceSat = info.walletInfo.balanceSat + let pendingSendSat = info.walletInfo.pendingSendSat + let pendingReceiveSat = info.walletInfo.pendingReceiveSat print(balanceSat) print(pendingSendSat) diff --git a/snippets/swift/BreezSDKExamples/Sources/ReceiveOnchain.swift b/snippets/swift/BreezSDKExamples/Sources/ReceiveOnchain.swift index 35eb632d..9847c123 100644 --- a/snippets/swift/BreezSDKExamples/Sources/ReceiveOnchain.swift +++ b/snippets/swift/BreezSDKExamples/Sources/ReceiveOnchain.swift @@ -45,7 +45,7 @@ func handlePaymentsWaitingFeeAcceptance(sdk: BindingLiquidSdk) { else { return } for payment in paymentsWaitingFeeAcceptance { - guard case .bitcoin(let swapId, _, _, _) = payment.details else { continue } + guard case .bitcoin(let swapId, _, _, _, _, _) = payment.details else { continue } // Only Bitcoin payments can be `WaitingFeeAcceptance` guard From b50fd264fb1028460b2371ce53bb4e9d448f0afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Granh=C3=A3o?= Date: Mon, 13 Jan 2025 11:56:20 +0000 Subject: [PATCH 4/5] Drop use of python match case --- snippets/python/src/parsing_inputs.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/snippets/python/src/parsing_inputs.py b/snippets/python/src/parsing_inputs.py index 39db897e..c0486492 100644 --- a/snippets/python/src/parsing_inputs.py +++ b/snippets/python/src/parsing_inputs.py @@ -7,19 +7,18 @@ def parse_input(sdk: BindingLiquidSdk): try: parsed_input = sdk.parse(input) - match parsed_input: - case InputType.BITCOIN_ADDRESS: - logging.debug(f"Input is Bitcoin address {parsed_input.address.address}") - case InputType.BOLT11: - amount = "unknown" - if parsed_input.invoice.amount_msat: - amount = str(parsed_input.invoice.amount_msat) - logging.debug(f"Input is BOLT11 invoice for {amount} msats") - case InputType.LN_URL_PAY: - logging.debug(f"Input is LNURL-Pay/Lightning address accepting min/max {parsed_input.data.min_sendable}/{parsed_input.data.max_sendable} msats") - case InputType.LN_URL_WITHDRAW: - logging.debug(f"Input is LNURL-Withdraw for min/max {parsed_input.data.min_withdrawable}/{parsed_input.data.max_withdrawable} msats") - # Other input types are available + if parsed_input.type == InputType.BITCOIN_ADDRESS: + logging.debug(f"Input is Bitcoin address {parsed_input.address.address}") + elif parsed_input.type == InputType.BOLT11: + amount = "unknown" + if parsed_input.invoice.amount_msat: + amount = str(parsed_input.invoice.amount_msat) + logging.debug(f"Input is BOLT11 invoice for {amount} msats") + elif parsed_input.type == InputType.LN_URL_PAY: + logging.debug(f"Input is LNURL-Pay/Lightning address accepting min/max {parsed_input.data.min_sendable}/{parsed_input.data.max_sendable} msats") + elif parsed_input.type == InputType.LN_URL_WITHDRAW: + logging.debug(f"Input is LNURL-Withdraw for min/max {parsed_input.data.min_withdrawable}/{parsed_input.data.max_withdrawable} msats") + # Other input types are available except Exception as error: logging.error(error) raise From eb945612c1637a80c3a14ed5bf756ae3851cf042 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Granh=C3=A3o?= Date: Mon, 13 Jan 2025 11:58:46 +0000 Subject: [PATCH 5/5] Fix version in workflow file --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cda216bf..43af8900 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,10 +11,10 @@ on: workflow_dispatch: inputs: sdk-ref: - description: 'sdk commit/tag/branch reference. Defaults to 0.5.0-rc8' + description: 'sdk commit/tag/branch reference. Defaults to 0.6.0-dev1' required: false type: string - default: 0.5.0-rc8 + default: 0.6.0-dev1 concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -26,9 +26,9 @@ jobs: runs-on: ubuntu-latest outputs: # Used only for Rust snippets - sdk-ref: ${{ inputs.sdk-ref || '0.5.0-rc8' }} + sdk-ref: ${{ inputs.sdk-ref || '0.6.0-dev1' }} # Used for RN and Flutter snippets - package-version: '0.5.0-rc8' + package-version: '0.6.0-dev1' steps: - run: echo "set pre-setup output variables"