breez_sdk_spark/persist/
path.rs

1use std::{path::PathBuf, str::FromStr};
2
3use bitcoin::hashes::{Hash, sha256};
4use spark_wallet::PublicKey;
5
6use crate::{Network, SdkError};
7
8pub fn default_storage_path(
9    data_dir: &str,
10    network: &Network,
11    identity_pub_key: &PublicKey,
12) -> Result<PathBuf, SdkError> {
13    let storage_dir = std::path::PathBuf::from_str(data_dir)?;
14    let path_suffix = sha256::Hash::hash(&identity_pub_key.serialize())
15        .to_string()
16        .chars()
17        .take(8)
18        .collect::<String>();
19
20    Ok(storage_dir
21        .join(network.to_string().to_lowercase())
22        .join(path_suffix))
23}