zcash_client_backend: Add AccountSource::key_derivation
This commit is contained in:
parent
2da2b3e9fe
commit
cc2dfbf7bf
|
@ -7,6 +7,9 @@ and this library adheres to Rust's notion of
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
- `zcash_client_backend::data_api::AccountSource::key_derivation`
|
||||
|
||||
### Changed
|
||||
- `zcash_client_backend::data_api::WalletRead`:
|
||||
- The `create_account`, `import_account_hd`, and `import_account_ufvk`
|
||||
|
|
|
@ -385,6 +385,28 @@ pub enum AccountSource {
|
|||
},
|
||||
}
|
||||
|
||||
impl AccountSource {
|
||||
/// Returns the key derivation metadata for the account source, if any is available.
|
||||
pub fn key_derivation(&self) -> Option<&Zip32Derivation> {
|
||||
match self {
|
||||
AccountSource::Derived { derivation, .. } => Some(derivation),
|
||||
AccountSource::Imported {
|
||||
purpose: AccountPurpose::Spending { derivation },
|
||||
..
|
||||
} => derivation.as_ref(),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns the application-level key source identifier.
|
||||
pub fn key_source(&self) -> Option<&str> {
|
||||
match self {
|
||||
AccountSource::Derived { key_source, .. } => key_source.as_ref().map(|s| s.as_str()),
|
||||
AccountSource::Imported { key_source, .. } => key_source.as_ref().map(|s| s.as_str()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// A set of capabilities that a client account must provide.
|
||||
pub trait Account {
|
||||
type AccountId: Copy;
|
||||
|
|
Loading…
Reference in New Issue