pub struct Wallet {
pub wallet_type: WalletType,
pub network_id: NetworkId,
pub addresses: Addresses,
pub fetcher: Option<Box<dyn Fetcher>>,
pub submitter: Option<Box<dyn Submitter>>,
pub account: Option<Account>,
}Expand description
Represents a Cardano wallet.
A wallet manages addresses and cryptographic keys needed for transaction signing and verification. It supports different wallet types, including mnemonic-based, root key-based, and CLI-based wallets.
Fields§
§wallet_type: WalletType§network_id: NetworkId§addresses: Addresses§fetcher: Option<Box<dyn Fetcher>>§submitter: Option<Box<dyn Submitter>>§account: Option<Account>Implementations§
Source§impl Wallet
impl Wallet
Sourcepub fn new(wallet_type: WalletType) -> Result<Self, WError>
pub fn new(wallet_type: WalletType) -> Result<Self, WError>
Sourcepub fn new_mnemonic(mnemonic_phrase: &str) -> Result<Self, WError>
pub fn new_mnemonic(mnemonic_phrase: &str) -> Result<Self, WError>
Sourcepub fn new_root_key(root_key: &str) -> Result<Self, WError>
pub fn new_root_key(root_key: &str) -> Result<Self, WError>
Sourcepub fn with_network_id(self, network_id: NetworkId) -> Self
pub fn with_network_id(self, network_id: NetworkId) -> Self
Sourcepub fn with_fetcher<F: Fetcher + 'static>(self, fetcher: F) -> Self
pub fn with_fetcher<F: Fetcher + 'static>(self, fetcher: F) -> Self
Sourcepub fn with_submitter<S: Submitter + 'static>(self, submitter: S) -> Self
pub fn with_submitter<S: Submitter + 'static>(self, submitter: S) -> Self
Sourcepub fn payment_account(
&mut self,
account_index: u32,
key_index: u32,
) -> Result<&mut Self, WError>
pub fn payment_account( &mut self, account_index: u32, key_index: u32, ) -> Result<&mut Self, WError>
Sourcepub fn stake_account(
&mut self,
account_index: u32,
key_index: u32,
) -> Result<&mut Self, WError>
pub fn stake_account( &mut self, account_index: u32, key_index: u32, ) -> Result<&mut Self, WError>
Sourcepub fn drep_account(
&mut self,
account_index: u32,
key_index: u32,
) -> Result<&mut Self, WError>
pub fn drep_account( &mut self, account_index: u32, key_index: u32, ) -> Result<&mut Self, WError>
Sourcepub fn init_addresses(&mut self) -> &mut Self
pub fn init_addresses(&mut self) -> &mut Self
Initializes or re-initializes wallet addresses based on the wallet type and current network ID.
This method generates base and enterprise addresses for mnemonic and root key wallets. It’s automatically called when constructing a wallet or when changing wallet parameters that affect addresses.
§Returns
A mutable reference to self for method chaining.
§Panics
May panic if there are issues creating a mnemonic or decoding a root key. Consider using a version that returns Result instead if you need to handle these errors.
pub fn sign_tx(&self, tx_hex: &str) -> Result<String, WError>
pub fn get_account(wallet_type: &WalletType) -> Result<Account, WError>
Sourcepub fn get_change_address(
&self,
address_type: AddressType,
) -> Result<String, WError>
pub fn get_change_address( &self, address_type: AddressType, ) -> Result<String, WError>
Sourcepub async fn get_utxos(
&self,
address_type: Option<AddressType>,
asset: Option<&str>,
) -> Result<Vec<UTxO>, WError>
pub async fn get_utxos( &self, address_type: Option<AddressType>, asset: Option<&str>, ) -> Result<Vec<UTxO>, WError>
Fetches unspent transaction outputs (UTxOs) for a wallet address.
§Arguments
address_type- Optional address type (Payment or Enterprise). Defaults to Payment if not specified.asset- Optional asset ID to filter UTxOs. If specified, only UTxOs containing the asset will be returned.
§Returns
A Result containing either a vector of UTxOs or an error
§Errors
Returns an error if no fetcher is configured or if there’s an issue getting the address or fetching UTxOs.
Sourcepub async fn get_collateral(
&self,
address_type: Option<AddressType>,
) -> Result<Vec<UTxO>, WError>
pub async fn get_collateral( &self, address_type: Option<AddressType>, ) -> Result<Vec<UTxO>, WError>
Fetches suitable collateral UTXOs from the wallet.
Collateral UTXOs must:
- Contain only lovelace (no other assets)
- Have at least 5,000,000 lovelace (5 ADA)
This method returns the smallest suitable UTxO to minimize locked collateral.
§Arguments
address_type- Optional address type to fetch UTXOs from. Defaults to Payment.
§Returns
A Result containing either a vector with the smallest suitable collateral UTxO, or an empty vector if no suitable UTxO is found, or an error.
Sourcepub async fn submit_tx(&self, tx_hex: &str) -> Result<String, WError>
pub async fn submit_tx(&self, tx_hex: &str) -> Result<String, WError>
Submits a transaction to the Cardano blockchain.
This method uses the configured submitter to send the transaction to the network.
A submitter must be attached to the wallet using with_submitter before calling this method.
§Arguments
tx_hex- The transaction in hexadecimal format to submit
§Returns
A Result containing either the transaction hash (if successful) or an error
§Errors
Returns an error if:
- No submitter is configured for the wallet
- The submitter encounters an issue while submitting the transaction
- The transaction format is invalid
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Wallet
impl !RefUnwindSafe for Wallet
impl Send for Wallet
impl Sync for Wallet
impl Unpin for Wallet
impl !UnwindSafe for Wallet
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
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>
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>
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§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.