use crate::{client::secret::SecretManage, wallet::Wallet};
impl<S: SecretManage> Wallet<S> {
pub async fn verify_integrity(&self) -> crate::wallet::Result<()> {
log::debug!("[verify_integrity]");
let accounts = self.accounts.read().await;
for (account_index, account) in accounts.iter().enumerate() {
assert_eq!(accounts[account_index].details().await.index(), &(account_index as u32));
let account = account.details().await;
let public_addresses = account.public_addresses();
for (index, public_address) in public_addresses.iter().enumerate() {
assert_eq!(public_address.key_index, index as u32);
}
let internal_addresses = account.internal_addresses();
for (index, internal_address) in internal_addresses.iter().enumerate() {
assert_eq!(internal_address.key_index, index as u32);
}
}
Ok(())
}
}