From f2c8e18600d82e40337ffa9a3e92b661ffc7dcb9 Mon Sep 17 00:00:00 2001 From: Ross Savage <551697+dangeross@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:00:07 +0000 Subject: [PATCH] Add a 3 second cache control for unsettled LNURL verify requests (#948) --- .../src/main/kotlin/breez_sdk_liquid_notification/Constants.kt | 1 + .../kotlin/breez_sdk_liquid_notification/job/LnurlPayVerify.kt | 3 ++- .../langs/swift/Sources/BreezSDKLiquid/Constants.swift | 1 + .../swift/Sources/BreezSDKLiquid/Task/LnurlPayVerify.swift | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/bindings/langs/android/lib/src/main/kotlin/breez_sdk_liquid_notification/Constants.kt b/lib/bindings/langs/android/lib/src/main/kotlin/breez_sdk_liquid_notification/Constants.kt index b17fd57..9579b80 100644 --- a/lib/bindings/langs/android/lib/src/main/kotlin/breez_sdk_liquid_notification/Constants.kt +++ b/lib/bindings/langs/android/lib/src/main/kotlin/breez_sdk_liquid_notification/Constants.kt @@ -5,6 +5,7 @@ object Constants { const val SHUTDOWN_DELAY_MS = 60 * 1000L // Cache Control + const val CACHE_CONTROL_MAX_AGE_THREE_SEC = 3 const val CACHE_CONTROL_MAX_AGE_DAY = 60 * 60 * 24 const val CACHE_CONTROL_MAX_AGE_WEEK = 60 * 60 * 24 * 7 diff --git a/lib/bindings/langs/android/lib/src/main/kotlin/breez_sdk_liquid_notification/job/LnurlPayVerify.kt b/lib/bindings/langs/android/lib/src/main/kotlin/breez_sdk_liquid_notification/job/LnurlPayVerify.kt index b9bf0e8..4da756f 100644 --- a/lib/bindings/langs/android/lib/src/main/kotlin/breez_sdk_liquid_notification/job/LnurlPayVerify.kt +++ b/lib/bindings/langs/android/lib/src/main/kotlin/breez_sdk_liquid_notification/job/LnurlPayVerify.kt @@ -5,6 +5,7 @@ import breez_sdk_liquid.BindingLiquidSdk import breez_sdk_liquid.GetPaymentRequest import breez_sdk_liquid.PaymentDetails import breez_sdk_liquid.PaymentState +import breez_sdk_liquid_notification.Constants.CACHE_CONTROL_MAX_AGE_THREE_SEC import breez_sdk_liquid_notification.Constants.CACHE_CONTROL_MAX_AGE_WEEK import breez_sdk_liquid_notification.Constants.DEFAULT_LNURL_PAY_VERIFY_NOTIFICATION_TITLE import breez_sdk_liquid_notification.Constants.DEFAULT_LNURL_PAY_VERIFY_NOTIFICATION_FAILURE_TITLE @@ -79,7 +80,7 @@ class LnurlPayVerifyJob( throw InvalidLnurlPayException("Not found") } - val maxAge = if (response.settled) CACHE_CONTROL_MAX_AGE_WEEK else 0 + val maxAge = if (response.settled) CACHE_CONTROL_MAX_AGE_WEEK else CACHE_CONTROL_MAX_AGE_THREE_SEC val success = replyServer(Json.encodeToString(response), request.replyURL, maxAge) notifyChannel( context, diff --git a/lib/bindings/langs/swift/Sources/BreezSDKLiquid/Constants.swift b/lib/bindings/langs/swift/Sources/BreezSDKLiquid/Constants.swift index 725ed10..6002b11 100644 --- a/lib/bindings/langs/swift/Sources/BreezSDKLiquid/Constants.swift +++ b/lib/bindings/langs/swift/Sources/BreezSDKLiquid/Constants.swift @@ -2,6 +2,7 @@ import Foundation struct Constants { // Cache Control + static let CACHE_CONTROL_MAX_AGE_THREE_SEC = 3 static let CACHE_CONTROL_MAX_AGE_DAY = 60 * 60 * 24 static let CACHE_CONTROL_MAX_AGE_WEEK = 60 * 60 * 24 * 7 diff --git a/lib/bindings/langs/swift/Sources/BreezSDKLiquid/Task/LnurlPayVerify.swift b/lib/bindings/langs/swift/Sources/BreezSDKLiquid/Task/LnurlPayVerify.swift index 13e513f..6f9973e 100644 --- a/lib/bindings/langs/swift/Sources/BreezSDKLiquid/Task/LnurlPayVerify.swift +++ b/lib/bindings/langs/swift/Sources/BreezSDKLiquid/Task/LnurlPayVerify.swift @@ -66,7 +66,7 @@ class LnurlPayVerifyTask : LnurlPayTask { if response == nil { throw InvalidLnurlPayError.notFound } - let maxAge = response!.settled ? Constants.CACHE_CONTROL_MAX_AGE_WEEK : 0 + let maxAge = response!.settled ? Constants.CACHE_CONTROL_MAX_AGE_WEEK : Constants.CACHE_CONTROL_MAX_AGE_THREE_SEC replyServer(encodable: response, replyURL: request!.reply_url, maxAge: maxAge) } catch let e { self.logger.log(tag: TAG, line: "failed to process lnurl verify: \(e)", level: "ERROR")