rust: Remove duplicate FFI method

We already use -1 to indicate no block scanning limit on the Kotlin side of
the FFI; we can do the same across the FFI to the Rust side.
This commit is contained in:
Jack Grigg 2022-10-15 14:39:18 +13:00 committed by Carter Jernigan
parent 6a6cbf4048
commit 9ff3621980
2 changed files with 15 additions and 50 deletions

View File

@ -194,23 +194,13 @@ internal class RustBackend private constructor(
}
override suspend fun scanBlocks(limit: Int): Boolean {
return if (limit > 0) {
withContext(SdkDispatchers.DATABASE_IO) {
scanBlockBatch(
cacheDbFile.absolutePath,
dataDbFile.absolutePath,
limit,
networkId = network.id
)
}
} else {
withContext(SdkDispatchers.DATABASE_IO) {
scanBlocks(
cacheDbFile.absolutePath,
dataDbFile.absolutePath,
networkId = network.id
)
}
return withContext(SdkDispatchers.DATABASE_IO) {
scanBlocks(
cacheDbFile.absolutePath,
dataDbFile.absolutePath,
limit,
networkId = network.id
)
}
}
@ -473,13 +463,6 @@ internal class RustBackend private constructor(
@JvmStatic
private external fun scanBlocks(
dbCachePath: String,
dbDataPath: String,
networkId: Int
): Boolean
@JvmStatic
private external fun scanBlockBatch(
dbCachePath: String,
dbDataPath: String,
limit: Int,

View File

@ -949,6 +949,7 @@ pub unsafe extern "C" fn Java_cash_z_ecc_android_sdk_jni_RustBackend_scanBlocks(
_: JClass<'_>,
db_cache: JString<'_>,
db_data: JString<'_>,
limit: jint,
network_id: jint,
) -> jboolean {
let res = panic::catch_unwind(|| {
@ -956,10 +957,15 @@ pub unsafe extern "C" fn Java_cash_z_ecc_android_sdk_jni_RustBackend_scanBlocks(
let db_cache = block_db(&env, db_cache)?;
let db_data = wallet_db(&env, network, db_data)?;
let mut db_data = db_data.get_update_ops()?;
let limit = u32::try_from(limit).ok();
match scan_cached_blocks(&network, &db_cache, &mut db_data, None) {
match scan_cached_blocks(&network, &db_cache, &mut db_data, limit) {
Ok(()) => Ok(JNI_TRUE),
Err(e) => Err(format_err!("Rust error while scanning blocks: {}", e)),
Err(e) => Err(format_err!(
"Rust error while scanning blocks (limit {:?}): {}",
limit,
e
)),
}
});
unwrap_exc_or(&env, res, JNI_FALSE)
@ -1012,30 +1018,6 @@ pub unsafe extern "C" fn Java_cash_z_ecc_android_sdk_jni_RustBackend_putUtxo(
unwrap_exc_or(&env, res, JNI_FALSE)
}
// ADDED BY ANDROID
#[no_mangle]
pub unsafe extern "C" fn Java_cash_z_ecc_android_sdk_jni_RustBackend_scanBlockBatch(
env: JNIEnv<'_>,
_: JClass<'_>,
db_cache: JString<'_>,
db_data: JString<'_>,
limit: jint,
network_id: jint,
) -> jboolean {
let res = panic::catch_unwind(|| {
let network = parse_network(network_id as u32)?;
let db_cache = block_db(&env, db_cache)?;
let db_data = wallet_db(&env, network, db_data)?;
let mut db_data = db_data.get_update_ops()?;
match scan_cached_blocks(&network, &db_cache, &mut db_data, Some(limit as u32)) {
Ok(()) => Ok(JNI_TRUE),
Err(e) => Err(format_err!("Rust error while scanning block batch: {}", e)),
}
});
unwrap_exc_or(&env, res, JNI_FALSE)
}
#[no_mangle]
pub unsafe extern "C" fn Java_cash_z_ecc_android_sdk_tool_DerivationTool_deriveTransparentAccountPrivKeyFromSeed(
env: JNIEnv<'_>,