pub struct NonceSender { /* private fields */ }Expand description
Shared nonce manager — all tx sends go through this to avoid nonce collisions.
Wraps a type-erased provider (DynProvider) so it’s a plain concrete type.
Callers should wrap this in Arc<Mutex<NonceSender>> and lock before each send.
§Auto-recovery
On nonce-related errors, the sender automatically syncs the nonce from chain and retries once before returning an error.
Implementations§
Source§impl NonceSender
impl NonceSender
Sourcepub async fn new(provider: DynProvider, signer_addr: Address) -> Result<Self>
pub async fn new(provider: DynProvider, signer_addr: Address) -> Result<Self>
Create a new NonceSender, fetching the current nonce from chain.
Sourcepub fn current_nonce(&self) -> u64
pub fn current_nonce(&self) -> u64
Current local nonce value.
Auto Trait Implementations§
impl Freeze for NonceSender
impl !RefUnwindSafe for NonceSender
impl Send for NonceSender
impl Sync for NonceSender
impl Unpin for NonceSender
impl UnsafeUnpin for NonceSender
impl !UnwindSafe for NonceSender
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> 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