# Keep all Plaid classes
-keep class com.plaid.** { *; }
-keep interface com.plaid.** { *; }
-keep enum com.plaid.** { *; }

# kotlinx-serialization-json specific. Add this if you have java.lang.NoClassDefFoundError kotlinx.serialization.json.JsonObjectSerializer
-keepclassmembers class kotlinx.serialization.json.** {
    *** Companion;
}
-keepclasseswithmembers class kotlinx.serialization.json.** {
    kotlinx.serialization.KSerializer serializer(...);
}

# Needed for crash reporting
-keepattributes LineNumberTable,SourceFile
-renamesourcefileattribute SourceFile

# Required for Kotlinx.serialization
-keepattributes *Annotation*, InnerClasses
-dontnote kotlinx.serialization.SerializationKt

# Required for Kotlin-reflect
-keep class kotlin.Metadata { *; }

-keep class com.google.protobuf.** { *; }

# Required for OkHttp
-dontwarn org.conscrypt.**
-dontwarn org.bouncycastle.**
-dontwarn org.openjsse.**

# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken





