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:
parent
6a6cbf4048
commit
9ff3621980
|
@ -194,23 +194,13 @@ internal class RustBackend private constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun scanBlocks(limit: Int): Boolean {
|
override suspend fun scanBlocks(limit: Int): Boolean {
|
||||||
return if (limit > 0) {
|
return withContext(SdkDispatchers.DATABASE_IO) {
|
||||||
withContext(SdkDispatchers.DATABASE_IO) {
|
scanBlocks(
|
||||||
scanBlockBatch(
|
cacheDbFile.absolutePath,
|
||||||
cacheDbFile.absolutePath,
|
dataDbFile.absolutePath,
|
||||||
dataDbFile.absolutePath,
|
limit,
|
||||||
limit,
|
networkId = network.id
|
||||||
networkId = network.id
|
)
|
||||||
)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
withContext(SdkDispatchers.DATABASE_IO) {
|
|
||||||
scanBlocks(
|
|
||||||
cacheDbFile.absolutePath,
|
|
||||||
dataDbFile.absolutePath,
|
|
||||||
networkId = network.id
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -473,13 +463,6 @@ internal class RustBackend private constructor(
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
private external fun scanBlocks(
|
private external fun scanBlocks(
|
||||||
dbCachePath: String,
|
|
||||||
dbDataPath: String,
|
|
||||||
networkId: Int
|
|
||||||
): Boolean
|
|
||||||
|
|
||||||
@JvmStatic
|
|
||||||
private external fun scanBlockBatch(
|
|
||||||
dbCachePath: String,
|
dbCachePath: String,
|
||||||
dbDataPath: String,
|
dbDataPath: String,
|
||||||
limit: Int,
|
limit: Int,
|
||||||
|
|
|
@ -949,6 +949,7 @@ pub unsafe extern "C" fn Java_cash_z_ecc_android_sdk_jni_RustBackend_scanBlocks(
|
||||||
_: JClass<'_>,
|
_: JClass<'_>,
|
||||||
db_cache: JString<'_>,
|
db_cache: JString<'_>,
|
||||||
db_data: JString<'_>,
|
db_data: JString<'_>,
|
||||||
|
limit: jint,
|
||||||
network_id: jint,
|
network_id: jint,
|
||||||
) -> jboolean {
|
) -> jboolean {
|
||||||
let res = panic::catch_unwind(|| {
|
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_cache = block_db(&env, db_cache)?;
|
||||||
let db_data = wallet_db(&env, network, db_data)?;
|
let db_data = wallet_db(&env, network, db_data)?;
|
||||||
let mut db_data = db_data.get_update_ops()?;
|
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),
|
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)
|
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)
|
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]
|
#[no_mangle]
|
||||||
pub unsafe extern "C" fn Java_cash_z_ecc_android_sdk_tool_DerivationTool_deriveTransparentAccountPrivKeyFromSeed(
|
pub unsafe extern "C" fn Java_cash_z_ecc_android_sdk_tool_DerivationTool_deriveTransparentAccountPrivKeyFromSeed(
|
||||||
env: JNIEnv<'_>,
|
env: JNIEnv<'_>,
|
||||||
|
|
Loading…
Reference in New Issue