From 3e2a18e26ce15aeee3ee4df7edece86fc38ef1c5 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Tue, 23 Jun 2026 16:33:46 +0000 Subject: [PATCH 1/2] Update auto-generated bindings to LDK 0.2.3 --- lightning-c-bindings/include/lightning.h | 61 ++++++++++++++++--- .../src/lightning/events/mod.rs | 3 +- .../src/lightning/ln/channelmanager.rs | 6 ++ .../src/lightning/offers/flow.rs | 4 +- .../src/lightning/routing/gossip.rs | 14 +++++ .../src/lightning_invoice/mod.rs | 9 ++- .../src/lightning_rapid_gossip_sync.rs | 12 ++++ .../src/lightning_types/features.rs | 44 ++++++++++--- .../src/lightning_types/mod.rs | 12 ++++ 9 files changed, 139 insertions(+), 26 deletions(-) diff --git a/lightning-c-bindings/include/lightning.h b/lightning-c-bindings/include/lightning.h index e6415b67..7e928c74 100644 --- a/lightning-c-bindings/include/lightning.h +++ b/lightning-c-bindings/include/lightning.h @@ -23726,7 +23726,8 @@ typedef struct LDKEvent_LDKPaymentSent_Body { * 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 */ @@ -32151,6 +32152,10 @@ extern const uintptr_t PAYER_NOTE_LIMIT; extern const uint64_t UNKNOWN_CHANNEL_CAPACITY_MSAT; +extern const uintptr_t CHAN_COUNT_ESTIMATE; + +extern const uintptr_t NODE_COUNT_ESTIMATE; + extern const uint32_t DEFAULT_MAX_TOTAL_CLTV_EXPIRY_DELTA; extern const uint8_t DEFAULT_MAX_PATH_COUNT; @@ -51967,6 +51972,12 @@ void ChannelManager_force_close_all_channels_broadcasting_latest_txn(const struc * the channel. This will spend the channel's funding transaction output, effectively replacing * it with a new one. * + * # Required Feature Flags + * + * Initiating a splice requires that the channel counterparty supports splicing. Any + * channel (no matter the type) can be spliced, as long as the counterparty is currently + * connected. + * * # Arguments * * Provide a `contribution` to determine if value is spliced in or out. The splice initiator is @@ -61492,7 +61503,7 @@ MUST_USE_RES struct LDKCResult_NoneNoneZ OffersMessageFlow_set_paths_to_static_i * Must be called whenever a new chain tip becomes available. May be skipped * for intermediary blocks. */ -void OffersMessageFlow_best_block_updated(const struct LDKOffersMessageFlow *NONNULL_PTR this_arg, const uint8_t (*header)[80], uint32_t _height); +void OffersMessageFlow_best_block_updated(const struct LDKOffersMessageFlow *NONNULL_PTR this_arg, const uint8_t (*header)[80], uint32_t height); /** * [`BlindedMessagePath`]s for an async recipient to communicate with this node and interactively @@ -71755,12 +71766,12 @@ void InitFeatures_set_zero_conf_required(struct LDKInitFeatures *NONNULL_PTR thi /** * Unsets this feature. */ -void InitFeatures_supports_zero_conf(struct LDKInitFeatures *NONNULL_PTR this_arg); +void InitFeatures_clear_zero_conf(struct LDKInitFeatures *NONNULL_PTR this_arg); /** * Checks if this feature is supported. */ -MUST_USE_RES bool InitFeatures_requires_zero_conf(const struct LDKInitFeatures *NONNULL_PTR this_arg); +MUST_USE_RES bool InitFeatures_supports_zero_conf(const struct LDKInitFeatures *NONNULL_PTR this_arg); /** * Set this feature as optional. @@ -71775,12 +71786,12 @@ void NodeFeatures_set_zero_conf_required(struct LDKNodeFeatures *NONNULL_PTR thi /** * Unsets this feature. */ -void NodeFeatures_supports_zero_conf(struct LDKNodeFeatures *NONNULL_PTR this_arg); +void NodeFeatures_clear_zero_conf(struct LDKNodeFeatures *NONNULL_PTR this_arg); /** * Checks if this feature is supported. */ -MUST_USE_RES bool NodeFeatures_requires_zero_conf(const struct LDKNodeFeatures *NONNULL_PTR this_arg); +MUST_USE_RES bool NodeFeatures_supports_zero_conf(const struct LDKNodeFeatures *NONNULL_PTR this_arg); /** * Set this feature as optional. @@ -71795,11 +71806,26 @@ void ChannelTypeFeatures_set_zero_conf_required(struct LDKChannelTypeFeatures *N /** * Unsets this feature. */ -void ChannelTypeFeatures_supports_zero_conf(struct LDKChannelTypeFeatures *NONNULL_PTR this_arg); +void ChannelTypeFeatures_clear_zero_conf(struct LDKChannelTypeFeatures *NONNULL_PTR this_arg); /** * Checks if this feature is supported. */ +MUST_USE_RES bool ChannelTypeFeatures_supports_zero_conf(const struct LDKChannelTypeFeatures *NONNULL_PTR this_arg); + +/** + * Checks if this feature is required. + */ +MUST_USE_RES bool InitFeatures_requires_zero_conf(const struct LDKInitFeatures *NONNULL_PTR this_arg); + +/** + * Checks if this feature is required. + */ +MUST_USE_RES bool NodeFeatures_requires_zero_conf(const struct LDKNodeFeatures *NONNULL_PTR this_arg); + +/** + * Checks if this feature is required. + */ MUST_USE_RES bool ChannelTypeFeatures_requires_zero_conf(const struct LDKChannelTypeFeatures *NONNULL_PTR this_arg); /** @@ -73305,13 +73331,16 @@ MUST_USE_RES struct LDKCOption_CVec_u8ZZ Bolt11Invoice_payment_metadata(const st MUST_USE_RES struct LDKBolt11InvoiceFeatures Bolt11Invoice_features(const struct LDKBolt11Invoice *NONNULL_PTR this_arg); /** - * 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. */ MUST_USE_RES struct LDKPublicKey Bolt11Invoice_recover_payee_pub_key(const struct LDKBolt11Invoice *NONNULL_PTR this_arg); /** - * 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. */ MUST_USE_RES struct LDKPublicKey Bolt11Invoice_get_payee_pub_key(const struct LDKBolt11Invoice *NONNULL_PTR this_arg); @@ -73711,6 +73740,10 @@ MUST_USE_RES struct LDKRapidGossipSync RapidGossipSync_new(const struct LDKNetwo * 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 @@ -73722,6 +73755,10 @@ MUST_USE_RES struct LDKCResult_u32GraphSyncErrorZ RapidGossipSync_sync_network_g * 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 */ MUST_USE_RES struct LDKCResult_u32GraphSyncErrorZ RapidGossipSync_update_network_graph(const struct LDKRapidGossipSync *NONNULL_PTR this_arg, struct LDKu8slice update_data); @@ -73730,6 +73767,10 @@ MUST_USE_RES struct LDKCResult_u32GraphSyncErrorZ RapidGossipSync_update_network * 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/lightning-c-bindings/src/lightning/events/mod.rs b/lightning-c-bindings/src/lightning/events/mod.rs index 0062689a..6949e97e 100644 --- a/lightning-c-bindings/src/lightning/events/mod.rs +++ b/lightning-c-bindings/src/lightning/events/mod.rs @@ -2343,7 +2343,8 @@ pub enum 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 fee_paid_msat: crate::c_types::derived::COption_u64Z, diff --git a/lightning-c-bindings/src/lightning/ln/channelmanager.rs b/lightning-c-bindings/src/lightning/ln/channelmanager.rs index a5006d02..5fd81572 100644 --- a/lightning-c-bindings/src/lightning/ln/channelmanager.rs +++ b/lightning-c-bindings/src/lightning/ln/channelmanager.rs @@ -2936,6 +2936,12 @@ pub extern "C" fn ChannelManager_force_close_all_channels_broadcasting_latest_tx /// the channel. This will spend the channel's funding transaction output, effectively replacing /// it with a new one. /// +/// # Required Feature Flags +/// +/// Initiating a splice requires that the channel counterparty supports splicing. Any +/// channel (no matter the type) can be spliced, as long as the counterparty is currently +/// connected. +/// /// # Arguments /// /// Provide a `contribution` to determine if value is spliced in or out. The splice initiator is diff --git a/lightning-c-bindings/src/lightning/offers/flow.rs b/lightning-c-bindings/src/lightning/offers/flow.rs index 21c59a2e..8028959c 100644 --- a/lightning-c-bindings/src/lightning/offers/flow.rs +++ b/lightning-c-bindings/src/lightning/offers/flow.rs @@ -129,8 +129,8 @@ pub extern "C" fn OffersMessageFlow_set_paths_to_static_invoice_server(this_arg: /// Must be called whenever a new chain tip becomes available. May be skipped /// for intermediary blocks. #[no_mangle] -pub extern "C" fn OffersMessageFlow_best_block_updated(this_arg: &crate::lightning::offers::flow::OffersMessageFlow, header: *const [u8; 80], mut _height: u32) { - unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.best_block_updated(&::bitcoin::consensus::encode::deserialize(unsafe { &*header }).unwrap(), _height) +pub extern "C" fn OffersMessageFlow_best_block_updated(this_arg: &crate::lightning::offers::flow::OffersMessageFlow, header: *const [u8; 80], mut height: u32) { + unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.best_block_updated(&::bitcoin::consensus::encode::deserialize(unsafe { &*header }).unwrap(), height) } /// The maximum size of a received [`StaticInvoice`] before we'll fail verification in diff --git a/lightning-c-bindings/src/lightning/routing/gossip.rs b/lightning-c-bindings/src/lightning/routing/gossip.rs index f5bd4ee2..b4554dcf 100644 --- a/lightning-c-bindings/src/lightning/routing/gossip.rs +++ b/lightning-c-bindings/src/lightning/routing/gossip.rs @@ -2262,6 +2262,20 @@ pub extern "C" fn NetworkGraph_read(ser: crate::c_types::u8slice, arg: crate::li pub extern "C" fn NetworkGraph_to_str(o: &crate::lightning::routing::gossip::NetworkGraph) -> Str { alloc::format!("{}", o.get_native_ref()).into() } +/// In Jan, 2025 there were about 49K channels. +/// +/// We over-allocate by a bit because 20% more is better than the double we get if we're slightly +/// too low + +#[no_mangle] +pub static CHAN_COUNT_ESTIMATE: usize = lightning::routing::gossip::CHAN_COUNT_ESTIMATE; +/// In Jan, 2025 there were about 15K nodes +/// +/// We over-allocate by a bit because 33% more is better than the double we get if we're slightly +/// too low + +#[no_mangle] +pub static NODE_COUNT_ESTIMATE: usize = lightning::routing::gossip::NODE_COUNT_ESTIMATE; /// Creates a new, empty, network graph. #[must_use] #[no_mangle] diff --git a/lightning-c-bindings/src/lightning_invoice/mod.rs b/lightning-c-bindings/src/lightning_invoice/mod.rs index 388634bc..b1977e73 100644 --- a/lightning-c-bindings/src/lightning_invoice/mod.rs +++ b/lightning-c-bindings/src/lightning_invoice/mod.rs @@ -2631,7 +2631,10 @@ pub extern "C" fn Bolt11Invoice_features(this_arg: &crate::lightning_invoice::Bo local_ret } -/// 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. #[must_use] #[no_mangle] pub extern "C" fn Bolt11Invoice_recover_payee_pub_key(this_arg: &crate::lightning_invoice::Bolt11Invoice) -> crate::c_types::PublicKey { @@ -2639,8 +2642,8 @@ pub extern "C" fn Bolt11Invoice_recover_payee_pub_key(this_arg: &crate::lightnin crate::c_types::PublicKey::from_rust(&ret) } -/// 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. #[must_use] #[no_mangle] pub extern "C" fn Bolt11Invoice_get_payee_pub_key(this_arg: &crate::lightning_invoice::Bolt11Invoice) -> crate::c_types::PublicKey { diff --git a/lightning-c-bindings/src/lightning_rapid_gossip_sync.rs b/lightning-c-bindings/src/lightning_rapid_gossip_sync.rs index 80ff512a..ac46fb4d 100644 --- a/lightning-c-bindings/src/lightning_rapid_gossip_sync.rs +++ b/lightning-c-bindings/src/lightning_rapid_gossip_sync.rs @@ -292,6 +292,10 @@ pub extern "C" fn RapidGossipSync_new(network_graph: &crate::lightning::routing: /// 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 @@ -307,6 +311,10 @@ pub extern "C" fn RapidGossipSync_sync_network_graph_with_file_path(this_arg: &c /// 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 #[must_use] #[no_mangle] @@ -319,6 +327,10 @@ pub extern "C" fn RapidGossipSync_update_network_graph(this_arg: &crate::lightni /// 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 #[must_use] diff --git a/lightning-c-bindings/src/lightning_types/features.rs b/lightning-c-bindings/src/lightning_types/features.rs index c95b07cf..b30bcc83 100644 --- a/lightning-c-bindings/src/lightning_types/features.rs +++ b/lightning-c-bindings/src/lightning_types/features.rs @@ -1783,15 +1783,15 @@ pub extern "C" fn InitFeatures_set_zero_conf_required(this_arg: &mut crate::ligh /// Unsets this feature. #[no_mangle] -pub extern "C" fn InitFeatures_supports_zero_conf(this_arg: &mut crate::lightning_types::features::InitFeatures) { - unsafe { &mut (*ObjOps::untweak_ptr(this_arg.inner as *mut crate::lightning_types::features::nativeInitFeatures)) }.supports_zero_conf() +pub extern "C" fn InitFeatures_clear_zero_conf(this_arg: &mut crate::lightning_types::features::InitFeatures) { + unsafe { &mut (*ObjOps::untweak_ptr(this_arg.inner as *mut crate::lightning_types::features::nativeInitFeatures)) }.clear_zero_conf() } /// Checks if this feature is supported. #[must_use] #[no_mangle] -pub extern "C" fn InitFeatures_requires_zero_conf(this_arg: &crate::lightning_types::features::InitFeatures) -> bool { - let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.requires_zero_conf(); +pub extern "C" fn InitFeatures_supports_zero_conf(this_arg: &crate::lightning_types::features::InitFeatures) -> bool { + let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.supports_zero_conf(); ret } @@ -1809,15 +1809,15 @@ pub extern "C" fn NodeFeatures_set_zero_conf_required(this_arg: &mut crate::ligh /// Unsets this feature. #[no_mangle] -pub extern "C" fn NodeFeatures_supports_zero_conf(this_arg: &mut crate::lightning_types::features::NodeFeatures) { - unsafe { &mut (*ObjOps::untweak_ptr(this_arg.inner as *mut crate::lightning_types::features::nativeNodeFeatures)) }.supports_zero_conf() +pub extern "C" fn NodeFeatures_clear_zero_conf(this_arg: &mut crate::lightning_types::features::NodeFeatures) { + unsafe { &mut (*ObjOps::untweak_ptr(this_arg.inner as *mut crate::lightning_types::features::nativeNodeFeatures)) }.clear_zero_conf() } /// Checks if this feature is supported. #[must_use] #[no_mangle] -pub extern "C" fn NodeFeatures_requires_zero_conf(this_arg: &crate::lightning_types::features::NodeFeatures) -> bool { - let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.requires_zero_conf(); +pub extern "C" fn NodeFeatures_supports_zero_conf(this_arg: &crate::lightning_types::features::NodeFeatures) -> bool { + let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.supports_zero_conf(); ret } @@ -1835,13 +1835,37 @@ pub extern "C" fn ChannelTypeFeatures_set_zero_conf_required(this_arg: &mut crat /// Unsets this feature. #[no_mangle] -pub extern "C" fn ChannelTypeFeatures_supports_zero_conf(this_arg: &mut crate::lightning_types::features::ChannelTypeFeatures) { - unsafe { &mut (*ObjOps::untweak_ptr(this_arg.inner as *mut crate::lightning_types::features::nativeChannelTypeFeatures)) }.supports_zero_conf() +pub extern "C" fn ChannelTypeFeatures_clear_zero_conf(this_arg: &mut crate::lightning_types::features::ChannelTypeFeatures) { + unsafe { &mut (*ObjOps::untweak_ptr(this_arg.inner as *mut crate::lightning_types::features::nativeChannelTypeFeatures)) }.clear_zero_conf() } /// Checks if this feature is supported. #[must_use] #[no_mangle] +pub extern "C" fn ChannelTypeFeatures_supports_zero_conf(this_arg: &crate::lightning_types::features::ChannelTypeFeatures) -> bool { + let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.supports_zero_conf(); + ret +} + +/// Checks if this feature is required. +#[must_use] +#[no_mangle] +pub extern "C" fn InitFeatures_requires_zero_conf(this_arg: &crate::lightning_types::features::InitFeatures) -> bool { + let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.requires_zero_conf(); + ret +} + +/// Checks if this feature is required. +#[must_use] +#[no_mangle] +pub extern "C" fn NodeFeatures_requires_zero_conf(this_arg: &crate::lightning_types::features::NodeFeatures) -> bool { + let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.requires_zero_conf(); + ret +} + +/// Checks if this feature is required. +#[must_use] +#[no_mangle] pub extern "C" fn ChannelTypeFeatures_requires_zero_conf(this_arg: &crate::lightning_types::features::ChannelTypeFeatures) -> bool { let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.requires_zero_conf(); ret diff --git a/lightning-c-bindings/src/lightning_types/mod.rs b/lightning-c-bindings/src/lightning_types/mod.rs index a8154337..8e7e29f0 100644 --- a/lightning-c-bindings/src/lightning_types/mod.rs +++ b/lightning-c-bindings/src/lightning_types/mod.rs @@ -24,3 +24,15 @@ pub mod features; pub mod payment; pub mod routing; pub mod string; +mod unicode { + +use alloc::str::FromStr; +use alloc::string::String; +use core::ffi::c_void; +use core::convert::Infallible; +use bitcoin::hashes::Hash; +use crate::c_types::*; +#[cfg(feature="no-std")] +use alloc::{vec::Vec, boxed::Box}; + +} From 8983cff14871ed69c1c90625248f547ef19991c0 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Tue, 23 Jun 2026 15:50:18 +0000 Subject: [PATCH 2/2] Update CI pins for new MSRV breakage --- .github/workflows/build.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 24569ab3..81c7170a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,6 +34,12 @@ jobs: run: | 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: Sanity test bindings against Cargo.toml RL working-directory: lightning-c-bindings run: | @@ -54,6 +60,12 @@ jobs: git checkout 0.2-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: Fix Github Actions to not be broken run: git config --global --add safe.directory /__w/ldk-c-bindings/ldk-c-bindings - name: Pin proc-macro and quote to meet MSRV @@ -61,6 +73,7 @@ jobs: cd 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 bindings without std, and check the sample app builds + links run: ./genbindings.sh ./rust-lightning false - name: Rebuild bindings, and check the sample app builds + links @@ -101,6 +114,12 @@ jobs: run: | 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: Sanity test bindings against Cargo.toml RL working-directory: lightning-c-bindings run: | @@ -121,6 +140,12 @@ jobs: git checkout 0.2-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: Fix Github Actions to not be broken run: git config --global --add safe.directory /__w/ldk-c-bindings/ldk-c-bindings - name: Pin proc-macro and quote to meet MSRV @@ -128,6 +153,7 @@ jobs: cd 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: | wget https://bitcoincore.org/depends-sources/sdks/Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz