Trait NetworkWallet
pub trait NetworkWallet<N>:
Debug
+ Send
+ Syncwhere
N: Network,{
// 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 as Network>::UnsignedTx,
) -> impl Send + Future<Output = Result<<N as Network>::TxEnvelope, Error>>;
// Provided methods
fn sign_transaction(
&self,
tx: <N as Network>::UnsignedTx,
) -> impl Send + Future<Output = Result<<N as Network>::TxEnvelope, Error>> { ... }
fn sign_request(
&self,
request: <N as Network>::TransactionRequest,
) -> impl Send + Future<Output = Result<<N as Network>::TxEnvelope, Error>> { ... }
}
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§
fn 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.
fn 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.
fn signer_addresses(&self) -> impl Iterator<Item = Address>
fn signer_addresses(&self) -> impl Iterator<Item = Address>
Return an iterator of all signer addresses.
fn sign_transaction_from(
&self,
sender: Address,
tx: <N as Network>::UnsignedTx,
) -> impl Send + Future<Output = Result<<N as Network>::TxEnvelope, Error>>
fn sign_transaction_from( &self, sender: Address, tx: <N as Network>::UnsignedTx, ) -> impl Send + Future<Output = Result<<N as Network>::TxEnvelope, Error>>
Asynchronously sign an unsigned transaction, with a specified credential.
Provided Methods§
fn sign_transaction(
&self,
tx: <N as Network>::UnsignedTx,
) -> impl Send + Future<Output = Result<<N as Network>::TxEnvelope, Error>>
fn sign_transaction( &self, tx: <N as Network>::UnsignedTx, ) -> impl Send + Future<Output = Result<<N as Network>::TxEnvelope, Error>>
Asynchronously sign an unsigned transaction.
fn sign_request(
&self,
request: <N as Network>::TransactionRequest,
) -> impl Send + Future<Output = Result<<N as Network>::TxEnvelope, Error>>
fn sign_request( &self, request: <N as Network>::TransactionRequest, ) -> impl Send + Future<Output = Result<<N as Network>::TxEnvelope, Error>>
Asynchronously sign a transaction request, using the sender specified
in the from
field.