pub struct FyndClientBuilder { /* private fields */ }Expand description
Builder for FyndClient.
Call FyndClientBuilder::new with the Fynd RPC URL and an Ethereum JSON-RPC URL, configure
optional settings, then call build to connect and return a ready client.
build performs two network calls: one to validate the RPC URL (fetching chain_id) and one
to construct the HTTP provider. It does not connect to the Fynd API.
Implementations§
Source§impl FyndClientBuilder
impl FyndClientBuilder
Sourcepub fn new(base_url: impl Into<String>, rpc_url: impl Into<String>) -> Self
pub fn new(base_url: impl Into<String>, rpc_url: impl Into<String>) -> Self
Create a new builder.
base_url: Base URL of the Fynd RPC server (e.g."https://rpc.fynd.exchange"). Must usehttporhttpsscheme.rpc_url: Ethereum JSON-RPC endpoint for nonce/fee queries and receipt polling.
Sourcepub fn with_timeout(self, timeout: Duration) -> Self
pub fn with_timeout(self, timeout: Duration) -> Self
Set the HTTP request timeout for Fynd API calls (default: 30 s).
Sourcepub fn with_retry(self, retry: RetryConfig) -> Self
pub fn with_retry(self, retry: RetryConfig) -> Self
Override the retry configuration (default: 3 attempts, 100 ms / 2 s back-off).
Sourcepub fn with_submit_url(self, url: impl Into<String>) -> Self
pub fn with_submit_url(self, url: impl Into<String>) -> Self
Use a separate RPC URL for transaction submission and receipt polling.
If not set, the rpc_url passed to new is used for both.
Sourcepub fn with_sender(self, sender: Address) -> Self
pub fn with_sender(self, sender: Address) -> Self
Set the default sender address used when SigningHints::sender is None.
Sourcepub fn build_quote_only(self) -> Result<FyndClient, FyndError>
pub fn build_quote_only(self) -> Result<FyndClient, FyndError>
Build a FyndClient without connecting to an Ethereum RPC node.
Suitable for FyndClient::quote and FyndClient::health calls only.
FyndClient::swap_payload and FyndClient::execute_swap require a live RPC URL and
will fail if called on a client built this way.
Returns FyndError::Config if base_url is invalid.
Sourcepub async fn build(self) -> Result<FyndClient, FyndError>
pub async fn build(self) -> Result<FyndClient, FyndError>
Connect to the Ethereum RPC node and build the FyndClient.
Validates the URLs and fetches the chain ID. Returns FyndError::Config if any URL is
invalid or the chain ID cannot be fetched.
Auto Trait Implementations§
impl Freeze for FyndClientBuilder
impl RefUnwindSafe for FyndClientBuilder
impl Send for FyndClientBuilder
impl Sync for FyndClientBuilder
impl Unpin for FyndClientBuilder
impl UnsafeUnpin for FyndClientBuilder
impl UnwindSafe for FyndClientBuilder
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 more