From 6b9751bd140606e5780224fa3ec8e9dea523aa08 Mon Sep 17 00:00:00 2001 From: Elias Rohrer Date: Thu, 19 Jun 2025 14:06:43 +0200 Subject: [PATCH 1/3] Fix test code after `Bolt11Invoice::invoice_description` rename .. which we forgot when we made the change. --- src/ffi/types.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ffi/types.rs b/src/ffi/types.rs index c65bb0599..984e4da8f 100644 --- a/src/ffi/types.rs +++ b/src/ffi/types.rs @@ -1262,7 +1262,7 @@ mod tests { let (ldk_invoice, wrapped_invoice) = create_test_bolt11_invoice(); let ldk_description = ldk_invoice.description(); - let wrapped_description = wrapped_invoice.description(); + let wrapped_description = wrapped_invoice.invoice_description(); match (ldk_description, &wrapped_description) { ( From efa5b735de912e2a3c06d2474ca5186701e5c07c Mon Sep 17 00:00:00 2001 From: Elias Rohrer Date: Thu, 19 Jun 2025 13:09:58 +0200 Subject: [PATCH 2/3] Update `CHANGELOG.md` for v0.6.1 --- CHANGELOG.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29b6f748c..fe613a07b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ +# 0.6.1 - Jun. 19, 2025 +This patch release fixes minor issues with the recently-exposed `Bolt11Invoice` +type in bindings. + +## Feature and API updates +- The `Bolt11Invoice::description` method is now exposed as + `Bolt11Invoice::invoice_description` in bindings, to avoid collisions with a + Swift standard method of same name (#576) + +## Bug Fixes and Improvements +- The `Display` implementation of `Bolt11Invoice` is now exposed in bindings, + (re-)allowing to render the invoice as a string. (#574) + +In total, this release features 9 files changed, 549 insertions, 83 deletions, +in 8 commits from 1 author in alphabetical order: + +- Elias Rohrer + # 0.6.0 - Jun. 9, 2025 This sixth minor release mainly fixes an issue that could have left the on-chain wallet unable to spend funds if transactions that had previously been From ec2b24d664b7a3186418526e3062d53d0b88a1f7 Mon Sep 17 00:00:00 2001 From: Elias Rohrer Date: Thu, 19 Jun 2025 13:25:13 +0200 Subject: [PATCH 3/3] Update Swift files for v0.6.1 --- Package.swift | 4 +- bindings/swift/Sources/LDKNode/LDKNode.swift | 52 +++++++++++++++----- 2 files changed, 42 insertions(+), 14 deletions(-) diff --git a/Package.swift b/Package.swift index 33c5a70b8..78a38f294 100644 --- a/Package.swift +++ b/Package.swift @@ -3,8 +3,8 @@ import PackageDescription -let tag = "v0.6.0" -let checksum = "8bda396624134e0b592bfcc2f977b9aa5ce8c2ee359c032ae3520869ece8851c" +let tag = "v0.6.1" +let checksum = "73f53b615d5bfdf76f2e7233bde17a2a62631292ce506763a7150344230859c8" let url = "https://github.com/lightningdevkit/ldk-node/releases/download/\(tag)/LDKNodeFFI.xcframework.zip" let package = Package( diff --git a/bindings/swift/Sources/LDKNode/LDKNode.swift b/bindings/swift/Sources/LDKNode/LDKNode.swift index 442201d31..20ad658d7 100644 --- a/bindings/swift/Sources/LDKNode/LDKNode.swift +++ b/bindings/swift/Sources/LDKNode/LDKNode.swift @@ -517,12 +517,12 @@ public protocol Bolt11InvoiceProtocol : AnyObject { func currency() -> Currency - func description() -> Bolt11InvoiceDescription - func expiryTimeSeconds() -> UInt64 func fallbackAddresses() -> [Address] + func invoiceDescription() -> Bolt11InvoiceDescription + func isExpired() -> Bool func minFinalCltvExpiryDelta() -> UInt64 @@ -548,6 +548,9 @@ public protocol Bolt11InvoiceProtocol : AnyObject { } open class Bolt11Invoice: + CustomDebugStringConvertible, + CustomStringConvertible, + Equatable, Bolt11InvoiceProtocol { fileprivate let pointer: UnsafeMutableRawPointer! @@ -610,13 +613,6 @@ open func currency() -> Currency { }) } -open func description() -> Bolt11InvoiceDescription { - return try! FfiConverterTypeBolt11InvoiceDescription.lift(try! rustCall() { - uniffi_ldk_node_fn_method_bolt11invoice_description(self.uniffiClonePointer(),$0 - ) -}) -} - open func expiryTimeSeconds() -> UInt64 { return try! FfiConverterUInt64.lift(try! rustCall() { uniffi_ldk_node_fn_method_bolt11invoice_expiry_time_seconds(self.uniffiClonePointer(),$0 @@ -631,6 +627,13 @@ open func fallbackAddresses() -> [Address] { }) } +open func invoiceDescription() -> Bolt11InvoiceDescription { + return try! FfiConverterTypeBolt11InvoiceDescription.lift(try! rustCall() { + uniffi_ldk_node_fn_method_bolt11invoice_invoice_description(self.uniffiClonePointer(),$0 + ) +}) +} + open func isExpired() -> Bool { return try! FfiConverterBool.lift(try! rustCall() { uniffi_ldk_node_fn_method_bolt11invoice_is_expired(self.uniffiClonePointer(),$0 @@ -709,6 +712,31 @@ open func wouldExpire(atTimeSeconds: UInt64) -> Bool { }) } + open var debugDescription: String { + return try! FfiConverterString.lift( + try! rustCall() { + uniffi_ldk_node_fn_method_bolt11invoice_uniffi_trait_debug(self.uniffiClonePointer(),$0 + ) +} + ) + } + open var description: String { + return try! FfiConverterString.lift( + try! rustCall() { + uniffi_ldk_node_fn_method_bolt11invoice_uniffi_trait_display(self.uniffiClonePointer(),$0 + ) +} + ) + } + public static func == (self: Bolt11Invoice, other: Bolt11Invoice) -> Bool { + return try! FfiConverterBool.lift( + try! rustCall() { + uniffi_ldk_node_fn_method_bolt11invoice_uniffi_trait_eq_eq(self.uniffiClonePointer(), + FfiConverterTypeBolt11Invoice.lower(other),$0 + ) +} + ) + } } @@ -9451,15 +9479,15 @@ private var initializationResult: InitializationResult { if (uniffi_ldk_node_checksum_method_bolt11invoice_currency() != 32179) { return InitializationResult.apiChecksumMismatch } - if (uniffi_ldk_node_checksum_method_bolt11invoice_description() != 9887) { - return InitializationResult.apiChecksumMismatch - } if (uniffi_ldk_node_checksum_method_bolt11invoice_expiry_time_seconds() != 23625) { return InitializationResult.apiChecksumMismatch } if (uniffi_ldk_node_checksum_method_bolt11invoice_fallback_addresses() != 55276) { return InitializationResult.apiChecksumMismatch } + if (uniffi_ldk_node_checksum_method_bolt11invoice_invoice_description() != 395) { + return InitializationResult.apiChecksumMismatch + } if (uniffi_ldk_node_checksum_method_bolt11invoice_is_expired() != 15932) { return InitializationResult.apiChecksumMismatch }