zcash-android-wallet-sdk/sdk-lib/src/main/java/cash/z/ecc/android/sdk/internal/TypesafeDerivationToolImpl.kt

39 lines
1.4 KiB
Kotlin

package cash.z.ecc.android.sdk.internal
import cash.z.ecc.android.sdk.model.Account
import cash.z.ecc.android.sdk.model.UnifiedFullViewingKey
import cash.z.ecc.android.sdk.model.UnifiedSpendingKey
import cash.z.ecc.android.sdk.model.ZcashNetwork
import cash.z.ecc.android.sdk.tool.DerivationTool
internal class TypesafeDerivationToolImpl(private val derivation: Derivation) : DerivationTool {
override suspend fun deriveUnifiedFullViewingKeys(
seed: ByteArray,
network: ZcashNetwork,
numberOfAccounts: Int
): List<UnifiedFullViewingKey> = derivation.deriveUnifiedFullViewingKeysTypesafe(seed, network, numberOfAccounts)
override suspend fun deriveUnifiedFullViewingKey(
usk: UnifiedSpendingKey,
network: ZcashNetwork
): UnifiedFullViewingKey = derivation.deriveUnifiedFullViewingKey(usk, network)
override suspend fun deriveUnifiedSpendingKey(
seed: ByteArray,
network: ZcashNetwork,
account: Account
): UnifiedSpendingKey = derivation.deriveUnifiedSpendingKey(seed, network, account)
override suspend fun deriveUnifiedAddress(
seed: ByteArray,
network: ZcashNetwork,
account: Account
): String = derivation.deriveUnifiedAddress(seed, network, account)
override suspend fun deriveUnifiedAddress(
viewingKey: String,
network: ZcashNetwork,
): String = derivation.deriveUnifiedAddress(viewingKey, network)
}