pub struct WalletFiller<W> { /* private fields */ }
Expand description
A layer that signs transactions locally.
The layer uses a NetworkWallet
to sign transactions sent using
Provider::send_transaction
locally before passing them to the node with
Provider::send_raw_transaction
.
§Example
let provider = ProviderBuilder::new()
.wallet(wallet)
.on_http(url);
provider.send_transaction(TransactionRequest::default()).await;
Implementations§
source§impl<W> WalletFiller<W>
impl<W> WalletFiller<W>
Trait Implementations§
source§impl<W> AsMut<W> for WalletFiller<W>
impl<W> AsMut<W> for WalletFiller<W>
source§impl<W> AsRef<W> for WalletFiller<W>
impl<W> AsRef<W> for WalletFiller<W>
source§impl<W: Clone> Clone for WalletFiller<W>
impl<W: Clone> Clone for WalletFiller<W>
source§fn clone(&self) -> WalletFiller<W>
fn clone(&self) -> WalletFiller<W>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<W: Debug> Debug for WalletFiller<W>
impl<W: Debug> Debug for WalletFiller<W>
source§impl<W, N> TxFiller<N> for WalletFiller<W>
impl<W, N> TxFiller<N> for WalletFiller<W>
source§type Fillable = ()
type Fillable = ()
The properties that this filler retrieves from the RPC. to fill in the
TransactionRequest.
source§fn status(&self, tx: &<N as Network>::TransactionRequest) -> FillerControlFlow
fn status(&self, tx: &<N as Network>::TransactionRequest) -> FillerControlFlow
Return a control-flow enum indicating whether the filler is ready to
fill in the transaction request, or if it is missing required
properties.
source§fn fill_sync(&self, tx: &mut SendableTx<N>)
fn fill_sync(&self, tx: &mut SendableTx<N>)
Performs any synchronous filling. This should be called before
TxFiller::prepare
and TxFiller::fill
to fill in any properties
that can be filled synchronously.source§async fn prepare<P, T>(
&self,
_provider: &P,
_tx: &<N as Network>::TransactionRequest,
) -> TransportResult<Self::Fillable>
async fn prepare<P, T>( &self, _provider: &P, _tx: &<N as Network>::TransactionRequest, ) -> TransportResult<Self::Fillable>
Prepares fillable properties, potentially by making an RPC request.
source§async fn fill(
&self,
_fillable: Self::Fillable,
tx: SendableTx<N>,
) -> TransportResult<SendableTx<N>>
async fn fill( &self, _fillable: Self::Fillable, tx: SendableTx<N>, ) -> TransportResult<SendableTx<N>>
Fills in the transaction request with the fillable properties.
source§fn join_with<T>(self, other: T) -> JoinFill<Self, T>where
T: TxFiller<N>,
fn join_with<T>(self, other: T) -> JoinFill<Self, T>where
T: TxFiller<N>,
Joins this filler with another filler to compose multiple fillers.
source§fn continue_filling(&self, tx: &SendableTx<N>) -> bool
fn continue_filling(&self, tx: &SendableTx<N>) -> bool
Returns
true
if the filler is should continue filling.source§fn ready(&self, tx: &N::TransactionRequest) -> bool
fn ready(&self, tx: &N::TransactionRequest) -> bool
Returns
true
if the filler is ready to fill in the transaction request.source§fn finished(&self, tx: &N::TransactionRequest) -> bool
fn finished(&self, tx: &N::TransactionRequest) -> bool
Returns
true
if the filler is finished filling in the transaction request.source§fn prepare_and_fill<P, T>(
&self,
provider: &P,
tx: SendableTx<N>,
) -> impl Send + Future<Output = TransportResult<SendableTx<N>>>
fn prepare_and_fill<P, T>( &self, provider: &P, tx: SendableTx<N>, ) -> impl Send + Future<Output = TransportResult<SendableTx<N>>>
Prepares and fills the transaction request with the fillable properties.
source§impl<W, N> WalletProvider<N> for WalletFiller<W>
impl<W, N> WalletProvider<N> for WalletFiller<W>
source§type Wallet = W
type Wallet = W
The underlying
NetworkWallet
type contained in this stack.source§fn wallet_mut(&mut self) -> &mut Self::Wallet
fn wallet_mut(&mut self) -> &mut Self::Wallet
Get a mutable reference to the underlying wallet.
source§fn default_signer_address(&self) -> Address
fn default_signer_address(&self) -> Address
Get the default signer address.
source§fn has_signer_for(&self, address: &Address) -> bool
fn has_signer_for(&self, address: &Address) -> bool
Check if the signer can sign for the given address.
source§fn signer_addresses(&self) -> impl Iterator<Item = Address>
fn signer_addresses(&self) -> impl Iterator<Item = Address>
Get an iterator of all signer addresses. Note that because the signer
always has at least one address, this iterator will always have at least
one element.
Auto Trait Implementations§
impl<W> Freeze for WalletFiller<W>where
W: Freeze,
impl<W> RefUnwindSafe for WalletFiller<W>where
W: RefUnwindSafe,
impl<W> Send for WalletFiller<W>where
W: Send,
impl<W> Sync for WalletFiller<W>where
W: Sync,
impl<W> Unpin for WalletFiller<W>where
W: Unpin,
impl<W> UnwindSafe for WalletFiller<W>where
W: UnwindSafe,
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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>
Converts
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>
Converts
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