pub struct SpendRequestBuilder<SrcAddressType, DstAddressType> { /* private fields */ }Expand description
Configures a cross-chain spend request.
Pass the completed builder to TridentClient::spend
to submit the intent. The client fills in the source spender address, salt, and fee estimation
automatically.
Implementations§
Source§impl<SrcAddressType, DstAddressType> SpendRequestBuilder<SrcAddressType, DstAddressType>
impl<SrcAddressType, DstAddressType> SpendRequestBuilder<SrcAddressType, DstAddressType>
Sourcepub const fn src_domain(&self) -> Domain
pub const fn src_domain(&self) -> Domain
Returns the source domain.
Sourcepub const fn dst_domain(&self) -> Domain
pub const fn dst_domain(&self) -> Domain
Returns the destination domain.
Sourcepub const fn max_fee(&self) -> Option<U256>
pub const fn max_fee(&self) -> Option<U256>
Returns the explicit max fee, or None if it will be auto-estimated.
Sourcepub const fn expiry_height(&self) -> Option<u64>
pub const fn expiry_height(&self) -> Option<u64>
Returns the explicit expiry height, or None if it will be auto-resolved.
Source§impl<SrcAddressType, DstAddressType> SpendRequestBuilder<SrcAddressType, DstAddressType>where
SrcAddressType: ChainAddress,
DstAddressType: ChainAddress,
impl<SrcAddressType, DstAddressType> SpendRequestBuilder<SrcAddressType, DstAddressType>where
SrcAddressType: ChainAddress,
DstAddressType: ChainAddress,
Sourcepub fn new(
src_domain: Domain,
src_token: SrcAddressType,
dst_domain: Domain,
dst_token: DstAddressType,
dst_recipient: DstAddressType,
amount: U256,
) -> Self
pub fn new( src_domain: Domain, src_token: SrcAddressType, dst_domain: Domain, dst_token: DstAddressType, dst_recipient: DstAddressType, amount: U256, ) -> Self
Creates a new builder for a spend from src_domain/src_token to
dst_domain/dst_token, paying dst_recipient the given amount.
max_fee, expiry_height, and caller default to unset and can be configured
via the corresponding with_* methods; if left unset, the client auto-resolves
them when the request is submitted.
Sourcepub fn with_max_fee(self, max_fee: U256) -> Self
pub fn with_max_fee(self, max_fee: U256) -> Self
Sets an explicit max fee, skipping server-side fee estimation.
Sourcepub fn with_expiry_height(self, expiry_height: u64) -> Self
pub fn with_expiry_height(self, expiry_height: u64) -> Self
Sets an explicit expiry block height for the spend intent.
When omitted, the client auto-resolves the expiry by querying the
server’s spend_intent_min_expiry_height and adding the source
domain’s configured margin (set on the builder via
crate::TridentClientBuilder::with_expiry_margin). Domains without
an explicit margin fall back to 10% of the server’s minimum.
Sourcepub fn with_caller(self, caller: DstAddressType) -> Self
pub fn with_caller(self, caller: DstAddressType) -> Self
Sets the on-chain caller for the destination-side execution. Defaults to the zero address when not set.
Auto Trait Implementations§
impl<SrcAddressType, DstAddressType> Freeze for SpendRequestBuilder<SrcAddressType, DstAddressType>
impl<SrcAddressType, DstAddressType> RefUnwindSafe for SpendRequestBuilder<SrcAddressType, DstAddressType>where
SrcAddressType: RefUnwindSafe,
DstAddressType: RefUnwindSafe,
Option<DstAddressType>: RefUnwindSafe,
impl<SrcAddressType, DstAddressType> Send for SpendRequestBuilder<SrcAddressType, DstAddressType>
impl<SrcAddressType, DstAddressType> Sync for SpendRequestBuilder<SrcAddressType, DstAddressType>
impl<SrcAddressType, DstAddressType> Unpin for SpendRequestBuilder<SrcAddressType, DstAddressType>
impl<SrcAddressType, DstAddressType> UnsafeUnpin for SpendRequestBuilder<SrcAddressType, DstAddressType>where
SrcAddressType: UnsafeUnpin,
DstAddressType: UnsafeUnpin,
Option<DstAddressType>: UnsafeUnpin,
impl<SrcAddressType, DstAddressType> UnwindSafe for SpendRequestBuilder<SrcAddressType, DstAddressType>
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
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> ⓘ
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> ⓘ
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request