diff --git a/binding.h b/binding.h index 3354e62..bfae774 100644 --- a/binding.h +++ b/binding.h @@ -273,6 +273,8 @@ void truncate_data(void); void truncate_sync_data(void); +bool check_account(uint8_t coin, uint32_t account); + void delete_account(uint8_t coin, uint32_t account); struct CResult_____c_char make_payment_uri(uint8_t coin, diff --git a/src/api/account.rs b/src/api/account.rs index 38cb66e..6946c3e 100644 --- a/src/api/account.rs +++ b/src/api/account.rs @@ -25,6 +25,12 @@ use zcash_client_backend::keys::UnifiedFullViewingKey; use zcash_primitives::consensus::Parameters; use zcash_primitives::zip32::DiversifierIndex; +pub fn check_account(coin: u8, account: u32) -> bool { + let c = CoinConfig::get(coin); + let db = c.db().unwrap(); + db.get_account_info(account).is_ok() +} + /// Create a new account /// # Arguments /// diff --git a/src/api/dart_ffi.rs b/src/api/dart_ffi.rs index 4f93958..ebfb003 100644 --- a/src/api/dart_ffi.rs +++ b/src/api/dart_ffi.rs @@ -683,6 +683,11 @@ pub unsafe extern "C" fn truncate_sync_data() { log_error(res) } +#[no_mangle] +pub unsafe extern "C" fn check_account(coin: u8, account: u32) -> bool { + crate::api::account::check_account(coin, account) +} + #[no_mangle] pub unsafe extern "C" fn delete_account(coin: u8, account: u32) { let res = crate::api::account::delete_account(coin, account);