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

56 lines
2.7 KiB
Kotlin

package cash.z.ecc.android.sdk.internal
import cash.z.ecc.android.sdk.internal.model.Checkpoint
import cash.z.ecc.android.sdk.internal.model.JniBlockMeta
import cash.z.ecc.android.sdk.model.Account
import cash.z.ecc.android.sdk.model.BlockHeight
import cash.z.ecc.android.sdk.model.UnifiedFullViewingKey
import cash.z.ecc.android.sdk.model.WalletBalance
import cash.z.ecc.android.sdk.model.Zatoshi
// This class is currently unused, although the goal is to swap out usages of BackendExt for this throughout the SDK.
@Suppress("TooManyFunctions")
internal class TypesafeBackendImpl(private val backend: Backend) : TypesafeBackend {
override suspend fun initAccountsTable(vararg keys: UnifiedFullViewingKey): Boolean =
backend.initAccountsTable(*keys)
override suspend fun initAccountsTable(
seed: ByteArray,
numberOfAccounts: Int
): List<UnifiedFullViewingKey> = backend.initAccountsTableTypesafe(seed, numberOfAccounts)
override suspend fun initBlocksTable(checkpoint: Checkpoint): Boolean = backend.initBlocksTable(checkpoint)
override suspend fun getCurrentAddress(account: Account): String = getCurrentAddress(account)
override suspend fun listTransparentReceivers(account: Account): List<String> =
backend.listTransparentReceivers(account)
override suspend fun getBalance(account: Account): Zatoshi = backend.getBalance(account)
override fun getBranchIdForHeight(height: BlockHeight): Long = backend.getBranchIdForHeight(height.value)
override suspend fun getVerifiedBalance(account: Account): Zatoshi = backend.getVerifiedBalance(account)
override suspend fun getNearestRewindHeight(height: BlockHeight): BlockHeight =
backend.getNearestRewindHeight(height)
override suspend fun rewindToHeight(height: BlockHeight): Boolean = backend.rewindToHeight(height)
override suspend fun getLatestBlockHeight(): BlockHeight? = backend.getLatestBlockHeight()
override suspend fun findBlockMetadata(height: BlockHeight): JniBlockMeta? = backend.findBlockMetadata(height)
override suspend fun rewindBlockMetadataToHeight(height: BlockHeight) = backend.rewindBlockMetadataToHeight(height)
/**
* @param limit The limit provides an efficient way how to restrict the portion of blocks, which will be validated.
* @return Null if successful. If an error occurs, the height will be the height where the error was detected.
*/
override suspend fun validateCombinedChainOrErrorBlockHeight(limit: Long?): BlockHeight? =
backend.validateCombinedChainOrErrorBlockHeight(limit)
override suspend fun getDownloadedUtxoBalance(address: String): WalletBalance =
backend.getDownloadedUtxoBalance(address)
}