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 pk: PrivateKeySigner = "0x...".parse()?;
let provider = ProviderBuilder::new().wallet(pk).connect_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 duplicate 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>(
&self,
_provider: &P,
_tx: &<N as Network>::TransactionRequest,
) -> TransportResult<Self::Fillable>where
P: Provider<N>,
async fn prepare<P>(
&self,
_provider: &P,
_tx: &<N as Network>::TransactionRequest,
) -> TransportResult<Self::Fillable>where
P: Provider<N>,
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§async fn prepare_call(
&self,
tx: &mut N::TransactionRequest,
) -> TransportResult<()>
async fn prepare_call( &self, tx: &mut N::TransactionRequest, ) -> TransportResult<()>
Prepares transaction request with necessary fillers required for eth_call operations
asynchronously
Source§fn prepare_call_sync(
&self,
tx: &mut <N as Network>::TransactionRequest,
) -> TransportResult<()>
fn prepare_call_sync( &self, tx: &mut <N as Network>::TransactionRequest, ) -> TransportResult<()>
Prepares transaction request with necessary fillers required for eth_call operations
synchronously
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 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 fill_envelope(
&self,
fillable: Self::Fillable,
tx: SendableTx<N>,
) -> impl Send + Future<Output = Result<N::TxEnvelope, FillEnvelopeError<N::TransactionRequest>>>
fn fill_envelope( &self, fillable: Self::Fillable, tx: SendableTx<N>, ) -> impl Send + Future<Output = Result<N::TxEnvelope, FillEnvelopeError<N::TransactionRequest>>>
Fills in the transaction request and try to convert it to an envelope.
Source§fn prepare_and_fill<P>(
&self,
provider: &P,
tx: SendableTx<N>,
) -> impl Send + Future<Output = TransportResult<SendableTx<N>>>where
P: Provider<N>,
fn prepare_and_fill<P>(
&self,
provider: &P,
tx: SendableTx<N>,
) -> impl Send + Future<Output = TransportResult<SendableTx<N>>>where
P: Provider<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§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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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>
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 moreSource§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,
Pipes by value. This is generally the method you want to use. Read more
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,
Borrows
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,
Mutably borrows
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
Borrows
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
Mutably borrows
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
Borrows
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
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
Immutable access to the
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
Mutable access to the
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
Immutable access to the
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
Mutable access to the
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
Immutable access to the
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
Mutable access to the
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
Calls
.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
Calls
.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
Calls
.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
Calls
.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
Calls
.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
Calls
.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
Calls
.tap_deref() only in debug builds, and is erased in release
builds.