File tree Expand file tree Collapse file tree
main/java/to/bitkit/repositories
test/java/to/bitkit/repositories Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ import to.bitkit.models.toLdkNetwork
2121import to.bitkit.services.CoreService
2222import to.bitkit.utils.AppError
2323import to.bitkit.utils.NetworkValidationHelper
24+ import to.bitkit.utils.encodeToUrl
2425import java.util.Locale
2526import javax.inject.Inject
2627import javax.inject.Singleton
@@ -102,7 +103,7 @@ class PublicPaykitRepo @Inject constructor(
102103 val onchain = sortedEndpoints.firstOrNull { it.methodId.isOnchain }
103104
104105 if (lightning != null && onchain != null ) {
105- return " bitcoin:${onchain.value} ?lightning=${lightning.value} "
106+ return " bitcoin:${onchain.value} ?lightning=${lightning.value.encodeToUrl() } "
106107 }
107108
108109 return sortedEndpoints.firstOrNull()?.paymentRequest.orEmpty()
Original file line number Diff line number Diff line change @@ -315,6 +315,18 @@ class PublicPaykitRepoTest : BaseUnitTest() {
315315 assertEquals(" bitcoin:bc1ptest?lightning=lnbc1test" , request)
316316 }
317317
318+ @Test
319+ fun `paymentRequest encodes bolt11 query parameter` () {
320+ val request = PublicPaykitRepo .paymentRequest(
321+ listOf (
322+ endpoint(MethodId .Bolt11 , " lnbc1test&label" ),
323+ endpoint(MethodId .P2tr , " bc1ptest" ),
324+ ),
325+ )
326+
327+ assertEquals(" bitcoin:bc1ptest?lightning=lnbc1test%26label" , request)
328+ }
329+
318330 @Test
319331 fun `paymentRequest prefers taproot among multiple onchain endpoints` () {
320332 val request = PublicPaykitRepo .paymentRequest(
You can’t perform that action at this time.
0 commit comments