47 lines
1.7 KiB
Kotlin
47 lines
1.7 KiB
Kotlin
package cash.z.ecc.android.sdk.demoapp.model
|
|
|
|
sealed class WalletAddress(val address: String) {
|
|
class Unified private constructor(address: String) : WalletAddress(address) {
|
|
companion object {
|
|
suspend fun new(address: String): WalletAddress.Unified {
|
|
// https://github.com/zcash/zcash-android-wallet-sdk/issues/342
|
|
// TODO [#342]: refactor SDK to enable direct calls for address verification
|
|
return WalletAddress.Unified(address)
|
|
}
|
|
}
|
|
}
|
|
|
|
class Sapling private constructor(address: String) : WalletAddress(address) {
|
|
companion object {
|
|
suspend fun new(address: String): Sapling {
|
|
// TODO [#342]: https://github.com/zcash/zcash-android-wallet-sdk/issues/342
|
|
// TODO [#342]: refactor SDK to enable direct calls for address verification
|
|
return Sapling(address)
|
|
}
|
|
}
|
|
}
|
|
|
|
class Transparent private constructor(address: String) : WalletAddress(address) {
|
|
companion object {
|
|
suspend fun new(address: String): Transparent {
|
|
// TODO [#342]: https://github.com/zcash/zcash-android-wallet-sdk/issues/342
|
|
// TODO [#342]: refactor SDK to enable direct calls for address verification
|
|
return Transparent(address)
|
|
}
|
|
}
|
|
}
|
|
|
|
override fun equals(other: Any?): Boolean {
|
|
if (this === other) return true
|
|
if (javaClass != other?.javaClass) return false
|
|
|
|
other as WalletAddress
|
|
|
|
if (address != other.address) return false
|
|
|
|
return true
|
|
}
|
|
|
|
override fun hashCode() = address.hashCode()
|
|
}
|