From f72c3ff54dd7c2f1dd8af553801c0b85de8954a3 Mon Sep 17 00:00:00 2001 From: Brandon McAnsh Date: Mon, 11 May 2026 09:30:20 -0400 Subject: [PATCH] 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 --- .../keys/src/main/kotlin/com/getcode/solana/keys/Mint.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libs/encryption/keys/src/main/kotlin/com/getcode/solana/keys/Mint.kt b/libs/encryption/keys/src/main/kotlin/com/getcode/solana/keys/Mint.kt index 95f689f2f..2c101e871 100644 --- a/libs/encryption/keys/src/main/kotlin/com/getcode/solana/keys/Mint.kt +++ b/libs/encryption/keys/src/main/kotlin/com/getcode/solana/keys/Mint.kt @@ -1,5 +1,7 @@ package com.getcode.solana.keys +import android.os.Parcel +import android.os.Parcelable import com.getcode.utils.serializer.MintAsStringSerializer import com.getcode.vendor.Base58 import kotlinx.serialization.Serializable @@ -9,6 +11,13 @@ class Mint(bytes: List): PublicKey(bytes) { constructor(base58: String) : this(Base58.decode(base58).toList()) companion object { + @JvmField + val CREATOR: Parcelable.Creator = + object : Parcelable.Creator { + override fun createFromParcel(parcel: Parcel) = Mint(parcel.readString().orEmpty()) + override fun newArray(size: Int) = arrayOfNulls(size) + } + val kin: Mint get() = Mint("kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6")