From cb0aa14c7c507a30920c4e2be6a5b343f7f1bad5 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Mon, 29 Jun 2026 15:17:14 +0000 Subject: [PATCH 1/2] Update CI Pins --- .github/workflows/build.yml | 84 ++++++++++++++++++++++++++++++++++--- 1 file changed, 78 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f07461fe..095270e0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,6 +43,12 @@ jobs: git checkout origin/0.1-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" cd .. git clone https://github.com/lightningdevkit/ldk-c-bindings cd ldk-c-bindings @@ -50,11 +56,18 @@ jobs: cd lightning-c-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" - name: Pin proc-macro and quote to meet MSRV run: | cd ldk-c-bindings/c-bindings-gen cargo update -p quote --precise "1.0.30" --verbose cargo update -p proc-macro2 --precise "1.0.65" --verbose + cargo update -p unicode-ident --precise 1.0.22 - name: Rebuild C bindings without STD run: | cd ldk-c-bindings @@ -149,6 +162,12 @@ jobs: git checkout origin/0.1-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" cd .. git clone https://github.com/lightningdevkit/ldk-c-bindings cd ldk-c-bindings @@ -156,11 +175,18 @@ jobs: cd lightning-c-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" - name: Pin proc-macro and quote to meet MSRV run: | cd ldk-c-bindings/c-bindings-gen cargo update -p quote --precise "1.0.30" --verbose cargo update -p proc-macro2 --precise "1.0.65" --verbose + cargo update -p unicode-ident --precise 1.0.22 - name: Rebuild C bindings with STD run: | cd ldk-c-bindings @@ -206,15 +232,11 @@ jobs: git clone https://github.com/lightningdevkit/rust-lightning cd rust-lightning git checkout origin/0.1-bindings - cargo update -p syn --precise "2.0.106" --verbose - cargo update -p quote --precise "1.0.41" --verbose cd .. git clone https://github.com/lightningdevkit/ldk-c-bindings cd ldk-c-bindings git checkout 0.1 cd lightning-c-bindings - cargo update -p syn --precise "2.0.106" --verbose - cargo update -p quote --precise "1.0.41" --verbose - name: Fetch MacOS SDK run: | curl -o Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz https://bitcoincore.org/depends-sources/sdks/Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz @@ -263,8 +285,6 @@ jobs: git clean -f -x -d git reset --hard cd lightning-c-bindings - cargo update -p syn --precise "2.0.106" --verbose - cargo update -p quote --precise "1.0.41" --verbose cd ../.. export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(git describe --tag HEAD)" export ANDROID_TOOLCHAIN="$(pwd)/android-ndk-r27c/toolchains/llvm/prebuilt/linux-x86_64" @@ -397,6 +417,12 @@ jobs: git checkout origin/0.1-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" cd .. git clone https://github.com/lightningdevkit/ldk-c-bindings cd ldk-c-bindings @@ -404,11 +430,18 @@ jobs: cd lightning-c-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" - name: Pin proc-macro and quote to meet MSRV run: | cd ldk-c-bindings/c-bindings-gen cargo update -p quote --precise "1.0.30" --verbose cargo update -p proc-macro2 --precise "1.0.65" --verbose + cargo update -p unicode-ident --precise 1.0.22 - name: Rebuild C bindings, and check the sample app builds + links run: | cd ldk-c-bindings @@ -463,6 +496,12 @@ jobs: git checkout origin/0.1-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" cd .. git clone https://github.com/lightningdevkit/ldk-c-bindings cd ldk-c-bindings @@ -470,11 +509,18 @@ jobs: cd lightning-c-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" - name: Pin proc-macro and quote to meet MSRV run: | cd ldk-c-bindings/c-bindings-gen cargo update -p quote --precise "1.0.30" --verbose cargo update -p proc-macro2 --precise "1.0.65" --verbose + cargo update -p unicode-ident --precise 1.0.22 - name: Rebuild C bindings, and check the sample app builds + links run: | cd ldk-c-bindings @@ -595,6 +641,12 @@ jobs: git checkout origin/0.1-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" cd .. git clone https://github.com/lightningdevkit/ldk-c-bindings cd ldk-c-bindings @@ -602,11 +654,18 @@ jobs: cd lightning-c-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" - name: Pin proc-macro and quote to meet MSRV run: | cd ldk-c-bindings/c-bindings-gen cargo update -p quote --precise "1.0.30" --verbose cargo update -p proc-macro2 --precise "1.0.65" --verbose + cargo update -p unicode-ident --precise 1.0.22 - name: Fetch MacOS SDK run: | curl -o Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz https://bitcoincore.org/depends-sources/sdks/Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz @@ -737,6 +796,12 @@ jobs: git checkout origin/0.1-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" cd .. git clone https://github.com/lightningdevkit/ldk-c-bindings cd ldk-c-bindings @@ -744,11 +809,18 @@ jobs: cd lightning-c-bindings cargo update -p syn --precise "2.0.106" --verbose cargo update -p quote --precise "1.0.41" --verbose + cargo update -p libc --precise 0.2.183 --verbose + cargo update -p serde_json --precise "1.0.145" --verbose + cargo update -p proc-macro2 --precise "1.0.103" --verbose + cargo update -p itoa --precise 1.0.15 + cargo update -p unicode-ident --precise 1.0.22 + cargo update -p ryu --precise "1.0.20" - name: Pin proc-macro and quote to meet MSRV run: | cd ldk-c-bindings/c-bindings-gen cargo update -p quote --precise "1.0.30" --verbose cargo update -p proc-macro2 --precise "1.0.65" --verbose + cargo update -p unicode-ident --precise 1.0.22 - name: Checkout Android AAR binaries and artifacts run: | # Gitweb only allows snapshots of folders by providing the object hash, which we have to extract: From 8501ed2487fff1ff1b9bddfc63fa815d26948451 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Wed, 1 Jul 2026 12:59:38 +0000 Subject: [PATCH 2/2] Update auto-generated files to LDK 0.1.11 --- c_sharp/src/org/ldk/structs/Bolt11Invoice.cs | 9 ++++++--- c_sharp/src/org/ldk/structs/Event.cs | 3 ++- c_sharp/src/org/ldk/structs/RapidGossipSync.cs | 12 ++++++++++++ src/main/java/org/ldk/structs/Bolt11Invoice.java | 9 ++++++--- src/main/java/org/ldk/structs/Event.java | 3 ++- src/main/java/org/ldk/structs/RapidGossipSync.java | 12 ++++++++++++ ts/structs/Bolt11Invoice.mts | 9 ++++++--- ts/structs/Event.mts | 3 ++- ts/structs/RapidGossipSync.mts | 4 ++++ 9 files changed, 52 insertions(+), 12 deletions(-) diff --git a/c_sharp/src/org/ldk/structs/Bolt11Invoice.cs b/c_sharp/src/org/ldk/structs/Bolt11Invoice.cs index e3fb7e42..191b37fc 100644 --- a/c_sharp/src/org/ldk/structs/Bolt11Invoice.cs +++ b/c_sharp/src/org/ldk/structs/Bolt11Invoice.cs @@ -214,7 +214,10 @@ public org.ldk.structs.Bolt11InvoiceFeatures features() { } /** - * Recover the payee's public key (only to be used if none was included in the invoice) + * Get the invoice's payee public key. + * + * This uses the explicitly included payee public key, if present, otherwise it recovers the + * payee public key from the signature. Prefer [`Self::get_payee_pub_key`] for clarity. */ public byte[] recover_payee_pub_key() { long ret = bindings.Bolt11Invoice_recover_payee_pub_key(this.ptr); @@ -225,8 +228,8 @@ public byte[] recover_payee_pub_key() { } /** - * Recover the payee's public key if one was included in the invoice, otherwise return the - * recovered public key from the signature + * Get the invoice's payee public key, preferring an explicitly included payee public key and + * falling back to recovering the key from the signature. */ public byte[] get_payee_pub_key() { long ret = bindings.Bolt11Invoice_get_payee_pub_key(this.ptr); diff --git a/c_sharp/src/org/ldk/structs/Event.cs b/c_sharp/src/org/ldk/structs/Event.cs index 9d980a6a..626c1502 100644 --- a/c_sharp/src/org/ldk/structs/Event.cs +++ b/c_sharp/src/org/ldk/structs/Event.cs @@ -465,7 +465,8 @@ public class Event_PaymentSent : Event { * If the recipient or an intermediate node misbehaves and gives us free money, this may * overstate the amount paid, though this is unlikely. * - * This is only `None` for payments initiated on LDK versions prior to 0.0.103. + * This is only `None` for payments abandoned but ultimately claimed when using LDK versions + * prior to 0.3, 0.2.3, or 0.1.10. * * [`Route::get_total_fees`]: crate::routing::router::Route::get_total_fees */ diff --git a/c_sharp/src/org/ldk/structs/RapidGossipSync.cs b/c_sharp/src/org/ldk/structs/RapidGossipSync.cs index 3cd98168..7f2c106f 100644 --- a/c_sharp/src/org/ldk/structs/RapidGossipSync.cs +++ b/c_sharp/src/org/ldk/structs/RapidGossipSync.cs @@ -38,6 +38,10 @@ public static org.ldk.structs.RapidGossipSync of(org.ldk.structs.NetworkGraph ne * Sync gossip data from a file. * Returns the last sync timestamp to be used the next time rapid sync data is queried. * + * You should consider the gossip data source as semi-trusted. It is generally the case that it + * can DoS the client either by omitting data which leads to pathfinding failure or by bloating + * the graph such that it leads to eventual OOM on the client. + * * `network_graph`: The network graph to apply the updates to * * `sync_path`: Path to the file where the gossip update data is located @@ -55,6 +59,10 @@ public org.ldk.structs.Result_u32GraphSyncErrorZ sync_network_graph_with_file_pa * Update network graph from binary data. * Returns the last sync timestamp to be used the next time rapid sync data is queried. * + * You should consider the gossip data source as semi-trusted. It is generally the case that it + * can DoS the client either by omitting data which leads to pathfinding failure or by bloating + * the graph such that it leads to eventual OOM on the client. + * * `update_data`: `&[u8]` binary stream that comprises the update data */ public org.ldk.structs.Result_u32GraphSyncErrorZ update_network_graph(byte[] update_data) { @@ -70,6 +78,10 @@ public org.ldk.structs.Result_u32GraphSyncErrorZ update_network_graph(byte[] upd * Update network graph from binary data. * Returns the last sync timestamp to be used the next time rapid sync data is queried. * + * You should consider the gossip data source as semi-trusted. It is generally the case that it + * can DoS the client either by omitting data which leads to pathfinding failure or by bloating + * the graph such that it leads to eventual OOM on the client. + * * `update_data`: `&[u8]` binary stream that comprises the update data * `current_time_unix`: `Option` optional current timestamp to verify data age */ diff --git a/src/main/java/org/ldk/structs/Bolt11Invoice.java b/src/main/java/org/ldk/structs/Bolt11Invoice.java index 81a5bc09..591c1225 100644 --- a/src/main/java/org/ldk/structs/Bolt11Invoice.java +++ b/src/main/java/org/ldk/structs/Bolt11Invoice.java @@ -213,7 +213,10 @@ public Bolt11InvoiceFeatures features() { } /** - * Recover the payee's public key (only to be used if none was included in the invoice) + * Get the invoice's payee public key. + * + * This uses the explicitly included payee public key, if present, otherwise it recovers the + * payee public key from the signature. Prefer [`Self::get_payee_pub_key`] for clarity. */ public byte[] recover_payee_pub_key() { byte[] ret = bindings.Bolt11Invoice_recover_payee_pub_key(this.ptr); @@ -222,8 +225,8 @@ public byte[] recover_payee_pub_key() { } /** - * Recover the payee's public key if one was included in the invoice, otherwise return the - * recovered public key from the signature + * Get the invoice's payee public key, preferring an explicitly included payee public key and + * falling back to recovering the key from the signature. */ public byte[] get_payee_pub_key() { byte[] ret = bindings.Bolt11Invoice_get_payee_pub_key(this.ptr); diff --git a/src/main/java/org/ldk/structs/Event.java b/src/main/java/org/ldk/structs/Event.java index e0577f7a..721f43c5 100644 --- a/src/main/java/org/ldk/structs/Event.java +++ b/src/main/java/org/ldk/structs/Event.java @@ -632,7 +632,8 @@ public final static class PaymentSent extends Event { * If the recipient or an intermediate node misbehaves and gives us free money, this may * overstate the amount paid, though this is unlikely. * - * This is only `None` for payments initiated on LDK versions prior to 0.0.103. + * This is only `None` for payments abandoned but ultimately claimed when using LDK versions + * prior to 0.3, 0.2.3, or 0.1.10. * * [`Route::get_total_fees`]: crate::routing::router::Route::get_total_fees */ diff --git a/src/main/java/org/ldk/structs/RapidGossipSync.java b/src/main/java/org/ldk/structs/RapidGossipSync.java index bc28d25f..7f5b12c7 100644 --- a/src/main/java/org/ldk/structs/RapidGossipSync.java +++ b/src/main/java/org/ldk/structs/RapidGossipSync.java @@ -43,6 +43,10 @@ public static RapidGossipSync of(org.ldk.structs.NetworkGraph network_graph, org * Sync gossip data from a file. * Returns the last sync timestamp to be used the next time rapid sync data is queried. * + * You should consider the gossip data source as semi-trusted. It is generally the case that it + * can DoS the client either by omitting data which leads to pathfinding failure or by bloating + * the graph such that it leads to eventual OOM on the client. + * * `network_graph`: The network graph to apply the updates to * * `sync_path`: Path to the file where the gossip update data is located @@ -60,6 +64,10 @@ public Result_u32GraphSyncErrorZ sync_network_graph_with_file_path(java.lang.Str * Update network graph from binary data. * Returns the last sync timestamp to be used the next time rapid sync data is queried. * + * You should consider the gossip data source as semi-trusted. It is generally the case that it + * can DoS the client either by omitting data which leads to pathfinding failure or by bloating + * the graph such that it leads to eventual OOM on the client. + * * `update_data`: `&[u8]` binary stream that comprises the update data */ public Result_u32GraphSyncErrorZ update_network_graph(byte[] update_data) { @@ -75,6 +83,10 @@ public Result_u32GraphSyncErrorZ update_network_graph(byte[] update_data) { * Update network graph from binary data. * Returns the last sync timestamp to be used the next time rapid sync data is queried. * + * You should consider the gossip data source as semi-trusted. It is generally the case that it + * can DoS the client either by omitting data which leads to pathfinding failure or by bloating + * the graph such that it leads to eventual OOM on the client. + * * `update_data`: `&[u8]` binary stream that comprises the update data * `current_time_unix`: `Option` optional current timestamp to verify data age */ diff --git a/ts/structs/Bolt11Invoice.mts b/ts/structs/Bolt11Invoice.mts index 5a120aba..51b9790c 100644 --- a/ts/structs/Bolt11Invoice.mts +++ b/ts/structs/Bolt11Invoice.mts @@ -965,7 +965,10 @@ export class Bolt11Invoice extends CommonBase { } /** - * Recover the payee's public key (only to be used if none was included in the invoice) + * Get the invoice's payee public key. + * + * This uses the explicitly included payee public key, if present, otherwise it recovers the + * payee public key from the signature. Prefer [`Self::get_payee_pub_key`] for clarity. */ public recover_payee_pub_key(): Uint8Array { const ret: number = bindings.Bolt11Invoice_recover_payee_pub_key(this.ptr); @@ -974,8 +977,8 @@ export class Bolt11Invoice extends CommonBase { } /** - * Recover the payee's public key if one was included in the invoice, otherwise return the - * recovered public key from the signature + * Get the invoice's payee public key, preferring an explicitly included payee public key and + * falling back to recovering the key from the signature. */ public get_payee_pub_key(): Uint8Array { const ret: number = bindings.Bolt11Invoice_get_payee_pub_key(this.ptr); diff --git a/ts/structs/Event.mts b/ts/structs/Event.mts index 0124ed6a..df6db02d 100644 --- a/ts/structs/Event.mts +++ b/ts/structs/Event.mts @@ -1549,7 +1549,8 @@ export class Event_PaymentSent extends Event { * If the recipient or an intermediate node misbehaves and gives us free money, this may * overstate the amount paid, though this is unlikely. * - * This is only `None` for payments initiated on LDK versions prior to 0.0.103. + * This is only `None` for payments abandoned but ultimately claimed when using LDK versions + * prior to 0.3, 0.2.3, or 0.1.10. * * [`Route::get_total_fees`]: crate::routing::router::Route::get_total_fees */ diff --git a/ts/structs/RapidGossipSync.mts b/ts/structs/RapidGossipSync.mts index 20dc001b..8c6307f0 100644 --- a/ts/structs/RapidGossipSync.mts +++ b/ts/structs/RapidGossipSync.mts @@ -828,6 +828,10 @@ export class RapidGossipSync extends CommonBase { * Update network graph from binary data. * Returns the last sync timestamp to be used the next time rapid sync data is queried. * + * You should consider the gossip data source as semi-trusted. It is generally the case that it + * can DoS the client either by omitting data which leads to pathfinding failure or by bloating + * the graph such that it leads to eventual OOM on the client. + * * `update_data`: `&[u8]` binary stream that comprises the update data * `current_time_unix`: `Option` optional current timestamp to verify data age */