Skip to content

Commit f72c3ff

Browse files
committed
fix(crypto): add Parcelable.Creator to Mint to prevent ClassCastException
Mint inherits from PublicKey but lacked its own CREATOR, causing PublicKey.CREATOR to be used during unparceling. This returned a PublicKey instance that failed to cast to Mint during state restoration. Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 22f3b5c commit f72c3ff

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

  • libs/encryption/keys/src/main/kotlin/com/getcode/solana/keys

libs/encryption/keys/src/main/kotlin/com/getcode/solana/keys/Mint.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.getcode.solana.keys
22

3+
import android.os.Parcel
4+
import android.os.Parcelable
35
import com.getcode.utils.serializer.MintAsStringSerializer
46
import com.getcode.vendor.Base58
57
import kotlinx.serialization.Serializable
@@ -9,6 +11,13 @@ class Mint(bytes: List<Byte>): PublicKey(bytes) {
911
constructor(base58: String) : this(Base58.decode(base58).toList())
1012

1113
companion object {
14+
@JvmField
15+
val CREATOR: Parcelable.Creator<Mint> =
16+
object : Parcelable.Creator<Mint> {
17+
override fun createFromParcel(parcel: Parcel) = Mint(parcel.readString().orEmpty())
18+
override fun newArray(size: Int) = arrayOfNulls<Mint?>(size)
19+
}
20+
1221
val kin: Mint
1322
get() = Mint("kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6")
1423

0 commit comments

Comments
 (0)