pub struct ZewifWallet { /* private fields */ }
Expand description
A complete Zcash wallet with multiple accounts and cryptographic key material.
ZewifWallet
represents an entire wallet consisting of multiple accounts, all operating
on the same Zcash network. It can optionally include seed material for generating keys.
This structure is the primary container for user wallet data but is not the top level
of the interchange format hierarchy (that’s Zewif
).
§Zcash Concept Relation
In Zcash wallet architecture:
- Network Context: Wallets operate within a specific Zcash network environment (mainnet, testnet, regtest)
- Multi-Account Organization: A single wallet can contain multiple accounts for different purposes or users
- HD Wallet Structure: When a seed is present, the wallet follows hierarchical deterministic (HD) principles for key derivation
§Data Preservation
During wallet migration, the following wallet data must be preserved:
- Network: The Zcash network context (mainnet, testnet, regtest)
- Seed Material: When available, the cryptographic material used for key generation
- Accounts: All accounts contained within the wallet, with their full structure
- Vendor-Specific Information: Custom metadata stored in attachments
§Examples
// Create a new wallet for the Zcash mainnet
let mut wallet = ZewifWallet::new(Network::Main);
// Add a new account to the wallet
let account = Account::new();
wallet.add_account(account);
// Access the wallet's network
assert_eq!(wallet.network(), Network::Main);
// If seed material were available, you could add it:
// wallet.set_seed_material(seed_material);
Implementations§
Source§impl ZewifWallet
impl ZewifWallet
pub fn new(network: Network) -> Self
pub fn network(&self) -> Network
pub fn seed_material(&self) -> Option<&SeedMaterial>
pub fn set_seed_material(&mut self, seed_material: SeedMaterial)
pub fn accounts(&self) -> &Vec<Account>
pub fn add_account(&mut self, account: Account)
Trait Implementations§
Source§impl Attachable for ZewifWallet
impl Attachable for ZewifWallet
Source§fn attachments(&self) -> &Attachments
fn attachments(&self) -> &Attachments
Returns a reference to the attachments container.
Source§fn attachments_mut(&mut self) -> &mut Attachments
fn attachments_mut(&mut self) -> &mut Attachments
Returns a mutable reference to the attachments container.
Source§fn add_attachment(
&mut self,
payload: impl EnvelopeEncodable,
vendor: &str,
conforms_to: Option<&str>,
)
fn add_attachment( &mut self, payload: impl EnvelopeEncodable, vendor: &str, conforms_to: Option<&str>, )
Adds a new attachment with the specified payload and metadata. Read more
Source§fn get_attachment(&self, digest: &Digest) -> Option<&Envelope>
fn get_attachment(&self, digest: &Digest) -> Option<&Envelope>
Retrieves an attachment by its digest. Read more
Source§fn remove_attachment(&mut self, digest: &Digest) -> Option<Envelope>
fn remove_attachment(&mut self, digest: &Digest) -> Option<Envelope>
Removes an attachment by its digest. Read more
Source§fn clear_attachments(&mut self)
fn clear_attachments(&mut self)
Removes all attachments from the object.
Source§fn has_attachments(&self) -> bool
fn has_attachments(&self) -> bool
Returns whether the object has any attachments. Read more
Source§impl Clone for ZewifWallet
impl Clone for ZewifWallet
Source§fn clone(&self) -> ZewifWallet
fn clone(&self) -> ZewifWallet
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for ZewifWallet
impl Debug for ZewifWallet
Source§impl From<ZewifWallet> for Envelope
impl From<ZewifWallet> for Envelope
Source§fn from(value: ZewifWallet) -> Self
fn from(value: ZewifWallet) -> Self
Converts to this type from the input type.
Source§impl Indexed for ZewifWallet
impl Indexed for ZewifWallet
Source§impl PartialEq for ZewifWallet
impl PartialEq for ZewifWallet
Source§impl TryFrom<Envelope> for ZewifWallet
impl TryFrom<Envelope> for ZewifWallet
impl StructuralPartialEq for ZewifWallet
Auto Trait Implementations§
impl Freeze for ZewifWallet
impl RefUnwindSafe for ZewifWallet
impl !Send for ZewifWallet
impl !Sync for ZewifWallet
impl Unpin for ZewifWallet
impl UnwindSafe for ZewifWallet
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> EnvelopeEncodable for T
impl<T> EnvelopeEncodable for T
Source§fn into_envelope(self) -> Envelope
fn into_envelope(self) -> Envelope
Converts the value into an envelope by using its Into<Envelope>
implementation.
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more