Skip to main content

SpendAttestation

Struct SpendAttestation 

Source
pub struct SpendAttestation<T> { /* private fields */ }
Expand description

A spend attestation ready to be executed on-chain.

Obtained from TridentClient::spend. Call send to submit the transaction; await .get_receipt() on the returned builder to block until inclusion.

Implementations§

Source§

impl<T> SpendAttestation<T>

Source

pub fn spend_spec_hash(&self) -> [u8; 32]

Returns the canonical spend spec hash that identifies this attestation.

Source§

impl SpendAttestation<Address>

Source

pub async fn send(self) -> Result<PendingTransactionBuilder<AnyNetwork>, Error>

Submits the attestation on-chain as a standalone tridentSpend transaction.

Use chain or into_call to batch the spend with other calls in a single 7702-delegated transaction instead.

Source

pub fn into_call(self) -> EvmCallContext

Consumes the attestation and returns the raw pieces needed to execute tridentSpend: the delivery-contract address, the prepared SolCall, and the live provider.

Use this when you want custom ordering against MulticallBuilder — e.g. pre-spend calls, interleaving, or calling aggregate3_calldata() yourself.

Source

pub fn chain<C: SolCall>(self, contract: Address, call: &C) -> SpendMulticall

Returns a SpendMulticall whose first entry is this attestation’s tridentSpend call and whose second entry is call against contract (zero value, run after the spend).

The returned wrapper carries this attestation’s provider so the caller can just .send().await without rethreading one.

Convenience for “spend + one follow-up” flows. For pre-spend calls or any other ordering, use into_call and compose a MulticallBuilder yourself.

Source

pub fn chain_value<C: SolCall>( self, contract: Address, call: &C, value: U256, ) -> SpendMulticall

Like chain but forwards value wei to contract on the follow-up call.

Trait Implementations§

Source§

impl<T: Debug> Debug for SpendAttestation<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more