2019-05-23 21:37:17 -07:00
|
|
|
package cash.z.wallet.sdk.jni
|
|
|
|
|
|
|
|
import cash.z.wallet.sdk.data.twig
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Serves as the JNI boundary between the Kotlin and Rust layers. Functions in this class should not be called directly
|
|
|
|
* by code outside of the SDK. Instead, one of the higher-level components should be used such as Wallet.kt or
|
|
|
|
* CompactBlockProcessor.kt.
|
|
|
|
*/
|
|
|
|
class RustBackend : RustBackendWelding {
|
|
|
|
|
2019-08-30 10:05:02 -07:00
|
|
|
external override fun initDataDb(dbDataPath: String): Boolean
|
2019-05-23 21:37:17 -07:00
|
|
|
|
|
|
|
external override fun initAccountsTable(
|
2019-08-30 10:05:02 -07:00
|
|
|
dbDataPath: String,
|
2019-05-23 21:37:17 -07:00
|
|
|
seed: ByteArray,
|
|
|
|
accounts: Int): Array<String>
|
|
|
|
|
|
|
|
external override fun initBlocksTable(
|
2019-08-30 10:05:02 -07:00
|
|
|
dbDataPath: String,
|
2019-05-23 21:37:17 -07:00
|
|
|
height: Int,
|
|
|
|
hash: String,
|
|
|
|
time: Long,
|
|
|
|
saplingTree: String): Boolean
|
|
|
|
|
2019-08-30 10:05:02 -07:00
|
|
|
external override fun getAddress(dbDataPath: String, account: Int): String
|
2019-05-23 21:37:17 -07:00
|
|
|
|
2019-06-04 07:15:19 -07:00
|
|
|
external override fun isValidShieldedAddress(addr: String): Boolean
|
|
|
|
|
|
|
|
external override fun isValidTransparentAddress(addr: String): Boolean
|
|
|
|
|
2019-08-30 10:05:02 -07:00
|
|
|
external override fun getBalance(dbDataPath: String, account: Int): Long
|
2019-05-23 21:37:17 -07:00
|
|
|
|
2019-08-30 10:05:02 -07:00
|
|
|
external override fun getVerifiedBalance(dbDataPath: String, account: Int): Long
|
2019-05-23 21:37:17 -07:00
|
|
|
|
2019-08-30 10:05:02 -07:00
|
|
|
external override fun getReceivedMemoAsUtf8(dbDataPath: String, idNote: Long): String
|
2019-05-23 21:37:17 -07:00
|
|
|
|
2019-08-30 10:05:02 -07:00
|
|
|
external override fun getSentMemoAsUtf8(dbDataPath: String, idNote: Long): String
|
2019-05-23 21:37:17 -07:00
|
|
|
|
2019-08-30 10:05:02 -07:00
|
|
|
external override fun validateCombinedChain(dbCachePath: String, dbDataPath: String): Int
|
2019-05-23 21:37:17 -07:00
|
|
|
|
2019-08-30 10:05:02 -07:00
|
|
|
external override fun rewindToHeight(dbDataPath: String, height: Int): Boolean
|
2019-05-23 21:37:17 -07:00
|
|
|
|
2019-08-30 10:05:02 -07:00
|
|
|
external override fun scanBlocks(dbCachePath: String, dbDataPath: String): Boolean
|
2019-05-23 21:37:17 -07:00
|
|
|
|
2019-08-30 10:05:02 -07:00
|
|
|
external override fun createToAddress(
|
|
|
|
dbDataPath: String,
|
2019-05-23 21:37:17 -07:00
|
|
|
account: Int,
|
|
|
|
extsk: String,
|
|
|
|
to: String,
|
|
|
|
value: Long,
|
|
|
|
memo: String,
|
2019-08-30 10:05:02 -07:00
|
|
|
spendParamsPath: String,
|
|
|
|
outputParamsPath: String
|
2019-05-23 21:37:17 -07:00
|
|
|
): Long
|
|
|
|
|
|
|
|
external override fun initLogs()
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
init {
|
|
|
|
try {
|
|
|
|
System.loadLibrary("zcashwalletsdk")
|
|
|
|
} catch (e: Throwable) {
|
|
|
|
twig("Error while loading native library: ${e.message}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|