pub struct FyndClientBuilder { /* private fields */ }Expand description
Builder for FyndClient.
Call FyndClientBuilder::new with the Fynd base URL, configure optional settings, then
call build or build_quote_only.
build validates the RPC URL and fetches chain_id from the Ethereum node. It does not
connect to the Fynd API.
Implementations§
Source§impl FyndClientBuilder
impl FyndClientBuilder
Sourcepub fn new(base_url: impl Into<String>) -> Self
pub fn new(base_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.
Call with_rpc_url before build to enable
on-chain operations (swap_payload, execute_swap, approval). For quote-only use,
call build_quote_only directly — no RPC URL required.
Sourcepub fn with_rpc_url(self, rpc_url: impl Into<String>) -> Self
pub fn with_rpc_url(self, rpc_url: impl Into<String>) -> Self
Set the Ethereum JSON-RPC endpoint for nonce/fee queries and receipt polling.
Required before calling build. Not needed for
build_quote_only.
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 URL from with_rpc_url 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.
Requires with_rpc_url to have been called.
Validates the URLs and fetches the chain ID. Returns FyndError::Config if any URL is
invalid, rpc_url was not set, 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