UNPKG

@funkit/connect

Version:

Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.

64 lines (63 loc) 3.29 kB
import type { FeeBreakdownV2 } from '@funkit/api-base'; import { RelayQuoteError } from '@funkit/api-base'; import type { RelayExecute, RelayQuote } from '@funkit/fun-relay'; import type { TFunction } from 'i18next'; import type { ReactNode } from 'react'; export type RelayQuoteMetadata = { relayQuote: RelayQuote['metadata']['relayQuote']; feeBreakdown?: FeeBreakdownV2; }; export declare function extractRelayFeeInfo(quoteV2: { [x: string]: unknown; } | undefined): FeeBreakdownV2; type RelayQuoteDetails = NonNullable<RelayExecute['details']>; /** Checks if input and output are the same token on the same chain. */ export declare function isRelayQuoteSameChainAndAsset(details: RelayQuoteDetails): boolean; /** Checks if the quote is a native token wrap (e.g., ETH → WETH). */ export declare function isRelayQuoteWrapOperation(details: RelayQuoteDetails): boolean; /** Checks if the quote has a 1:1 exchange rate (no price conversion). */ export declare function hasRelayQuoteUnitRate(details: RelayQuoteDetails): boolean; /** * Checks if Relay is acting as a passthrough (no solver, no fees). * True when the quote has a 1:1 rate AND is either a same-chain/same-asset * transfer or a native token wrap operation. */ export declare function isRelayPassthrough(details: RelayQuoteDetails): boolean; export declare enum RelayExpectedErrorCodes { AMOUNT_TOO_LOW = "AMOUNT_TOO_LOW", CHAIN_DISABLED = "CHAIN_DISABLED", EXTRA_TXS_NOT_SUPPORTED = "EXTRA_TXS_NOT_SUPPORTED", FORBIDDEN = "FORBIDDEN", INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS", INSUFFICIENT_LIQUIDITY = "INSUFFICIENT_LIQUIDITY", INVALID_ADDRESS = "INVALID_ADDRESS", INVALID_EXTRA_TXS = "INVALID_EXTRA_TXS", INVALID_GAS_LIMIT_FOR_DEPOSIT_SPECIFIED_TXS = "INVALID_GAS_LIMIT_FOR_DEPOSIT_SPECIFIED_TXS", INVALID_INPUT_CURRENCY = "INVALID_INPUT_CURRENCY", INVALID_OUTPUT_CURRENCY = "INVALID_OUTPUT_CURRENCY", INVALID_SLIPPAGE_TOLERANCE = "INVALID_SLIPPAGE_TOLERANCE", NO_INTERNAL_SWAP_ROUTES_FOUND = "NO_INTERNAL_SWAP_ROUTES_FOUND", NO_QUOTES = "NO_QUOTES", NO_SWAP_ROUTES_FOUND = "NO_SWAP_ROUTES_FOUND", ROUTE_TEMPORARILY_RESTRICTED = "ROUTE_TEMPORARILY_RESTRICTED", SANCTIONED_CURRENCY = "SANCTIONED_CURRENCY", SANCTIONED_WALLET_ADDRESS = "SANCTIONED_WALLET_ADDRESS", SWAP_IMPACT_TOO_HIGH = "SWAP_IMPACT_TOO_HIGH", UNAUTHORIZED = "UNAUTHORIZED", UNSUPPORTED_CHAIN = "UNSUPPORTED_CHAIN", UNSUPPORTED_CURRENCY = "UNSUPPORTED_CURRENCY", UNSUPPORTED_EXECUTION_TYPE = "UNSUPPORTED_EXECUTION_TYPE", UNSUPPORTED_ROUTE = "UNSUPPORTED_ROUTE", USER_RECIPIENT_MISMATCH = "USER_RECIPIENT_MISMATCH" } export declare enum RelayUnexpectedErrorCodes { DESTINATION_TX_FAILED = "DESTINATION_TX_FAILED", ERC20_ROUTER_ADDRESS_NOT_FOUND = "ERC20_ROUTER_ADDRESS_NOT_FOUND", UNKNOWN_ERROR = "UNKNOWN_ERROR", SWAP_QUOTE_FAILED = "SWAP_QUOTE_FAILED", PERMIT_FAILED = "PERMIT_FAILED" } export type RelayErrorCodes = RelayExpectedErrorCodes | RelayUnexpectedErrorCodes; export declare function getRelayErrorMessages(t: TFunction): Partial<Record<RelayErrorCodes, ReactNode>>; export declare function getRelayQuoteErrorDisplayMessage(error: RelayQuoteError, t: TFunction, fallback: ReactNode): ReactNode; export {};