zcash-android-wallet-sdk/sdk-lib/src/main/java/cash/z/ecc/android/sdk/jni/Derivation.kt

38 lines
1008 B
Kotlin

package cash.z.ecc.android.sdk.jni
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
// Implemented by `DerivationTool`
interface Derivation {
suspend fun deriveUnifiedAddress(
viewingKey: String,
network: ZcashNetwork
): String
suspend fun deriveUnifiedAddress(
seed: ByteArray,
network: ZcashNetwork,
account: Account
): String
suspend fun deriveUnifiedSpendingKey(
seed: ByteArray,
network: ZcashNetwork,
account: Account
): UnifiedSpendingKey
suspend fun deriveUnifiedFullViewingKey(
usk: UnifiedSpendingKey,
network: ZcashNetwork
): UnifiedFullViewingKey
suspend fun deriveUnifiedFullViewingKeys(
seed: ByteArray,
network: ZcashNetwork,
numberOfAccounts: Int = 1
): Array<UnifiedFullViewingKey>
}