op_alloy_network

Trait NetworkWallet

pub trait NetworkWallet<N>:
    Debug
    + Send
    + Sync
where 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

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

Return true if the signer contains a credential for the given 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>>

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>>

Asynchronously sign an unsigned transaction.

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.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl<'a, N, T> NetworkWallet<N> for &'a T
where N: Network, T: 'a + NetworkWallet<N> + ?Sized, &'a T: Debug + Send + Sync,

§

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>>

§

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>>

§

impl<'a, N, T> NetworkWallet<N> for &'a mut T
where N: Network, T: 'a + NetworkWallet<N> + ?Sized, &'a mut T: Debug + Send + Sync,

§

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>>

§

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>>

§

impl<N, T> NetworkWallet<N> for Box<T>
where N: Network, T: NetworkWallet<N> + ?Sized, Box<T>: Debug + Send + Sync,

§

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>>

§

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>>

§

impl<N, T> NetworkWallet<N> for Rc<T>
where N: Network, T: NetworkWallet<N> + ?Sized, Rc<T>: Debug + Send + Sync,

§

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>>

§

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>>

§

impl<N, T> NetworkWallet<N> for Arc<T>
where N: Network, T: NetworkWallet<N> + ?Sized, Arc<T>: Debug + Send + Sync,

§

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>>

§

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>>

Implementors§

§

impl<N> NetworkWallet<N> for EthereumWallet
where N: Network<UnsignedTx = TypedTransaction, TxEnvelope = TxEnvelope>,