pub trait NetworkWallet<N: Network>:
Debug
+ Send
+ Sync {
// Required methods
fn default_signer_address(&self) -> Address;
fn has_signer_for(&self, address: &Address) -> bool;
fn signer_addresses(&self) -> impl Iterator<Item = Address>;
fn sign_transaction_from(
&self,
sender: Address,
tx: N::UnsignedTx,
) -> impl Send + Future<Output = Result<N::TxEnvelope>>;
// Provided methods
fn sign_transaction(
&self,
tx: N::UnsignedTx,
) -> impl Send + Future<Output = Result<N::TxEnvelope>> { ... }
fn sign_request(
&self,
request: N::TransactionRequest,
) -> impl Send + Future<Output = Result<N::TxEnvelope>> { ... }
}
Expand description
A wallet capable of signing any transaction for the given network.
Network crate authors should implement this trait on a type capable of
signing any transaction (regardless of signature type) on a given network.
Signer crate authors should instead implement TxSigner
to signify
signing capability for specific signature types.
Network wallets are expected to contain one or more signing credentials, keyed by signing address. The default signer address should be used when no specific signer address is specified.
Required Methods§
Sourcefn default_signer_address(&self) -> Address
fn default_signer_address(&self) -> Address
Get the default signer address. This address should be used
in NetworkWallet::sign_transaction_from
when no specific signer is
specified.
Sourcefn has_signer_for(&self, address: &Address) -> bool
fn has_signer_for(&self, address: &Address) -> bool
Return true if the signer contains a credential for the given address.
Sourcefn signer_addresses(&self) -> impl Iterator<Item = Address>
fn signer_addresses(&self) -> impl Iterator<Item = Address>
Return an iterator of all signer addresses.
Sourcefn sign_transaction_from(
&self,
sender: Address,
tx: N::UnsignedTx,
) -> impl Send + Future<Output = Result<N::TxEnvelope>>
fn sign_transaction_from( &self, sender: Address, tx: N::UnsignedTx, ) -> impl Send + Future<Output = Result<N::TxEnvelope>>
Asynchronously sign an unsigned transaction, with a specified credential.
Provided Methods§
Sourcefn sign_transaction(
&self,
tx: N::UnsignedTx,
) -> impl Send + Future<Output = Result<N::TxEnvelope>>
fn sign_transaction( &self, tx: N::UnsignedTx, ) -> impl Send + Future<Output = Result<N::TxEnvelope>>
Asynchronously sign an unsigned transaction.
Sourcefn sign_request(
&self,
request: N::TransactionRequest,
) -> impl Send + Future<Output = Result<N::TxEnvelope>>
fn sign_request( &self, request: N::TransactionRequest, ) -> impl Send + Future<Output = Result<N::TxEnvelope>>
Asynchronously sign a transaction request, using the sender specified
in the from
field.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.