Integrate Breez SDK Spark as a second wallet backend alongside NWC. Users can create/restore a non-custodial Lightning wallet directly in the app with seamless onboarding (no forced backup on first use). - WalletProvider interface abstracts NWC and Spark backends - WalletModeRepository persists active wallet mode - SparkRepository wraps Breez SDK: connect, send, receive, transactions - Wallet mode selection UI with back navigation - Receive flow auto-detects payment via sync polling + SDK events - Payment received success screen with auto-navigation - Dynamic wallet provider resolution for zaps (no stale captures) - Proper SDK lifecycle: disconnect on app exit, cleanup on teardown - 60s connection timeout for Spark (vs 20s for NWC) - Wallet-connected indicator works for both providers - BIP39 mnemonic generation with bundled English wordlist - ProGuard rules for UniFFI/JNA bindings
67 lines
1.6 KiB
Prolog
67 lines
1.6 KiB
Prolog
# kotlinx.serialization
|
|
-keepattributes *Annotation*, InnerClasses
|
|
-dontnote kotlinx.serialization.AnnotationsKt
|
|
|
|
-keepclassmembers @kotlinx.serialization.Serializable class ** {
|
|
*** Companion;
|
|
}
|
|
-if @kotlinx.serialization.Serializable class **
|
|
-keepclassmembers class <1>$Companion {
|
|
kotlinx.serialization.KSerializer serializer(...);
|
|
}
|
|
-if @kotlinx.serialization.Serializable class ** {
|
|
static **$* *;
|
|
}
|
|
-keepclassmembers class <2>$<3> {
|
|
kotlinx.serialization.KSerializer serializer(...);
|
|
}
|
|
|
|
# secp256k1-kmp JNI
|
|
-keep class fr.acinq.secp256k1.** { *; }
|
|
|
|
# Bouncy Castle
|
|
-keep class org.bouncycastle.** { *; }
|
|
-dontwarn org.bouncycastle.**
|
|
|
|
# OkHttp
|
|
-dontwarn okhttp3.internal.platform.**
|
|
-dontwarn org.conscrypt.**
|
|
-dontwarn org.bouncycastle.**
|
|
-dontwarn org.openjsse.**
|
|
|
|
# Coil
|
|
-dontwarn coil3.**
|
|
|
|
# AndroidX Security (EncryptedSharedPreferences)
|
|
-keep class androidx.security.crypto.** { *; }
|
|
|
|
# ExoPlayer / Media3
|
|
-dontwarn androidx.media3.**
|
|
|
|
# ZXing
|
|
-keep class com.google.zxing.** { *; }
|
|
|
|
# kmp-tor
|
|
-keep class io.matthewnelson.kmp.tor.** { *; }
|
|
-dontwarn io.matthewnelson.kmp.tor.**
|
|
|
|
# ML Kit
|
|
-keep class com.google.mlkit.** { *; }
|
|
-dontwarn com.google.mlkit.**
|
|
|
|
# ObjectBox
|
|
-keep class io.objectbox.** { *; }
|
|
-dontwarn io.objectbox.**
|
|
-keep class com.wisp.app.db.** { *; }
|
|
|
|
# Breez SDK Spark (UniFFI bindings)
|
|
-keep class breez_sdk_spark.** { *; }
|
|
-dontwarn breez_sdk_spark.**
|
|
# JNA (used by Breez SDK UniFFI)
|
|
-keep class com.sun.jna.** { *; }
|
|
-dontwarn com.sun.jna.**
|
|
|
|
# java.lang.management (not available on Android)
|
|
-dontwarn java.lang.management.ManagementFactory
|
|
-dontwarn java.lang.management.RuntimeMXBean
|