# ────────────────────────────────────────────────────────────────── # Protobuf lite # ────────────────────────────────────────────────────────────────── -keep class * extends com.google.protobuf.GeneratedMessageLite { *; } # ────────────────────────────────────────────────────────────────── # Google Tink 1.13.0 # ────────────────────────────────────────────────────────────────── -keep class com.google.crypto.tink.proto.** { *; } -keep class com.google.crypto.tink.shaded.protobuf.** { *; } -keep class com.google.crypto.tink.** { *; } -dontwarn com.google.crypto.tink.** # ────────────────────────────────────────────────────────────────── # Gson — generic signature safety # ────────────────────────────────────────────────────────────────── -keepattributes Signature -keepattributes *Annotation* -keep,allowobfuscation,allowshrinking,allowoptimization class com.google.gson.reflect.TypeToken -keep,allowobfuscation,allowshrinking,allowoptimization class * extends com.google.gson.reflect.TypeToken # ────────────────────────────────────────────────────────────────── # Gson — ALL classes Gson instantiates via reflection # ────────────────────────────────────────────────────────────────── # Response bodies -keep class com.bitcointxoko.gudariwallet.api.WalletResponse { *; } -keep class com.bitcointxoko.gudariwallet.api.PaymentStatusResponse { *; } -keep class com.bitcointxoko.gudariwallet.api.PaymentDetails { *; } -keep class com.bitcointxoko.gudariwallet.api.PaymentDetailResponse { *; } -keep class com.bitcointxoko.gudariwallet.api.WithdrawCallbackResponse { *; } -keep class com.bitcointxoko.gudariwallet.api.FiatRateResponse { *; } -keep class com.bitcointxoko.gudariwallet.api.LnurlpLink { *; } # NWC models -keep class com.bitcointxoko.gudariwallet.api.NwcGetResponse { *; } -keep class com.bitcointxoko.gudariwallet.api.NwcKey { *; } -keep class com.bitcointxoko.gudariwallet.api.NwcBudget { *; } -keep class com.bitcointxoko.gudariwallet.api.NwcNewBudget { *; } -keep class com.bitcointxoko.gudariwallet.api.NwcRegistrationRequest { *; } # Request bodies -keep class com.bitcointxoko.gudariwallet.api.CreateInvoiceRequest { *; } -keep class com.bitcointxoko.gudariwallet.api.PayInvoiceRequest { *; } -keep class com.bitcointxoko.gudariwallet.api.DecodeInvoiceRequest { *; } -keep class com.bitcointxoko.gudariwallet.api.PayLnurlRequest { *; } # SuccessAction sealed class + TypeAdapter subclasses -keep class com.bitcointxoko.gudariwallet.api.SuccessAction { *; } -keep class com.bitcointxoko.gudariwallet.api.FlexibleStringAdapter -keep class com.bitcointxoko.gudariwallet.api.SuccessActionAdapter # Node alias API responses -keep class com.bitcointxoko.gudariwallet.api.MempoolNodeResponse { *; } -keep class com.bitcointxoko.gudariwallet.api.OneMlNodeResponse { *; } # ────────────────────────────────────────────────────────────────── # Retrofit 3.0.0 # ────────────────────────────────────────────────────────────────── -keep,allowobfuscation,allowshrinking interface retrofit2.Call -keep,allowobfuscation,allowshrinking class retrofit2.Response -keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation # ────────────────────────────────────────────────────────────────── # OkHttp 5.x / Okio # ────────────────────────────────────────────────────────────────── -dontwarn okhttp3.** -dontwarn okio.** -dontwarn javax.annotation.** -dontwarn org.codehaus.mojo.animal_sniffer.* # ────────────────────────────────────────────────────────────────── # secp256k1-kmp (JNI) # ────────────────────────────────────────────────────────────────── -keep class fr.acinq.secp256k1.** { *; } -keepclasseswithmembernames class * { native ; } # ────────────────────────────────────────────────────────────────── # ZXing 4.3.0 # ────────────────────────────────────────────────────────────────── -keep class com.google.zxing.** { *; } -dontwarn com.google.zxing.** # ────────────────────────────────────────────────────────────────── # Room 2.7.1 # ────────────────────────────────────────────────────────────────── -keep class * extends androidx.room.RoomDatabase -keep @androidx.room.Entity class * -dontwarn androidx.room.** # ────────────────────────────────────────────────────────────────── # WorkManager 2.9.1 # ────────────────────────────────────────────────────────────────── -keep class * extends androidx.work.Worker -keep class * extends androidx.work.CoroutineWorker -keep class * extends androidx.work.ListenableWorker { public (android.content.Context, androidx.work.WorkerParameters); } # ────────────────────────────────────────────────────────────────── # Kotlin Coroutines 1.11.0 # ────────────────────────────────────────────────────────────────── -keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {} -keepnames class kotlinx.coroutines.CoroutineExceptionHandler {} -dontwarn kotlinx.coroutines.** # ────────────────────────────────────────────────────────────────── # Lyricist 1.8.0 # ────────────────────────────────────────────────────────────────── -keep class com.bitcointxoko.gudariwallet.**Strings { *; } -keep class com.bitcointxoko.gudariwallet.**Translations { *; } # ────────────────────────────────────────────────────────────────── # Timber 5.0.1 # ────────────────────────────────────────────────────────────────── -dontwarn org.jetbrains.annotations.** # ────────────────────────────────────────────────────────────────── # Stack traces — upload mapping.txt to Play Console / Crashlytics # ────────────────────────────────────────────────────────────────── -keepattributes SourceFile,LineNumberTable -renamesourcefileattribute SourceFile