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 diff --git a/Cargo.toml b/Cargo.toml index 67102373d..8ad1f2174 100755 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ldk-node" -version = "0.6.0" +version = "0.6.1" authors = ["Elias Rohrer "] homepage = "https://lightningdevkit.org/" license = "MIT OR Apache-2.0" 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/kotlin/ldk-node-android/gradle.properties b/bindings/kotlin/ldk-node-android/gradle.properties index 578c3308b..bfab1f826 100644 --- a/bindings/kotlin/ldk-node-android/gradle.properties +++ b/bindings/kotlin/ldk-node-android/gradle.properties @@ -2,4 +2,4 @@ org.gradle.jvmargs=-Xmx1536m android.useAndroidX=true android.enableJetifier=true kotlin.code.style=official -libraryVersion=0.6.0 +libraryVersion=0.6.1 diff --git a/bindings/kotlin/ldk-node-jvm/gradle.properties b/bindings/kotlin/ldk-node-jvm/gradle.properties index 913b5caea..400ffe7af 100644 --- a/bindings/kotlin/ldk-node-jvm/gradle.properties +++ b/bindings/kotlin/ldk-node-jvm/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx1536m kotlin.code.style=official -libraryVersion=0.6.0 +libraryVersion=0.6.1 diff --git a/bindings/python/pyproject.toml b/bindings/python/pyproject.toml index 496781a6a..71f75c42d 100644 --- a/bindings/python/pyproject.toml +++ b/bindings/python/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ldk_node" -version = "0.6.0" +version = "0.6.1" authors = [ { name="Elias Rohrer", email="dev@tnull.de" }, ] 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 } diff --git a/src/uniffi_types.rs b/src/uniffi_types.rs index 535de0ed4..7f37e6eed 100644 --- a/src/uniffi_types.rs +++ b/src/uniffi_types.rs @@ -727,7 +727,7 @@ mod tests { let (ldk_invoice, wrapped_invoice) = create_test_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) { (