Struct fuels_accounts::wallet::WalletUnlocked
source · pub struct WalletUnlocked { /* private fields */ }
Expand description
A WalletUnlocked
is equivalent to a Wallet
whose private key is known and stored
alongside in-memory. Knowing the private key allows a WalletUlocked
to sign operations, send
transactions, and more.
private_key
will be zeroed out on calling lock()
or drop
ping a WalletUnlocked
.
Implementations§
source§impl WalletUnlocked
impl WalletUnlocked
sourcepub fn lock(self) -> Wallet
pub fn lock(self) -> Wallet
Lock the wallet by securely zeroize
-ing and drop
ping the private key from memory.
pub fn set_provider(&mut self, provider: Provider)
sourcepub fn new_random(provider: Option<Provider>) -> Self
pub fn new_random(provider: Option<Provider>) -> Self
Creates a new wallet with a random private key.
sourcepub fn new_from_private_key(
private_key: SecretKey,
provider: Option<Provider>,
) -> Self
pub fn new_from_private_key( private_key: SecretKey, provider: Option<Provider>, ) -> Self
Creates a new wallet from the given private key.
sourcepub fn new_from_mnemonic_phrase(
phrase: &str,
provider: Option<Provider>,
) -> Result<Self>
pub fn new_from_mnemonic_phrase( phrase: &str, provider: Option<Provider>, ) -> Result<Self>
Creates a new wallet from a mnemonic phrase. The default derivation path is used.
sourcepub fn new_from_mnemonic_phrase_with_path(
phrase: &str,
provider: Option<Provider>,
path: &str,
) -> Result<Self>
pub fn new_from_mnemonic_phrase_with_path( phrase: &str, provider: Option<Provider>, path: &str, ) -> Result<Self>
Creates a new wallet from a mnemonic phrase. It takes a derivation path such as BIP32 or BIP44.
sourcepub fn new_from_keystore<P, R, S>(
dir: P,
rng: &mut R,
password: S,
provider: Option<Provider>,
) -> Result<(Self, String)>
pub fn new_from_keystore<P, R, S>( dir: P, rng: &mut R, password: S, provider: Option<Provider>, ) -> Result<(Self, String)>
Creates a new wallet and stores its encrypted version in the given path.
sourcepub fn encrypt<P, S>(&self, dir: P, password: S) -> Result<String>
pub fn encrypt<P, S>(&self, dir: P, password: S) -> Result<String>
Encrypts the wallet’s private key with the given password and saves it to the given path.
sourcepub fn load_keystore<P, S>(
keypath: P,
password: S,
provider: Option<Provider>,
) -> Result<Self>
pub fn load_keystore<P, S>( keypath: P, password: S, provider: Option<Provider>, ) -> Result<Self>
Recreates a wallet from an encrypted JSON wallet given the provided path and password.
pub fn address(&self) -> &Bech32Address
Methods from Deref<Target = Wallet>§
Trait Implementations§
source§impl Account for WalletUnlocked
impl Account for WalletUnlocked
source§fn get_asset_inputs_for_amount<'life0, 'async_trait>(
&'life0 self,
asset_id: AssetId,
amount: u64,
excluded_coins: Option<Vec<CoinTypeId>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Input>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_asset_inputs_for_amount<'life0, 'async_trait>(
&'life0 self,
asset_id: AssetId,
amount: u64,
excluded_coins: Option<Vec<CoinTypeId>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Input>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns a vector consisting of Input::Coin
s and Input::Message
s for the given
asset ID and amount. The witness_index
is the position of the witness (signature)
in the transaction’s list of witnesses. In the validation process, the node will
use the witness at this index to validate the coins returned by this method.
fn add_witnesses<Tb: TransactionBuilder>(&self, tb: &mut Tb) -> Result<()>
source§fn get_asset_outputs_for_amount(
&self,
to: &Bech32Address,
asset_id: AssetId,
amount: u64,
) -> Vec<Output>
fn get_asset_outputs_for_amount( &self, to: &Bech32Address, asset_id: AssetId, amount: u64, ) -> Vec<Output>
source§fn adjust_for_fee<'life0, 'life1, 'async_trait, Tb>(
&'life0 self,
tb: &'life1 mut Tb,
used_base_amount: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Tb: 'async_trait + TransactionBuilder + Sync,
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn adjust_for_fee<'life0, 'life1, 'async_trait, Tb>(
&'life0 self,
tb: &'life1 mut Tb,
used_base_amount: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Tb: 'async_trait + TransactionBuilder + Sync,
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
source§fn transfer<'life0, 'life1, 'async_trait>(
&'life0 self,
to: &'life1 Bech32Address,
amount: u64,
asset_id: AssetId,
tx_policies: TxPolicies,
) -> Pin<Box<dyn Future<Output = Result<(TxId, Vec<Receipt>)>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn transfer<'life0, 'life1, 'async_trait>(
&'life0 self,
to: &'life1 Bech32Address,
amount: u64,
asset_id: AssetId,
tx_policies: TxPolicies,
) -> Pin<Box<dyn Future<Output = Result<(TxId, Vec<Receipt>)>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Address
.
Fails if amount for asset ID is larger than address’s spendable coins.
Returns the transaction ID that was sent and the list of receipts.source§fn force_transfer_to_contract<'life0, 'life1, 'async_trait>(
&'life0 self,
to: &'life1 Bech32ContractId,
balance: u64,
asset_id: AssetId,
tx_policies: TxPolicies,
) -> Pin<Box<dyn Future<Output = Result<(String, Vec<Receipt>)>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn force_transfer_to_contract<'life0, 'life1, 'async_trait>(
&'life0 self,
to: &'life1 Bech32ContractId,
balance: u64,
asset_id: AssetId,
tx_policies: TxPolicies,
) -> Pin<Box<dyn Future<Output = Result<(String, Vec<Receipt>)>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
balance
of type asset_id
to
the contract at to
.
Fails if balance for asset_id
is larger than this account’s spendable balance.
Returns the corresponding transaction ID and the list of receipts. Read moresource§fn withdraw_to_base_layer<'life0, 'life1, 'async_trait>(
&'life0 self,
to: &'life1 Bech32Address,
amount: u64,
tx_policies: TxPolicies,
) -> Pin<Box<dyn Future<Output = Result<(TxId, Nonce, Vec<Receipt>)>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn withdraw_to_base_layer<'life0, 'life1, 'async_trait>(
&'life0 self,
to: &'life1 Bech32Address,
amount: u64,
tx_policies: TxPolicies,
) -> Pin<Box<dyn Future<Output = Result<(TxId, Nonce, Vec<Receipt>)>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
source§impl Clone for WalletUnlocked
impl Clone for WalletUnlocked
source§fn clone(&self) -> WalletUnlocked
fn clone(&self) -> WalletUnlocked
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WalletUnlocked
impl Debug for WalletUnlocked
source§impl Deref for WalletUnlocked
impl Deref for WalletUnlocked
source§impl Drop for WalletUnlocked
impl Drop for WalletUnlocked
source§impl Signer for WalletUnlocked
impl Signer for WalletUnlocked
source§impl ViewOnlyAccount for WalletUnlocked
impl ViewOnlyAccount for WalletUnlocked
fn address(&self) -> &Bech32Address
fn try_provider(&self) -> Result<&Provider>
fn get_transactions<'life0, 'async_trait>(
&'life0 self,
request: PaginationRequest<String>,
) -> Pin<Box<dyn Future<Output = Result<PaginatedResult<TransactionResponse, String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
source§fn get_coins<'life0, 'async_trait>(
&'life0 self,
asset_id: AssetId,
) -> Pin<Box<dyn Future<Output = Result<Vec<Coin>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_coins<'life0, 'async_trait>(
&'life0 self,
asset_id: AssetId,
) -> Pin<Box<dyn Future<Output = Result<Vec<Coin>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
asset_id
owned by the account.source§fn get_asset_balance<'life0, 'life1, 'async_trait>(
&'life0 self,
asset_id: &'life1 AssetId,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_asset_balance<'life0, 'life1, 'async_trait>(
&'life0 self,
asset_id: &'life1 AssetId,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
asset_id
for address address
. This is different
from getting coins because we are just returning a number (the sum of UTXOs amount) instead
of the UTXOs.source§fn get_messages<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Message>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_messages<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Message>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
source§fn get_balances<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, u64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_balances<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, u64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
source§fn get_spendable_resources<'life0, 'async_trait>(
&'life0 self,
asset_id: AssetId,
amount: u64,
excluded_coins: Option<Vec<CoinTypeId>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<CoinType>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_spendable_resources<'life0, 'async_trait>(
&'life0 self,
asset_id: AssetId,
amount: u64,
excluded_coins: Option<Vec<CoinTypeId>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<CoinType>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
asset_id
owned by the account
that add up at least to amount amount
. The returned coins (UTXOs) are actual coins that
can be spent. The number of UXTOs is optimized to prevent dust accumulation.Auto Trait Implementations§
impl Freeze for WalletUnlocked
impl !RefUnwindSafe for WalletUnlocked
impl Send for WalletUnlocked
impl Sync for WalletUnlocked
impl Unpin for WalletUnlocked
impl !UnwindSafe for WalletUnlocked
Blanket Implementations§
source§impl<T> AnyDebug for T
impl<T> AnyDebug for T
source§fn as_any_ref(&self) -> &(dyn Any + 'static)
fn as_any_ref(&self) -> &(dyn Any + 'static)
Any
.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
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§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.source§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.source§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.source§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.source§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.source§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.source§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.source§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.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moresource§impl<S> IteratorOverTable for S
impl<S> IteratorOverTable for S
source§fn iter_all<M>(
&self,
direction: Option<IterDirection>,
) -> BoxedIter<'_, Result<(<M as Mappable>::OwnedKey, <M as Mappable>::OwnedValue), Error>>where
M: Mappable,
Self: IterableTable<M>,
fn iter_all<M>(
&self,
direction: Option<IterDirection>,
) -> BoxedIter<'_, Result<(<M as Mappable>::OwnedKey, <M as Mappable>::OwnedValue), Error>>where
M: Mappable,
Self: IterableTable<M>,
source§fn iter_all_by_prefix<M, P>(
&self,
prefix: Option<P>,
) -> BoxedIter<'_, Result<(<M as Mappable>::OwnedKey, <M as Mappable>::OwnedValue), Error>>
fn iter_all_by_prefix<M, P>( &self, prefix: Option<P>, ) -> BoxedIter<'_, Result<(<M as Mappable>::OwnedKey, <M as Mappable>::OwnedValue), Error>>
source§fn iter_all_by_start<M>(
&self,
start: Option<&<M as Mappable>::Key>,
direction: Option<IterDirection>,
) -> BoxedIter<'_, Result<(<M as Mappable>::OwnedKey, <M as Mappable>::OwnedValue), Error>>where
M: Mappable,
Self: IterableTable<M>,
fn iter_all_by_start<M>(
&self,
start: Option<&<M as Mappable>::Key>,
direction: Option<IterDirection>,
) -> BoxedIter<'_, Result<(<M as Mappable>::OwnedKey, <M as Mappable>::OwnedValue), Error>>where
M: Mappable,
Self: IterableTable<M>,
source§fn iter_all_filtered<M, P>(
&self,
prefix: Option<P>,
start: Option<&<M as Mappable>::Key>,
direction: Option<IterDirection>,
) -> BoxedIter<'_, Result<(<M as Mappable>::OwnedKey, <M as Mappable>::OwnedValue), Error>>
fn iter_all_filtered<M, P>( &self, prefix: Option<P>, start: Option<&<M as Mappable>::Key>, direction: Option<IterDirection>, ) -> BoxedIter<'_, Result<(<M as Mappable>::OwnedKey, <M as Mappable>::OwnedValue), Error>>
source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§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 moresource§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 moresource§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
source§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
source§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.source§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.source§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.source§impl<T> StorageAsMut for T
impl<T> StorageAsMut for T
fn storage<Type>(&mut self) -> StorageMut<'_, Self, Type>where
Type: Mappable,
fn storage_as_mut<Type>(&mut self) -> StorageMut<'_, Self, Type>where
Type: Mappable,
source§impl<T> StorageAsRef for T
impl<T> StorageAsRef for T
fn storage<Type>(&self) -> StorageRef<'_, Self, Type>where
Type: Mappable,
fn storage_as_ref<Type>(&self) -> StorageRef<'_, Self, Type>where
Type: Mappable,
source§impl<T> Tap for T
impl<T> Tap for T
source§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 moresource§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 moresource§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 moresource§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 moresource§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 moresource§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 moresource§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.source§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.source§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.source§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.source§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.source§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.source§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.