@swapkit/helpers 4.5.4 → 4.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,12 +3,12 @@
3
3
  "sources": ["../src/api/midgard/endpoints.ts", "../src/api/swapkitApi/endpoints.ts", "../src/api/swapkitApi/types.ts", "../src/api/thornode/endpoints.ts", "../src/api/index.ts"],
4
4
  "sourcesContent": [
5
5
  "import { AssetValue, RequestClient, SwapKitNumber } from \"@swapkit/helpers\";\nimport { Chain, getChainConfig, type TCLikeChain } from \"@swapkit/types\";\nimport type {\n Action,\n ActionQuery,\n Balance,\n Constants,\n DepthHistory,\n EarningsHistory,\n HealthInfo,\n HistoryQuery,\n MemberDetailsMayachain,\n MemberDetailsThorchain,\n MimirVote,\n NetworkInfo,\n Node,\n PagedResponse,\n Pool,\n PoolStats,\n SaverDetails,\n SaversHistory,\n Stats,\n SwapHistory,\n THORNameDetails,\n TVLHistory,\n} from \"./types\";\n\nfunction getMidgardBaseUrl(isThorchain = true) {\n return isThorchain ? \"https://midgard.ninerealms.com\" : \"https://midgard.mayachain.info\";\n}\n\nfunction getNameServiceBaseUrl(isThorchain = true) {\n const baseUrl = getMidgardBaseUrl(isThorchain);\n return isThorchain ? `${baseUrl}/v2/thorname` : `${baseUrl}/v2/mayaname`;\n}\n\nfunction getPools(baseUrl: string) {\n return function getPools(status?: string): Promise<Pool[]> {\n const params = status ? `?status=${status}` : \"\";\n return RequestClient.get<Pool[]>(`${baseUrl}/v2/pools${params}`);\n };\n}\n\nfunction getPool(baseUrl: string) {\n return function getPool(asset: string): Promise<Pool> {\n return RequestClient.get<Pool>(`${baseUrl}/v2/pool/${asset}`);\n };\n}\n\nfunction getPoolStats(baseUrl: string) {\n return function getPoolStats(asset: string, period?: string): Promise<PoolStats> {\n const params = period ? `?period=${period}` : \"\";\n return RequestClient.get<PoolStats>(`${baseUrl}/v2/pool/${asset}/stats${params}`);\n };\n}\n\nfunction getPoolDepthHistory(baseUrl: string) {\n return function getPoolDepthHistory(asset: string, query?: HistoryQuery): Promise<DepthHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n return RequestClient.get<DepthHistory>(`${baseUrl}/v2/history/depths/${asset}${queryString}`);\n };\n}\n\nfunction getNetworkInfo(baseUrl: string) {\n return function getNetworkInfo(): Promise<NetworkInfo> {\n return RequestClient.get<NetworkInfo>(`${baseUrl}/v2/network`);\n };\n}\n\nfunction getHealth(baseUrl: string) {\n return function getHealth(): Promise<HealthInfo> {\n return RequestClient.get<HealthInfo>(`${baseUrl}/v2/health`);\n };\n}\n\nfunction getNodes(baseUrl: string) {\n return function getNodes(): Promise<Node[]> {\n return RequestClient.get<Node[]>(`${baseUrl}/v2/nodes`);\n };\n}\n\nfunction getNode(baseUrl: string) {\n return function getNode(address: string): Promise<Node> {\n return RequestClient.get<Node>(`${baseUrl}/v2/node/${address}`);\n };\n}\n\nfunction getMimirVotes(baseUrl: string) {\n return function getMimirVotes(): Promise<MimirVote[]> {\n return RequestClient.get<MimirVote[]>(`${baseUrl}/v2/mimir/votes`);\n };\n}\n\nfunction getMimir(baseUrl: string) {\n return function getMimir(): Promise<Record<string, string>> {\n return RequestClient.get<Record<string, string>>(`${baseUrl}/v2/mimir`);\n };\n}\n\nfunction getConstants(baseUrl: string) {\n return function getConstants(): Promise<Constants> {\n return RequestClient.get<Constants>(`${baseUrl}/v2/constants`);\n };\n}\n\nfunction getStats(baseUrl: string) {\n return function getStats(): Promise<Stats> {\n return RequestClient.get<Stats>(`${baseUrl}/v2/stats`);\n };\n}\n\nfunction getEarningsHistory(baseUrl: string) {\n return function getEarningsHistory(query?: HistoryQuery): Promise<EarningsHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n return RequestClient.get<EarningsHistory>(`${baseUrl}/v2/history/earnings${queryString}`);\n };\n}\n\nfunction getSwapHistory(baseUrl: string) {\n return function getSwapHistory(pool?: string, query?: HistoryQuery): Promise<SwapHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n const poolPath = pool ? `/swaps/${pool}` : \"/swaps\";\n return RequestClient.get<SwapHistory>(`${baseUrl}/v2/history${poolPath}${queryString}`);\n };\n}\n\nfunction getTVLHistory(baseUrl: string) {\n return function getTVLHistory(query?: HistoryQuery): Promise<TVLHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n return RequestClient.get<TVLHistory>(`${baseUrl}/v2/history/tvl${queryString}`);\n };\n}\n\nfunction buildActionParams(query?: ActionQuery): string {\n if (!query) return \"\";\n const params = new URLSearchParams();\n const appendParam = (key: keyof ActionQuery, value: any) => {\n if (value !== undefined) {\n params.append(key, typeof value === \"number\" ? value.toString() : value);\n }\n };\n appendParam(\"address\", query.address);\n appendParam(\"txid\", query.txid);\n appendParam(\"asset\", query.asset);\n appendParam(\"type\", query.type);\n appendParam(\"affiliate\", query.affiliate);\n appendParam(\"limit\", query.limit);\n appendParam(\"offset\", query.offset);\n return params.toString() ? `?${params.toString()}` : \"\";\n}\n\nfunction getActions(baseUrl: string) {\n return function getActions(query?: ActionQuery): Promise<PagedResponse<Action>> {\n const queryString = buildActionParams(query);\n return RequestClient.get<PagedResponse<Action>>(`${baseUrl}/v2/actions${queryString}`);\n };\n}\n\nfunction getLiquidityPositionRaw<Chain extends TCLikeChain>(baseUrl: string) {\n return function getLiquidityPosition(\n address: string,\n ): Promise<Chain extends typeof Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain> {\n return RequestClient.get<Chain extends typeof Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain>(\n `${baseUrl}/v2/member/${address}`,\n );\n };\n}\n\nfunction getMembers(baseUrl: string) {\n return function getMembers(pool?: string): Promise<string[]> {\n const poolPath = pool ? `/${pool}` : \"\";\n return RequestClient.get<string[]>(`${baseUrl}/v2/members${poolPath}`);\n };\n}\n\nfunction getSaverDetails(baseUrl: string) {\n return function getSaverDetails(address: string, pool?: string): Promise<SaverDetails[]> {\n const poolPath = pool ? `&asset=${pool}` : \"\";\n return RequestClient.get<SaverDetails[]>(\n `${baseUrl}/v2/saver/${address}${poolPath ? `?${poolPath.substring(1)}` : \"\"}`,\n );\n };\n}\n\nfunction getSavers(baseUrl: string) {\n return function getSavers(pool: string): Promise<string[]> {\n return RequestClient.get<string[]>(`${baseUrl}/v2/savers/${pool}`);\n };\n}\n\nfunction getSaversHistory(baseUrl: string) {\n return function getSaversHistory(pool?: string, query?: HistoryQuery): Promise<SaversHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n const poolPath = pool ? `/savers/${pool}` : \"/savers\";\n return RequestClient.get<SaversHistory>(`${baseUrl}/v2/history${poolPath}${queryString}`);\n };\n}\n\nfunction getBalance(baseUrl: string) {\n return function getBalance(address: string): Promise<Balance[]> {\n return RequestClient.get<Balance[]>(`${baseUrl}/v2/balance/${address}`);\n };\n}\n\nfunction getNameDetails(baseUrl: string) {\n return async function getNamesByAddress(name: string) {\n const errorHandler = (error: any) => {\n // Handle specific error cases\n if (error?.cause?.status === 404) {\n return undefined;\n }\n throw error;\n };\n return await RequestClient.get<THORNameDetails>(`${baseUrl}/lookup/${name}`, {\n onError: errorHandler,\n retry: { maxRetries: 1 },\n });\n };\n}\n\nfunction getNamesByAddress(baseUrl: string) {\n return async function getNamesByAddress(address: string) {\n const errorHandler = (error: any) => {\n // Handle specific error cases\n if (error?.cause?.status === 404) {\n return [];\n }\n throw error;\n };\n return await RequestClient.get<string[]>(`${baseUrl}/rlookup/${address}`, {\n onError: errorHandler,\n retry: { maxRetries: 1 },\n });\n };\n}\n\nfunction getNamesByOwner(baseUrl: string) {\n return async function getNamesByOwner(address: string) {\n const errorHandler = (error: any) => {\n // Handle specific error cases\n if (error?.cause?.status === 404) {\n return [];\n }\n throw error;\n };\n return await RequestClient.get<string[]>(`${baseUrl}/owner/${address}`, {\n onError: errorHandler,\n retry: { maxRetries: 1 },\n });\n };\n}\n\nfunction getPoolAsset({ asset, value }: { asset: string; value: string }) {\n return AssetValue.from({ asset, fromBaseDecimal: getChainConfig(Chain.THORChain).baseDecimal, value });\n}\n\nfunction getLiquidityPosition<IsThorchain extends boolean = true>({\n liquidityPositionGetter,\n isThorchain,\n}: {\n liquidityPositionGetter: ReturnType<\n typeof getLiquidityPositionRaw<IsThorchain extends true ? typeof Chain.THORChain : typeof Chain.Maya>\n >;\n isThorchain: IsThorchain;\n}) {\n return async function getLiquidityPosition(address: string) {\n const rawLiquidityPositions = await liquidityPositionGetter(address);\n const fieldPrefix = isThorchain ? \"rune\" : \"cacao\";\n\n return rawLiquidityPositions.pools.map((p) => ({\n [`${fieldPrefix}Pending`]: getPoolAsset({ asset: \"THOR.RUNE\", value: p.runePending }),\n [`${fieldPrefix}RegisteredAddress`]: p.runeAddress,\n [`${fieldPrefix}Withdrawn`]: getPoolAsset({ asset: \"THOR.RUNE\", value: p.runeWithdrawn }),\n [fieldPrefix]: getPoolAsset({ asset: \"THOR.RUNE\", value: p.runeAdded }),\n asset: getPoolAsset({ asset: p.pool, value: p.assetAdded }),\n assetPending: getPoolAsset({ asset: p.pool, value: p.assetPending }),\n assetRegisteredAddress: p.assetAddress,\n assetWithdrawn: getPoolAsset({ asset: p.pool, value: p.assetWithdrawn }),\n dateFirstAdded: p.dateFirstAdded,\n dateLastAdded: p.dateLastAdded,\n poolShare: new SwapKitNumber(p.liquidityUnits).div(p.pool),\n }));\n };\n}\n\nfunction getMidgardMethodsForProtocol<T extends TCLikeChain>(chain: T) {\n const isThorchain = chain === Chain.THORChain;\n const midgardBaseUrl = getMidgardBaseUrl(isThorchain);\n const nameServiceBaseUrl = getNameServiceBaseUrl(isThorchain);\n const liquidityPositionGetter = getLiquidityPositionRaw<T>(midgardBaseUrl);\n\n return {\n getActions: getActions(midgardBaseUrl),\n getBalance: getBalance(midgardBaseUrl),\n getConstants: getConstants(midgardBaseUrl),\n getEarningsHistory: getEarningsHistory(midgardBaseUrl),\n getHealth: getHealth(midgardBaseUrl),\n getLiquidityPosition: getLiquidityPosition({ isThorchain, liquidityPositionGetter }),\n getLiquidityPositionRaw: liquidityPositionGetter,\n getMembers: getMembers(midgardBaseUrl),\n getMimir: getMimir(midgardBaseUrl),\n getMimirVotes: getMimirVotes(midgardBaseUrl),\n getNameDetails: getNameDetails(nameServiceBaseUrl),\n getNamesByAddress: getNamesByAddress(nameServiceBaseUrl),\n getNamesByOwner: getNamesByOwner(nameServiceBaseUrl),\n getNetworkInfo: getNetworkInfo(midgardBaseUrl),\n getNode: getNode(midgardBaseUrl),\n getNodes: getNodes(midgardBaseUrl),\n getPool: getPool(midgardBaseUrl),\n getPoolDepthHistory: getPoolDepthHistory(midgardBaseUrl),\n getPoolStats: getPoolStats(midgardBaseUrl),\n getPools: getPools(midgardBaseUrl),\n getSaverDetails: getSaverDetails(midgardBaseUrl),\n getSavers: getSavers(midgardBaseUrl),\n getSaversHistory: getSaversHistory(midgardBaseUrl),\n getStats: getStats(midgardBaseUrl),\n getSwapHistory: getSwapHistory(midgardBaseUrl),\n getTVLHistory: getTVLHistory(midgardBaseUrl),\n };\n}\n\nexport const thorchainMidgard = getMidgardMethodsForProtocol(Chain.THORChain);\nexport const mayachainMidgard = getMidgardMethodsForProtocol(Chain.Maya);\n",
6
- "import {\n type Chain,\n type EVMChain,\n EVMChains,\n isGasAsset,\n type ProviderName,\n RequestClient,\n SKConfig,\n SwapKitError,\n} from \"@swapkit/helpers\";\nimport { match, P } from \"ts-pattern\";\nimport {\n type BalanceResponse,\n type BrokerDepositChannelParams,\n type DepositChannelResponse,\n DepositChannelResponseSchema,\n type GasResponse,\n GasResponseSchema,\n type NearDepositChannelParams,\n type NearSwapResponse,\n NearSwapResponseSchema,\n type PriceRequest,\n type PriceResponse,\n PriceResponseSchema,\n type QuoteRequest,\n type QuoteResponse,\n type QuoteResponseRoute,\n QuoteResponseRouteItem,\n QuoteResponseSchema,\n type TokenListProvidersResponse,\n type TokensResponseV2,\n type TrackerResponse,\n TrackerResponseSchema,\n type TrackingRequest,\n} from \"./types\";\n\nexport const SKRequestClient = RequestClient;\n\nexport async function getTrackerDetails(json: TrackingRequest) {\n const response = await SKRequestClient.post<TrackerResponse>(getApiUrl(\"/track\"), { json });\n\n try {\n const parsedResponse = TrackerResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (_error) {\n // throw new SwapKitError(\"api_v2_invalid_response\", error);\n return response;\n }\n}\n\nexport async function getSwapQuote(json: QuoteRequest) {\n const { getQuote } = SKConfig.get(\"endpoints\");\n\n if (getQuote) return getQuote(json);\n\n const response = await SKRequestClient.post<QuoteResponse>(getApiUrl(\"/quote\"), { json });\n\n if (response.error) {\n throw new SwapKitError(\"api_v2_server_error\", { message: response.error });\n }\n\n try {\n const parsedResponse = QuoteResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch {\n // throw new SwapKitError(\"api_v2_invalid_response\", error);\n return response;\n }\n}\n\nexport async function getRouteWithTx(json: { routeId: string; sourceAddress: string; destinationAddress: string }) {\n const { getRouteWithTx } = SKConfig.get(\"endpoints\");\n\n if (getRouteWithTx) return getRouteWithTx(json);\n\n const response = await SKRequestClient.post<QuoteResponseRoute>(getApiUrl(\"/swap\"), { json });\n\n try {\n const parsedResponse = QuoteResponseRouteItem.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n console.error(new SwapKitError(\"api_v2_invalid_response\", error));\n return response;\n }\n}\n\nexport async function getChainBalance<T extends Chain>({\n chain,\n address,\n scamFilter = true,\n}: {\n chain: T;\n address: string;\n scamFilter?: boolean;\n}) {\n const { getBalance } = SKConfig.get(\"endpoints\");\n if (getBalance) return getBalance({ address, chain });\n\n const url = getApiUrl(`/balance?chain=${chain}&address=${address}`);\n const balanceResponse = await SKRequestClient.get<BalanceResponse>(url);\n const balances = Array.isArray(balanceResponse) ? balanceResponse : [];\n return scamFilter ? filterAssets(balances) : balances;\n}\n\nexport function getTokenListProviders() {\n const url = getApiUrl(\"/providers\");\n return SKRequestClient.get<TokenListProvidersResponse>(url);\n}\n\nexport function getTokenList(provider: ProviderName) {\n const url = getApiUrl(`/tokens?provider=${provider}`);\n return SKRequestClient.get<TokensResponseV2>(url);\n}\n\nexport async function getPrice(body: PriceRequest) {\n const url = getApiUrl(\"/price\");\n const response = await SKRequestClient.post<PriceResponse>(url, { json: body });\n\n try {\n const parsedResponse = PriceResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new SwapKitError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getGasRate() {\n const url = getApiUrl(\"/gas\");\n const response = await SKRequestClient.get<GasResponse>(url);\n\n try {\n const parsedResponse = GasResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n const gasRates = Array.isArray(parsedResponse) ? parsedResponse : [parsedResponse];\n return gasRates;\n } catch (error) {\n throw new SwapKitError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getChainflipDepositChannel(body: BrokerDepositChannelParams) {\n const { destinationAddress } = body;\n\n if (!destinationAddress) {\n throw new SwapKitError(\"chainflip_broker_invalid_params\");\n }\n const url = SKConfig.get(\"integrations\").chainflip?.brokerUrl || getApiUrl(\"/chainflip/broker/channel\");\n\n const response = await SKRequestClient.post<DepositChannelResponse>(url, { json: body });\n\n try {\n const parsedResponse = DepositChannelResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new SwapKitError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getNearDepositChannel(body: NearDepositChannelParams) {\n const { destinationAddress } = body;\n\n if (!destinationAddress) {\n throw new SwapKitError(\"chainflip_broker_invalid_params\");\n }\n const url = getApiUrl(\"/near/channel\");\n\n const response = await SKRequestClient.post<NearSwapResponse>(url, { json: body });\n\n try {\n const parsedResponse = NearSwapResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new SwapKitError(\"api_v2_invalid_response\", error);\n }\n}\n\nfunction getApiUrl(path?: `/${string}`) {\n const { isDev, apiUrl, devApiUrl, experimental_apiUrlQuote, experimental_apiUrlSwap } = SKConfig.get(\"envs\");\n\n const defaultUrl = `${isDev ? devApiUrl : apiUrl}${path}`;\n\n return match({ experimental_apiUrlQuote, experimental_apiUrlSwap, path })\n .with(\n { experimental_apiUrlQuote: P.string.startsWith(\"http\"), path: \"/quote\" },\n ({ experimental_apiUrlQuote, path }) => `${experimental_apiUrlQuote}${path}`,\n )\n .with(\n { experimental_apiUrlSwap: P.string.startsWith(\"http\"), path: \"/swap\" },\n ({ experimental_apiUrlSwap, path }) => `${experimental_apiUrlSwap}${path}`,\n )\n .otherwise(() => defaultUrl);\n}\n\nfunction evmAssetHasAddress(assetString: string) {\n const [chain, symbol] = assetString.split(\".\") as [EVMChain, string];\n if (!EVMChains.includes(chain as EVMChain)) return true;\n const splitSymbol = symbol.split(\"-\");\n const address = splitSymbol.length === 1 ? undefined : splitSymbol[splitSymbol.length - 1];\n\n return isGasAsset({ chain: chain as Chain, symbol }) || !!address;\n}\n\nconst potentialScamRegex = new RegExp(/(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/, \"gmi\");\nfunction filterAssets(tokens: BalanceResponse) {\n return tokens.filter((token) => {\n return !potentialScamRegex.test(token.identifier) && evmAssetHasAddress(token.identifier);\n });\n}\n",
6
+ "import {\n type Chain,\n type EVMChain,\n EVMChains,\n isGasAsset,\n type ProviderName,\n RequestClient,\n SKConfig,\n SwapKitError,\n} from \"@swapkit/helpers\";\nimport { match, P } from \"ts-pattern\";\nimport {\n type BalanceResponse,\n type BrokerDepositChannelParams,\n type DepositChannelResponse,\n DepositChannelResponseSchema,\n type GasResponse,\n GasResponseSchema,\n type NearDepositChannelParams,\n type NearSwapResponse,\n NearSwapResponseSchema,\n type PriceRequest,\n type PriceResponse,\n PriceResponseSchema,\n type QuoteRequest,\n type QuoteResponse,\n type QuoteResponseRoute,\n QuoteResponseRouteItem,\n QuoteResponseSchema,\n type TokenListProvidersResponse,\n type TokensResponseV2,\n type TrackerResponse,\n TrackerResponseSchema,\n type TrackingRequest,\n} from \"./types\";\n\nconst SKRequestClient = RequestClient.extend({\n dynamicHeader: () => {\n const { swapKit } = SKConfig.get(\"apiKeys\");\n return swapKit ? { \"x-api-key\": swapKit } : {};\n },\n});\n\nexport async function getTrackerDetails(json: TrackingRequest) {\n const response = await SKRequestClient.post<TrackerResponse>(getApiUrl(\"/track\"), { json });\n\n try {\n const parsedResponse = TrackerResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (_error) {\n // throw new SwapKitError(\"api_v2_invalid_response\", error);\n return response;\n }\n}\n\nexport async function getSwapQuote(json: QuoteRequest) {\n const { getQuote } = SKConfig.get(\"endpoints\");\n\n if (getQuote) return getQuote(json);\n\n const response = await SKRequestClient.post<QuoteResponse>(getApiUrl(\"/quote\"), { json });\n\n if (response.error) {\n throw new SwapKitError(\"api_v2_server_error\", { message: response.error });\n }\n\n try {\n const parsedResponse = QuoteResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch {\n // throw new SwapKitError(\"api_v2_invalid_response\", error);\n return response;\n }\n}\n\nexport async function getRouteWithTx(json: { routeId: string; sourceAddress: string; destinationAddress: string }) {\n const { getRouteWithTx } = SKConfig.get(\"endpoints\");\n\n if (getRouteWithTx) return getRouteWithTx(json);\n\n const response = await SKRequestClient.post<QuoteResponseRoute>(getApiUrl(\"/swap\"), { json });\n\n try {\n const parsedResponse = QuoteResponseRouteItem.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n console.error(new SwapKitError(\"api_v2_invalid_response\", error));\n return response;\n }\n}\n\nexport async function getChainBalance<T extends Chain>({\n chain,\n address,\n scamFilter = true,\n}: {\n chain: T;\n address: string;\n scamFilter?: boolean;\n}) {\n const { getBalance } = SKConfig.get(\"endpoints\");\n if (getBalance) return getBalance({ address, chain });\n\n const url = getApiUrl(`/balance?chain=${chain}&address=${address}`);\n const balanceResponse = await SKRequestClient.get<BalanceResponse>(url);\n const balances = Array.isArray(balanceResponse) ? balanceResponse : [];\n return scamFilter ? filterAssets(balances) : balances;\n}\n\nexport function getTokenListProviders() {\n const url = getApiUrl(\"/providers\");\n return SKRequestClient.get<TokenListProvidersResponse>(url);\n}\n\nexport function getTokenList(provider: ProviderName) {\n const url = getApiUrl(`/tokens?provider=${provider}`);\n return SKRequestClient.get<TokensResponseV2>(url);\n}\n\nexport async function getPrice(body: PriceRequest) {\n const url = getApiUrl(\"/price\");\n const response = await SKRequestClient.post<PriceResponse>(url, { json: body });\n\n try {\n const parsedResponse = PriceResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new SwapKitError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getGasRate() {\n const url = getApiUrl(\"/gas\");\n const response = await SKRequestClient.get<GasResponse>(url);\n\n try {\n const parsedResponse = GasResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n const gasRates = Array.isArray(parsedResponse) ? parsedResponse : [parsedResponse];\n return gasRates;\n } catch (error) {\n throw new SwapKitError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getChainflipDepositChannel(body: BrokerDepositChannelParams) {\n const { destinationAddress } = body;\n\n if (!destinationAddress) {\n throw new SwapKitError(\"chainflip_broker_invalid_params\");\n }\n const url = SKConfig.get(\"integrations\").chainflip?.brokerUrl || getApiUrl(\"/chainflip/broker/channel\");\n\n const response = await SKRequestClient.post<DepositChannelResponse>(url, { json: body });\n\n try {\n const parsedResponse = DepositChannelResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new SwapKitError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getNearDepositChannel(body: NearDepositChannelParams) {\n const { destinationAddress } = body;\n\n if (!destinationAddress) {\n throw new SwapKitError(\"chainflip_broker_invalid_params\");\n }\n const url = getApiUrl(\"/near/channel\");\n\n const response = await SKRequestClient.post<NearSwapResponse>(url, { json: body });\n\n try {\n const parsedResponse = NearSwapResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new SwapKitError(\"api_v2_invalid_response\", error);\n }\n}\n\nfunction getApiUrl(path?: `/${string}`) {\n const { isDev, apiUrl, devApiUrl, experimental_apiUrlQuote, experimental_apiUrlSwap } = SKConfig.get(\"envs\");\n\n const defaultUrl = `${isDev ? devApiUrl : apiUrl}${path}`;\n\n return match({ experimental_apiUrlQuote, experimental_apiUrlSwap, path })\n .with(\n { experimental_apiUrlQuote: P.string.startsWith(\"http\"), path: \"/quote\" },\n ({ experimental_apiUrlQuote, path }) => `${experimental_apiUrlQuote}${path}`,\n )\n .with(\n { experimental_apiUrlSwap: P.string.startsWith(\"http\"), path: \"/swap\" },\n ({ experimental_apiUrlSwap, path }) => `${experimental_apiUrlSwap}${path}`,\n )\n .otherwise(() => defaultUrl);\n}\n\nfunction evmAssetHasAddress(assetString: string) {\n const [chain, symbol] = assetString.split(\".\") as [EVMChain, string];\n if (!EVMChains.includes(chain as EVMChain)) return true;\n const splitSymbol = symbol.split(\"-\");\n const address = splitSymbol.length === 1 ? undefined : splitSymbol[splitSymbol.length - 1];\n\n return isGasAsset({ chain: chain as Chain, symbol }) || !!address;\n}\n\nconst potentialScamRegex = new RegExp(/(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/, \"gmi\");\nfunction filterAssets(tokens: BalanceResponse) {\n return tokens.filter((token) => {\n return !potentialScamRegex.test(token.identifier) && evmAssetHasAddress(token.identifier);\n });\n}\n",
7
7
  "import { ErrorCode, FeeTypeEnum, ProviderName, WarningCodeEnum } from \"@swapkit/helpers\";\nimport { Chain, ChainId } from \"@swapkit/types\";\nimport { array, boolean, coerce, number, object, optional, string, union, unknown, type ZodType, z } from \"zod/v4\";\n\nexport enum PriorityLabel {\n CHEAPEST = \"CHEAPEST\",\n FASTEST = \"FASTEST\",\n RECOMMENDED = \"RECOMMENDED\",\n}\n\nexport enum RouteQuoteTxType {\n PSBT = \"PSBT\",\n EVM = \"EVM\",\n COSMOS = \"COSMOS\",\n RADIX = \"RADIX\",\n}\n\nexport enum TxnType {\n approve = \"approve\",\n claim = \"claim\",\n deposit = \"deposit\",\n donate = \"donate\",\n lending = \"lending\",\n lp_action = \"lp_action\",\n native_contract_call = \"native_contract_call\",\n native_send = \"native_send\",\n stake = \"stake\",\n streaming_swap = \"streaming_swap\",\n swap = \"swap\",\n thorname_action = \"thorname_action\",\n token_contract_call = \"token_contract_call\",\n token_transfer = \"token_transfer\",\n unknown = \"unknown\",\n unstake = \"unstake\",\n}\n\nexport enum ProviderAction {\n swap = \"swap\",\n aggregation = \"aggregation\",\n addLiquidity = \"addLiquidity\",\n withdrawLiquidity = \"withdrawLiquidity\",\n addSavers = \"addSavers\",\n withdrawSavers = \"withdrawSavers\",\n borrow = \"borrow\",\n repay = \"repay\",\n name = \"name\",\n donate = \"donate\",\n claim = \"claim\",\n stake = \"stake\",\n unstake = \"unstake\",\n}\n\nexport enum TxnStatus {\n unknown = \"unknown\",\n not_started = \"not_started\",\n pending = \"pending\",\n swapping = \"swapping\",\n completed = \"completed\",\n refunded = \"refunded\",\n failed = \"failed\",\n}\n\nexport enum TrackingStatus {\n not_started = \"not_started\",\n starting = \"starting\",\n broadcasted = \"broadcasted\",\n mempool = \"mempool\",\n inbound = \"inbound\",\n outbound = \"outbound\",\n swapping = \"swapping\",\n completed = \"completed\",\n refunded = \"refunded\",\n partially_refunded = \"partially_refunded\",\n dropped = \"dropped\",\n reverted = \"reverted\",\n replaced = \"replaced\",\n retries_exceeded = \"retries_exceeded\",\n parsing_error = \"parsing_error\",\n}\n\ntype TokenProviderVersion = { major: number; minor: number; patch: number };\n\nexport type TokenListProvidersResponse = Array<{\n provider: ProviderName;\n name: string;\n timestamp: string;\n version: TokenProviderVersion;\n keywords: string[];\n count: number;\n url: string;\n}>;\n\nexport type TokensResponseV2 = {\n chainId: ChainId;\n count: number;\n keywords: string[];\n name: string;\n provider: ProviderName;\n timestamp: string;\n tokens: Token[];\n version: TokenProviderVersion;\n};\n\nexport const TokenSchema = object({\n address: optional(string()),\n chain: z.enum(Chain).optional(),\n chainId: z.enum(ChainId),\n coingeckoId: optional(string()),\n decimals: coerce.number(),\n extensions: optional(z.looseObject({})),\n identifier: string(),\n logoURI: optional(string()),\n name: optional(string()),\n shortCode: optional(string()),\n symbol: optional(string()),\n ticker: string(),\n});\n\nexport type Token = z.infer<typeof TokenSchema>;\n\nexport const TrackingRequestSchema = z\n .object({\n block: z.optional(z.number().describe(\"Block number. Required for Polkadot chain. e.g. `123456`\")),\n chainId: z.optional(z.string().describe(\"ChainId for the hash. e.g. `thorchain-1`\")),\n depositChannelId: z.optional(\n z.string().describe(\"Deposit channel ID, required for Chainflip if tx was broadcasted without wallet connection\"),\n ),\n hash: z.optional(\n z\n .string()\n .describe(\n \"Hash for the first transaction broadcasted by the end user. e.g. `88D1819378ECD09E5284C54937CDC1E99B52F253C007617A02DD1200710CE677`\",\n ),\n ),\n })\n .refine((data) => (data.hash && data.chainId) || data.depositChannelId, {\n message: \"Either `hash` and `chainId` or `depositChannelId` must be provided\",\n });\n\nexport const TrackingRequestQuerySchema = z.object({\n forceUpdate: z\n .string()\n .toLowerCase()\n .transform((x) => x === \"true\")\n .pipe(z.boolean())\n .optional(),\n});\n\nexport type TrackingRequest = z.infer<typeof TrackingRequestSchema>;\n\nexport const ApiV2ErrorSchema = object({ error: string(), message: string() });\n\nexport const AssetValueSchema = object({\n address: optional(string()),\n chain: z.enum(Chain),\n decimal: optional(number()),\n isGasAsset: boolean(),\n isSynthetic: boolean(),\n symbol: string(),\n tax: optional(object({ buy: number(), sell: number() })),\n ticker: string(),\n});\n\nexport const TokenDetailsMetadataSchema = object({\n id: string(),\n market_cap: number(),\n name: string(),\n price_change_24h_usd: number(),\n price_change_percentage_24h_usd: number(),\n sparkline_in_7d: array(number()),\n timestamp: string(),\n total_volume: number(),\n});\n\nexport const PriceResponseSchema = array(\n object({\n cg: TokenDetailsMetadataSchema.optional(),\n identifier: string(),\n price_usd: number(),\n provider: string(),\n timestamp: number(),\n }).partial(),\n);\n\nexport type PriceResponse = z.infer<typeof PriceResponseSchema>;\n\nexport const QuoteRequestSchema = object({\n affiliate: optional(string().describe(\"Affiliate thorname\")),\n affiliateFee: optional(\n number()\n .describe(\"Affiliate fee in basis points\")\n .refine((fee) => fee === Math.floor(fee) && fee >= 0, {\n message: \"affiliateFee must be a positive integer\",\n path: [\"affiliateFee\"],\n }),\n ),\n allowSmartContractReceiver: optional(boolean().describe(\"Allow smart contract as recipient\")),\n allowSmartContractSender: optional(boolean().describe(\"Allow smart contract as sender\")),\n buyAsset: string().describe(\"Asset to buy\"),\n cfBoost: optional(boolean().describe(\"Set to true to enable CF boost to speed up Chainflip swaps. BTC only.\")),\n destinationAddress: optional(string().describe(\"Address to send asset to\")),\n disableSecurityChecks: optional(boolean().describe(\"Disable security checks\")),\n includeTx: optional(boolean().describe(\"Set to true to include an transaction object (EVM only)\")),\n providers: optional(\n array(\n string()\n .describe(\"List of providers to use\")\n .refine((provider) => ProviderName[provider as ProviderName] !== undefined, {\n message: \"Invalid provider\",\n path: [\"providers\"],\n }),\n ),\n ),\n referrer: optional(string().describe(\"Referrer address (referral program)\")),\n sellAmount: string()\n .describe(\"Amount of asset to sell\")\n .refine((amount) => +amount > 0, { message: \"sellAmount must be greater than 0\", path: [\"sellAmount\"] }),\n sellAsset: string().describe(\"Asset to sell\"),\n slippage: optional(number().describe(\"Slippage tolerance as a percentage. Default is 3%.\")),\n sourceAddress: optional(string().describe(\"Address to send asset from\")),\n}).refine((data) => data.sellAsset !== data.buyAsset, {\n message: \"Must be different\",\n path: [\"sellAsset\", \"buyAsset\"],\n});\n\nexport type QuoteRequest = z.infer<typeof QuoteRequestSchema>;\n\nexport const PriceRequestSchema = object({ metadata: boolean(), tokens: array(object({ identifier: string() })) });\n\nexport type PriceRequest = z.infer<typeof PriceRequestSchema>;\n\nexport const DepositChannelParamsSchema = object({ destinationAddress: string() });\n\nexport const BrokerDepositChannelParamsSchema = DepositChannelParamsSchema.extend({\n affiliateFees: array(object({ brokerAddress: string(), feeBps: number() })).optional(),\n brokerCommissionBps: number().optional(),\n buyAsset: object({ asset: string(), chain: string() }),\n channelMetadata: object({\n cfParameters: string().optional(),\n gasBudget: string().optional(),\n message: string().optional(),\n }).optional(),\n dcaParameters: object({ chunkInterval: number().optional(), numberOfChunks: number().optional() }).optional(),\n maxBoostFeeBps: number().optional(),\n refundParameters: object({\n minPrice: string().optional(),\n refundAddress: string().optional(),\n retryDuration: number().optional(),\n }).optional(),\n sellAsset: object({ asset: string(), chain: string() }),\n});\n\nexport type BrokerDepositChannelParams = z.infer<typeof BrokerDepositChannelParamsSchema>;\n\nexport const DepositChannelResponseSchema = object({ channelId: string(), depositAddress: string() });\n\nexport const NearDepositChannelParamsSchema = DepositChannelParamsSchema.extend({\n affiliateFees: object({ feeBps: number(), nearId: string() }).optional(),\n buyAsset: string(),\n sellAmount: string(),\n sellAsset: string(),\n slippage: coerce.number(),\n sourceAddress: string(),\n});\n\nexport type NearDepositChannelParams = z.infer<typeof NearDepositChannelParamsSchema>;\n\nconst NearQuoteResponseSchema = object({\n amountIn: string(),\n amountInFormatted: string(),\n amountInUsd: string(),\n amountOut: string(),\n amountOutFormatted: string(),\n amountOutUsd: string(),\n deadline: string().optional(),\n minAmountIn: string(),\n minAmountOut: string(),\n timeEstimate: number().optional(),\n timeWhenInactive: string().optional(),\n});\n\nexport const NearDepositChannelResultSchema = NearQuoteResponseSchema.extend({\n depositAddress: string(),\n quote: NearQuoteResponseSchema,\n signature: string(),\n timestamp: string(),\n tx: unknown(),\n});\n\nexport type NearDepositChannelResult = z.infer<typeof NearDepositChannelResultSchema>;\n\nexport const NearSwapResponseSchema = object({\n buyAsset: string(),\n buyAssetAmount: string(),\n buyAssetAmountMaxSlippage: string(),\n deadline: string().optional(),\n depositAddress: string(),\n depositAmount: string(),\n depositAsset: string(),\n tx: unknown(),\n});\n\nexport type NearSwapResponse = z.infer<typeof NearSwapResponseSchema>;\n\nexport type DepositChannelResponse = z.infer<typeof DepositChannelResponseSchema>;\n\nconst TxnPayloadSchema = object({\n evmCalldata: z.optional(z.string()),\n intentHash: z.optional(z.string()),\n logs: z.optional(z.unknown()),\n manifest: z.optional(z.unknown()),\n memo: z.optional(z.string()),\n spender: z.optional(z.string()),\n thorname: z.optional(z.string()),\n});\n\nexport type TxnPayload = z.infer<typeof TxnPayloadSchema>;\n\nconst TransactionEstimatesSchema = object({\n currentStage: string(),\n inboundConfirmation: number(),\n inboundObservation: number(),\n outboundDelay: number(),\n outboundObservation: number(),\n streamingSwap: number(),\n});\n\nexport type TransactionEstimates = z.infer<typeof TransactionEstimatesSchema>;\n\nconst TransactionStreamingDetailsSchema = object({\n count: optional(number()),\n interval: optional(number()),\n quantity: optional(number()),\n subSwapsMap: optional(array(number())),\n});\n\nexport type TransactionStreamingDetails = z.infer<typeof TransactionStreamingDetailsSchema>;\n\nconst TxnTransientSchema = z.object({\n currentLegIndex: z.optional(z.number()),\n estimatedTimeToComplete: z.number(),\n estimates: z.optional(TransactionEstimatesSchema),\n providerDetails: z.optional(z.object({ streamingDetails: z.optional(TransactionStreamingDetailsSchema) })),\n});\n\nexport type TxnTransient = z.infer<typeof TxnTransientSchema>;\n\nconst TransactionFeesSchema = object({\n affiliate: optional(AssetValueSchema), // e.g. affiliate in memo, other affiliate mechanisms\n liquidity: optional(AssetValueSchema), // fee paid to pool\n network: optional(AssetValueSchema), // gas on ethereum, network fee on thorchain, etc.\n protocol: optional(AssetValueSchema), // extra protocol fees (TS dex aggregation contracts, stargate fees, etc.)\n tax: optional(AssetValueSchema), // taxed tokens\n});\n\nexport type TransactionFees = z.infer<typeof TransactionFeesSchema>;\n\nconst TxnMetaAffiliateFeesSchema = object({ affiliate: string(), bps: string(), isReferrer: boolean() });\n\nconst TxnMetaSchema = object({\n affiliate: optional(string()),\n affiliateFees: optional(array(TxnMetaAffiliateFeesSchema)),\n broadcastedAt: optional(number()),\n explorerUrl: optional(string()),\n fees: optional(TransactionFeesSchema),\n images: optional(\n object({\n chain: optional(string()),\n from: optional(string()),\n provider: optional(string()),\n to: optional(string()),\n }),\n ),\n provider: optional(z.enum(ProviderName)),\n providerAction: z.optional(z.enum(ProviderAction)),\n quoteId: optional(string()),\n wallet: optional(string()),\n});\n\nexport type TxnMeta = z.infer<typeof TxnMetaSchema>;\n\nconst TransactionLegDTOSchema = z.object({\n block: z.number(),\n chainId: z.enum(ChainId),\n finalAddress: z.optional(z.string()),\n finalAsset: z.optional(AssetValueSchema),\n finalisedAt: z.number(),\n fromAddress: z.string(),\n fromAmount: z.string(),\n fromAsset: z.string(),\n hash: z.string(),\n meta: z.optional(TxnMetaSchema),\n payload: z.optional(TxnPayloadSchema),\n status: z.enum(TxnStatus),\n toAddress: z.string(),\n toAmount: z.string(),\n toAsset: z.string(),\n trackingStatus: z.optional(z.enum(TrackingStatus)),\n transient: z.optional(TxnTransientSchema),\n type: z.enum(TxnType),\n});\n\nexport type TransactionLegDTO = z.infer<typeof TransactionLegDTOSchema>;\n\nexport const TrackerResponseSchema: z.ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: z.array(TransactionLegDTOSchema),\n});\n\nexport type TrackerResponse = z.infer<typeof TrackerResponseSchema>;\n\nexport const TransactionSchema = TransactionLegDTOSchema.extend({ legs: array(TransactionLegDTOSchema) });\n\nexport type TransactionDTO = z.infer<typeof TransactionLegDTOSchema> & { legs: TransactionLegDTO[] };\n\nexport const TransactionDTOSchema: ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: array(TransactionLegDTOSchema),\n});\n\nexport const FeesSchema = array(\n object({\n amount: string(),\n asset: string(),\n chain: string(),\n protocol: z.enum(ProviderName),\n type: z.enum(FeeTypeEnum),\n }),\n);\n\nexport type Fees = z.infer<typeof FeesSchema>;\n\nexport const EstimatedTimeSchema = z.object({\n inbound: z.optional(z.number().describe(\"Time to receive inbound asset in seconds\")),\n outbound: z.optional(z.number().describe(\"Time to receive outbound asset in seconds\")),\n swap: z.optional(z.number().describe(\"Time to swap assets in seconds\")),\n total: z.number().describe(\"Total time in seconds\"),\n});\n\nexport type EstimatedTime = z.infer<typeof EstimatedTimeSchema>;\n\nexport const EVMTransactionSchema = object({\n data: string().describe(\"Data to send\"),\n from: string().describe(\"Address of the sender\"),\n to: string().describe(\"Address of the recipient\"),\n value: string().describe(\"Value to send\"),\n});\n\nexport type EVMTransaction = z.infer<typeof EVMTransactionSchema>;\n\nexport const EVMTransactionDetailsParamsSchema = array(\n union([\n string(),\n number(),\n array(string()),\n object({ from: string(), value: string() }).describe(\"Parameters to pass to the contract method\"),\n ]),\n);\n\nexport type EVMTransactionDetailsParams = z.infer<typeof EVMTransactionDetailsParamsSchema>;\n\nexport const EVMTransactionDetailsSchema = object({\n approvalSpender: optional(string().describe(\"Address of the spender to approve\")),\n approvalToken: optional(string().describe(\"Address of the token to approve spending of\")),\n contractAddress: string().describe(\"Address of the contract to interact with\"),\n contractMethod: string().describe(\"Name of the method to call\"),\n contractParamNames: array(string().describe(\"Names of the parameters to pass to the contract method\")),\n contractParams: EVMTransactionDetailsParamsSchema,\n});\n\nexport type EVMTransactionDetails = z.infer<typeof EVMTransactionDetailsSchema>;\n\nconst EncodeObjectSchema = object({ typeUrl: string(), value: unknown() });\n\nconst FeeSchema = object({ amount: array(object({ amount: string(), denom: string() })), gas: string() });\n\nexport const CosmosTransactionSchema = object({\n accountNumber: number(),\n chainId: z.enum(ChainId),\n fee: FeeSchema,\n memo: string(),\n msgs: array(EncodeObjectSchema),\n sequence: number(),\n});\n\nexport type CosmosTransaction = z.infer<typeof CosmosTransactionSchema>;\n\nexport const RouteLegSchema = object({\n affiliate: string().describe(\"Affiliate address\").optional(),\n affiliateFee: number().describe(\"Affiliate fee\").optional(),\n buyAsset: string().describe(\"Asset to buy\"),\n destinationAddress: string().describe(\"Destination address\"),\n estimatedTime: EstimatedTimeSchema.optional(),\n provider: z.enum(ProviderName),\n sellAsset: string().describe(\"Asset to sell\"),\n slipPercentage: number().describe(\"Slippage as a percentage\"),\n sourceAddress: string().describe(\"Source address\"),\n});\n\nexport type RouteLeg = z.infer<typeof RouteLegSchema>;\n\nexport const RouteLegWithoutAddressesSchema = RouteLegSchema.omit({\n destinationAddress: true,\n slipPercentage: true,\n sourceAddress: true,\n});\n\nexport type RouteLegWithoutAddresses = z.infer<typeof RouteLegWithoutAddressesSchema>;\n\nexport const RouteQuoteMetadataAssetSchema = object({\n asset: string().describe(\"Asset name\"),\n image: string().describe(\"Asset image\"),\n price: number().describe(\"Price in USD\"),\n});\n\nexport type RouteQuoteMetadataAsset = z.infer<typeof RouteQuoteMetadataAssetSchema>;\n\nexport const ChainflipMetadataSchema = BrokerDepositChannelParamsSchema;\n\nexport type ChainflipMetadata = z.infer<typeof ChainflipMetadataSchema>;\n\nexport const RouteQuoteMetadataSchema = object({\n assets: optional(array(RouteQuoteMetadataAssetSchema)),\n maxStreamingQuantity: number().optional(),\n referrer: string().optional(),\n streamingInterval: number().optional(),\n tags: array(z.enum(PriorityLabel)),\n});\n\nexport const RouteQuoteMetadataV2Schema = RouteQuoteMetadataSchema.extend({\n affiliate: optional(string()),\n affiliateFee: optional(string()),\n approvalAddress: optional(string().describe(\"Approval address for swap\")),\n chainflip: ChainflipMetadataSchema.optional(),\n garden: NearDepositChannelParamsSchema.optional(),\n near: NearDepositChannelParamsSchema.optional(),\n priceImpact: optional(number().describe(\"Price impact\")),\n referrer: optional(string()),\n txType: optional(z.enum(RouteQuoteTxType)),\n});\n\nexport const RouteQuoteWarningSchema = array(\n object({ code: z.enum(WarningCodeEnum), display: string(), tooltip: string().optional() }),\n);\n\nexport type RouteQuoteWarning = z.infer<typeof RouteQuoteWarningSchema>;\n\nconst QuoteResponseRouteLegItem = object({\n buyAmount: string().describe(\"Buy amount\"),\n buyAmountMaxSlippage: string().describe(\"Buy amount max slippage\"),\n buyAsset: string().describe(\"Asset to buy\"),\n fees: optional(FeesSchema),\n provider: z.enum(ProviderName),\n sellAmount: string().describe(\"Sell amount\"),\n sellAsset: string().describe(\"Asset to sell\"),\n});\n\nexport const QuoteResponseRouteItem = object({\n buyAsset: string().describe(\"Asset to buy\"),\n destinationAddress: string().describe(\"Destination address\"),\n estimatedTime: optional(EstimatedTimeSchema),\n expectedBuyAmount: string().describe(\"Expected Buy amount\"),\n expectedBuyAmountMaxSlippage: string().describe(\"Expected Buy amount max slippage\"),\n expiration: optional(string().describe(\"Expiration\")),\n fees: FeesSchema,\n inboundAddress: optional(string().describe(\"Inbound address\")),\n legs: array(QuoteResponseRouteLegItem),\n memo: optional(string().describe(\"Memo\")),\n meta: RouteQuoteMetadataV2Schema,\n providers: array(z.enum(ProviderName)),\n routeId: string().describe(\"Route ID\"),\n sellAmount: string().describe(\"Sell amount\"),\n sellAsset: string().describe(\"Asset to sell\"),\n sourceAddress: string().describe(\"Source address\"),\n targetAddress: optional(string().describe(\"Target address\")),\n totalSlippageBps: number().describe(\"Total slippage in bps\"),\n tx: optional(union([EVMTransactionSchema, CosmosTransactionSchema, string()])),\n txType: optional(z.enum(RouteQuoteTxType)),\n warnings: RouteQuoteWarningSchema,\n});\n\nexport const QuoteResponseSchema = object({\n error: optional(string().describe(\"Error message\")),\n providerErrors: optional(\n array(\n object({\n errorCode: optional(z.enum(ErrorCode)),\n message: optional(string()),\n provider: z.enum(ProviderName).optional(),\n }),\n ),\n ),\n quoteId: string().describe(\"Quote ID\"),\n routes: array(QuoteResponseRouteItem),\n});\n\nexport type QuoteResponse = z.infer<typeof QuoteResponseSchema>;\nexport type QuoteResponseRoute = z.infer<typeof QuoteResponseRouteItem>;\nexport type QuoteResponseRouteLeg = z.infer<typeof QuoteResponseRouteLegItem>;\n\nexport const GasSchema = z.object({\n chainId: z.enum(ChainId),\n createdAt: z.date(),\n id: z.number(),\n unit: z.string(),\n value: z.string(),\n});\n\nconst GasSchemaArray = z.array(GasSchema);\n\nexport const GasResponseSchema = z.union([GasSchema, GasSchemaArray]);\n\nexport type GasResponse = z.infer<typeof GasResponseSchema>;\n\nconst BalanceResponseSchema = array(\n object({\n chain: z.enum(Chain),\n decimal: number(),\n identifier: string(),\n symbol: string(),\n ticker: string(),\n value: string(),\n }),\n);\n\nexport type BalanceResponse = z.infer<typeof BalanceResponseSchema>;\n",
8
8
  "import { AssetValue, RequestClient, SKConfig } from \"@swapkit/helpers\";\nimport { MAYAConfig, StagenetMAYAConfig, StagenetTHORConfig, THORConfig } from \"@swapkit/types\";\nimport type {\n InboundAddressesItem,\n LastBlockItem,\n MimirData,\n NodeItem,\n RunePoolInfo,\n RunePoolProviderInfo,\n TCYClaimerResponse,\n TCYClaimersResponse,\n TCYStakerResponse,\n TCYStakersResponse,\n THORNodeTNSDetails,\n THORNodeType,\n} from \"./types\";\n\nfunction baseUrl(type?: THORNodeType) {\n const { isStagenet } = SKConfig.get(\"envs\");\n\n switch (type) {\n case \"mayachain\": {\n const nodeUrl = isStagenet ? StagenetMAYAConfig.nodeUrl : MAYAConfig.nodeUrl;\n return `${nodeUrl}/mayachain`;\n }\n default: {\n const nodeUrl = isStagenet ? StagenetTHORConfig.nodeUrl : THORConfig.nodeUrl;\n\n return `${nodeUrl}/thorchain`;\n }\n }\n}\n\nfunction getNameServiceBaseUrl(type?: THORNodeType) {\n const nsType = type === \"mayachain\" ? \"mayaname\" : \"thorname\";\n\n return `${baseUrl(type)}/${nsType}`;\n}\n\nexport function getLastBlock<T extends THORNodeType = \"thorchain\">(type: T = \"thorchain\" as T) {\n return RequestClient.get<LastBlockItem<T>[]>(`${baseUrl(type)}/lastblock`);\n}\n\nexport function getThorchainQueue(type?: THORNodeType) {\n return RequestClient.get(`${baseUrl(type)}/queue`);\n}\n\nexport function getNodes(type?: THORNodeType) {\n return RequestClient.get<NodeItem[]>(`${baseUrl(type)}/nodes`);\n}\n\nexport function getMimirInfo(type?: THORNodeType) {\n return RequestClient.get<MimirData>(`${baseUrl(type)}/mimir`);\n}\n\nexport function getInboundAddresses(type?: THORNodeType) {\n return RequestClient.get<InboundAddressesItem[]>(`${baseUrl(type)}/inbound_addresses`);\n}\n\nexport async function getTHORNodeTNSDetails({\n type,\n name,\n}: {\n type?: THORNodeType;\n name: string;\n}): Promise<THORNodeTNSDetails> {\n try {\n const result = await RequestClient.get<THORNodeTNSDetails>(`${getNameServiceBaseUrl(type)}/${name}`);\n return result;\n } catch {\n return { affiliate_collector_rune: \"\", aliases: [], expire_block_height: 0, name, owner: \"\", preferred_asset: \"\" };\n }\n}\n\nexport async function getTNSPreferredAsset({ type, tns }: { type?: THORNodeType; tns: string }) {\n const tnsDetails = await getTHORNodeTNSDetails({ name: tns, type });\n\n if (!tnsDetails.preferred_asset || tnsDetails.preferred_asset === \".\") return undefined;\n\n return AssetValue.from({ asset: tnsDetails.preferred_asset, asyncTokenLookup: true });\n}\n\nexport function getRunePoolInfo(type?: THORNodeType) {\n return RequestClient.get<RunePoolInfo>(`${baseUrl(type)}/runepool`);\n}\n\nexport function getRunePoolProviderInfo({ type, thorAddress }: { type?: THORNodeType; thorAddress: string }) {\n return RequestClient.get<RunePoolProviderInfo>(`${baseUrl(type)}/rune_provider/${thorAddress}`);\n}\n\nexport function getTcyStaker({ type, address }: { type?: THORNodeType; address: string }) {\n return RequestClient.get<TCYStakerResponse>(`${baseUrl(type)}/tcy_staker/${address}`);\n}\n\nexport function getTcyStakers(type?: THORNodeType) {\n return RequestClient.get<TCYStakersResponse>(`${baseUrl(type)}/tcy_stakers`);\n}\n\nexport function getTcyClaimer({ type, address }: { type?: THORNodeType; address: string }) {\n return RequestClient.get<TCYClaimerResponse>(`${baseUrl(type)}/tcy_claimer/${address}`);\n}\n\nexport function getTcyClaimers(type?: THORNodeType) {\n return RequestClient.get<TCYClaimersResponse>(`${baseUrl(type)}/tcy_claimers`);\n}\n",
9
9
  "import { mayachainMidgard, thorchainMidgard } from \"./midgard/endpoints\";\nimport * as swapkit from \"./swapkitApi/endpoints\";\nimport * as thornode from \"./thornode/endpoints\";\n\nexport * from \"./midgard/types\";\nexport * from \"./swapkitApi/types\";\nexport * from \"./thornode/types\";\n\nexport const SwapKitApi = { ...swapkit, mayachainMidgard, thorchainMidgard, thornode };\n"
10
10
  ],
11
- "mappings": "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",
12
- "debugId": "167D84D89D6D754364756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "D0A66EB58782068B64756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -9,7 +9,7 @@
9
9
  "import { AllChains, type Chain, getChainConfig } from \"@swapkit/types\";\n\nexport type DerivationPathArray = ReturnType<typeof getChainConfig>[\"networkDerivationPath\"];\n\nexport const NetworkDerivationPath = AllChains.reduce(\n (acc, chain) => {\n acc[chain] = getChainConfig(chain).networkDerivationPath;\n return acc;\n },\n {} as Record<Chain, DerivationPathArray>,\n);\n",
10
10
  "export enum ErrorCode {\n unknownError = \"unknownError\",\n test_error = \"test_error\",\n providerDetailsError = \"providerDetailsError\",\n blockHeaderNotFound = \"blockHeaderNotFound\",\n blockHashNotFoundAtHeight = \"blockHashNotFoundAtHeight\",\n blockHashNotFoundAtHash = \"blockHashNotFoundAtHash\",\n txHashMissing = \"txHashMissing\",\n assetValueMissingInfo = \"assetValueMissingInfo\",\n invalidAsset = \"invalidAsset\",\n blockIsRequired = \"blockIsRequired\",\n currentBlockHeaderNotFound = \"currentBlockHeaderNotFound\",\n failedToRetrieveBalance = \"failedToRetrieveBalance\",\n failedToRetrieveBlock = \"failedToRetrieveBlock\",\n failedToRetrieveFees = \"failedToRetrieveFees\",\n notImplementedBCH = \"notImplementedBCH\",\n notImplementedDoge = \"notImplementedDoge\",\n noPoolsFound = \"noPoolsFound\",\n noVaultsFound = \"noVaultsFound\",\n noTxFound = \"noTxFound\",\n noInputCoinFound = \"noInputCoinFound\",\n noBlockDataFound = \"noBlockDataFound\",\n multipleCosmosMessages = \"multipleCosmosMessages\",\n heightOrHashNotProvided = \"heightOrHashNotProvided\",\n unknownDenom = \"unknownDenom\",\n invalidBlockHeight = \"invalidBlockHeight\",\n timestampExtrinsicNoArgumentsForBlock = \"timestampExtrinsicNoArgumentsForBlock\",\n timestampExtrinsicNoTimestampForBlock = \"timestampExtrinsicNoTimestampForBlock\",\n noTimestampExtrinsicForHash = \"noTimestampExtrinsicForHash\",\n timestampExtrinsicNoArgumentsForHash = \"timestampExtrinsicNoArgumentsForHash\",\n txMemoUndefined = \"txMemoUndefined\",\n txMemoIncorrect = \"txMemoIncorrect\",\n txTypeNotFound = \"txTypeNotFound\",\n txNoMessage = \"txNoMessage\",\n txNotFound = \"txNotFound\",\n txReceiptNotFound = \"txReceiptNotFound\",\n txParsingError = \"txParsingError\",\n txLogsParsingError = \"txLogsParsingError\",\n blockNotFound = \"blockNotFound\",\n balanceNotFound = \"balanceNotFound\",\n configError = \"configError\",\n synthSwapDisallowed = \"synthSwapDisallowed\",\n providerQuoteTimeout = \"providerQuoteTimeout\",\n noQuoteResponse = \"noQuoteResponse\",\n noPoolAssetsFound = \"noPoolAssetsFound\",\n noThorchainPools = \"noThorchainPools\",\n noMayachainPools = \"noMayachainPools\",\n noThorchainNetworkInfo = \"noThorchainNetworkInfo\",\n invalidAffiliateFee = \"invalidAffiliateFee\",\n invalidBuyAssetAddress = \"invalidBuyAssetAddress\",\n invalidSellAssetAddress = \"invalidSellAssetAddress\",\n invalidSourceAddress = \"invalidSourceAddress\",\n invalidDestinationAddress = \"invalidDestinationAddress\",\n sourceAddressIsSmartContract = \"sourceAddressIsSmartContract\",\n destinationAddressIsSmartContract = \"destinationAddressIsSmartContract\",\n invalidChainId = \"invalidChainId\",\n unsupportedChainId = \"unsupportedChainId\",\n unsupportedEVMChainId = \"unsupportedEVMChainId\",\n unsupportedMethod = \"unsupportedMethod\",\n unsupportedProvider = \"unsupportedProvider\",\n invalidParamsForMethod = \"invalidParamsForMethod\",\n unsupportedAdapter = \"unsupportedAdapter\",\n noWhitelistTokens = \"noWhitelistTokens\",\n failedFetchGasPrice = \"failedFetchGasPrice\",\n failedToCreateDepositChannel = \"failedToCreateDepositChannel\",\n noProviderDetailsFound = \"noProviderDetailsFound\",\n noTokenListsFound = \"noTokenListsFound\",\n tokenNotFound = \"tokenNotFound\",\n tokenPriceNotFound = \"tokenPriceNotFound\",\n tokenPriceFailedToUpdate = \"tokenPriceFailedToUpdate\",\n swapAmountTooSmall = \"swapAmountTooSmall\",\n legsArrayIsEmpty = \"legsArrayIsEmpty\",\n failedToFetchQuoteForLeg = \"failedToFetchQuoteForLeg\",\n noBlockHeaderFound = \"noBlockHeaderFound\",\n failedToSimulateSwap = \"failedToSimulateSwap\",\n addressScreeningFailed = \"addressScreeningFailed\",\n noLiquidtyProvidersFound = \"noLiquidtyProvidersFound\",\n insufficientLiquidity = \"insufficientLiquidity\",\n noInboundDataFound = \"noInbounDataFound\",\n noInboundAddressesFound = \"noInboundAddressesFound\",\n noInboundAddressFoundForChain = \"noInboundAddressFoundForChain\",\n noLastBlocksFound = \"noLastBlocksFound\",\n noVersionFound = \"noVersionFound\",\n noConstantsFound = \"noConstantsFound\",\n noMimirsFound = \"noMimirsFound\",\n noRoutesFound = \"noRoutesFound\",\n quoteNotFound = \"quoteNotFound\",\n ledgerSignFailed = \"ledgerSignFailed\",\n ledgerWrongPayload = \"ledgerWrongPayload\",\n ledgerFetchSwapFailed = \"ledgerFetchSwapFailed\",\n failedToFetchTx = \"failedToFetchTx\",\n failedBuildTransactionDetails = \"failedBuildTransactionDetails\",\n noLegsForRoute = \"noLegsForRoute\",\n noRouterAddressFound = \"noRouterAddressFound\",\n noAggregatorAddressFound = \"noAggregatorAddressFound\",\n noContractInstanceFound = \"noContractInstanceFound\",\n noContractAddressFound = \"noContractAddressFound\",\n invalidAffiliate = \"invalidAffiliate\",\n thornameAffiliate = \"thornameAffiliate\",\n providerNotfound = \"No provider found\",\n noRecordFound = \"No Record found\",\n slippageTooLow = \"Slippage too low\",\n tradingHalted = \"tradingHalted\",\n noWrappedGasAsset = \"noWrappedGasAsset\",\n aggregatorAddressNotFound = \"aggregatorAddressNotFound\",\n routerAddressNotFound = \"routerAddressNotFound\",\n dummyAddressNotFound = \"dummyAddressNotFound\",\n trackerError = \"trackerError\",\n thorchainPoolUnavailable = \"thorchainPoolUnavailable\",\n noOhlcvDataFound = \"noOhlcvDataFound\",\n noTradingPairs = \"noTradingPairs\",\n noLendingAvailability = \"noLendingAvailability\",\n lendingRepayTooSmall = \"lendingRepayTooSmall\",\n missingState = \"missingState\",\n ledgerSwapNotFound = \"ledgerSwapNotFound\",\n ledgerSwapNotReadyForTracking = \"ledgerSwapNotReadyForTracking\",\n errorEstimatingGas = \"errorEstimatingGas\",\n apiKeyInvalid = \"apiKeyInvalid\",\n apiKeyFailedToUpdate = \"apiKeyFailedToUpdate\",\n apiKeyExpired = \"apiKeyExpired\",\n unauthorized = \"unauthorized\",\n failedToCreateMemo = \"failedToCreateMemo\",\n radixIncorrectInstructions = \"radixIncorrectInstructions\",\n radixTxMissedParam = \"radixTxMissedParam\",\n radixTxMissedAccount = \"radixTxMissedAccount\",\n radixManifestParseError = \"radixManifestParseError\",\n radixManifestBuildError = \"radixManifestBuildError\",\n invalidAddressForChain = \"invalidAddressForChain\",\n riskyAddress = \"riskyAddress\",\n noRoutesToProcess = \"noRoutesToProcess\",\n sellAssetAmountTooSmall = \"sellAssetAmountTooSmall\",\n missingPrivateKey = \"missingPrivateKey\",\n noMemoPriceProtection = \"noMemoPriceProtection\",\n}\n\nexport enum WarningCodeEnum {\n highSlippage = \"highSlippage\",\n highPriceImpact = \"highPriceImpact\",\n}\n\nexport enum ProviderName {\n CAVIAR_V1 = \"CAVIAR_V1\",\n CAMELOT_V3 = \"CAMELOT_V3\",\n CHAINFLIP = \"CHAINFLIP\",\n CHAINFLIP_STREAMING = \"CHAINFLIP_STREAMING\",\n JUPITER = \"JUPITER\",\n MAYACHAIN = \"MAYACHAIN\",\n MAYACHAIN_STREAMING = \"MAYACHAIN_STREAMING\",\n OCISWAP_V1 = \"OCISWAP_V1\",\n ONEINCH = \"ONEINCH\",\n OPENOCEAN_V2 = \"OPENOCEAN_V2\",\n PANCAKESWAP = \"PANCAKESWAP\",\n PANGOLIN_V1 = \"PANGOLIN_V1\",\n SUSHISWAP_V2 = \"SUSHISWAP_V2\",\n THORCHAIN = \"THORCHAIN\",\n THORCHAIN_STREAMING = \"THORCHAIN_STREAMING\",\n TRADERJOE_V2 = \"TRADERJOE_V2\",\n UNISWAP_V2 = \"UNISWAP_V2\",\n UNISWAP_V3 = \"UNISWAP_V3\",\n NEAR = \"NEAR\",\n GARDEN = \"GARDEN\",\n OKX = \"OKX\",\n}\n\nexport enum FeeTypeEnum {\n LIQUIDITY = \"liquidity\",\n NETWORK = \"network\",\n INBOUND = \"inbound\",\n OUTBOUND = \"outbound\",\n AFFILIATE = \"affiliate\",\n TAX = \"tax\",\n PRIORITY = \"priority\",\n SERVICE = \"service\",\n}\n",
11
11
  "import type { AssetValue } from \"../modules/assetValue\";\n\nexport type GenericSwapParams<T = unknown> = {\n buyAsset?: AssetValue;\n sellAsset?: AssetValue;\n recipient?: string;\n feeOptionKey?: FeeOption;\n route: T;\n};\n\nexport type SwapParams<PluginNames = string, R = unknown> = GenericSwapParams<R> & { pluginName?: PluginNames };\n\nexport enum FeeOption {\n Average = \"average\",\n Fast = \"fast\",\n Fastest = \"fastest\",\n}\n\nexport enum ApproveMode {\n Approve = \"approve\",\n CheckOnly = \"checkOnly\",\n}\n\nexport type ApproveReturnType<T extends ApproveMode> = T extends \"checkOnly\" ? Promise<boolean> : Promise<string>;\n\nexport enum MemoType {\n NAME_REGISTER = \"~\",\n BOND = \"BOND\",\n DEPOSIT = \"+\",\n LEAVE = \"LEAVE\",\n UNBOND = \"UNBOND\",\n WITHDRAW = \"-\",\n RUNEPOOL_DEPOSIT = \"POOL+\",\n RUNEPOOL_WITHDRAW = \"POOL-\",\n CLAIM_TCY = \"tcy\",\n STAKE_TCY = \"tcy+\",\n UNSTAKE_TCY = \"tcy-\",\n}\n",
12
- "import type { Chain, getChainConfig } from \"@swapkit/types\";\nimport type { BrowserProvider, Eip1193Provider } from \"ethers\";\n\nimport type { AssetValue } from \"../modules/assetValue\";\nimport type { FeeOption } from \"./sdk\";\n\ndeclare global {\n interface WindowEventMap {\n \"eip6963:announceProvider\": CustomEvent;\n }\n}\n\nexport type EthereumWindowProvider = BrowserProvider & {\n __XDEFI?: boolean;\n isBraveWallet?: boolean;\n isCoinbaseWallet?: boolean;\n isMetaMask?: boolean;\n isOkxWallet?: boolean;\n isKeepKeyWallet?: boolean;\n isTrust?: boolean;\n isTalisman?: boolean;\n on: (event: string, callback?: () => void) => void;\n overrideIsMetaMask?: boolean;\n request: <T = unknown>(args: { method: string; params?: unknown[] }) => Promise<T>;\n selectedProvider?: EthereumWindowProvider;\n};\n\nexport type NetworkParams = {\n chainId: ReturnType<typeof getChainConfig>[\"chainId\"];\n chainName: string;\n nativeCurrency: { name: string; symbol: string; decimals: number };\n rpcUrls: string[];\n blockExplorerUrls: string[];\n};\n\nexport enum WalletOption {\n BITGET = \"BITGET\",\n BRAVE = \"BRAVE\",\n COINBASE_MOBILE = \"COINBASE_MOBILE\",\n COINBASE_WEB = \"COINBASE_WEB\",\n COSMOSTATION = \"COSMOSTATION\",\n CTRL = \"CTRL\",\n EIP6963 = \"EIP6963\",\n /**\n * @deprecated Use PASSKEYS instead\n */\n EXODUS = \"EXODUS\",\n KEEPKEY = \"KEEPKEY\",\n KEEPKEY_BEX = \"KEEPKEY_BEX\",\n KEPLR = \"KEPLR\",\n KEYSTORE = \"KEYSTORE\",\n LEAP = \"LEAP\",\n LEDGER = \"LEDGER\",\n LEDGER_LIVE = \"LEDGER_LIVE\",\n METAMASK = \"METAMASK\",\n OKX = \"OKX\",\n OKX_MOBILE = \"OKX_MOBILE\",\n ONEKEY = \"ONEKEY\",\n PASSKEYS = \"PASSKEYS\",\n PHANTOM = \"PHANTOM\",\n POLKADOT_JS = \"POLKADOT_JS\",\n RADIX_WALLET = \"RADIX_WALLET\",\n TALISMAN = \"TALISMAN\",\n TREZOR = \"TREZOR\",\n TRONLINK = \"TRONLINK\",\n TRUSTWALLET_WEB = \"TRUSTWALLET_WEB\",\n VULTISIG = \"VULTISIG\",\n WALLETCONNECT = \"WALLETCONNECT\",\n WALLET_SELECTOR = \"WALLET_SELECTOR\",\n XAMAN = \"XAMAN\",\n}\n\nexport enum LedgerErrorCode {\n NoError = 0x9000,\n LockedDevice = 0x5515,\n TC_NotFound = 65535,\n}\n\n/**\n * @deprecated CryptoChain has been deprecated - use Chain instead\n */\nexport type CryptoChain = Chain;\n\nexport type ChainWallet<T extends Chain> = {\n chain: T;\n address: string;\n balance: AssetValue[];\n walletType: WalletOption | string;\n disconnect?: () => void;\n signMessage?: (message: string) => Promise<string>;\n};\n\nexport type EmptyWallet = { [key in Chain]?: unknown };\nexport type BaseWallet<T extends EmptyWallet | Record<string, unknown>> = {\n [key in Chain]: ChainWallet<key> & (T extends EmptyWallet ? T[key] : never);\n};\n\nexport type EIP6963ProviderInfo = { walletId: string; uuid: string; name: string; icon: string };\n\nexport type EIP6963ProviderDetail = { info: EIP6963ProviderInfo; provider: Eip1193Provider };\n\nexport type EIP6963Provider = { info: EIP6963ProviderInfo; provider: Eip1193Provider };\n\n// This type represents the structure of an event dispatched by a wallet to announce its presence based on EIP-6963.\nexport type EIP6963AnnounceProviderEvent = Event & { detail: EIP6963Provider };\n\nexport type ChainSigner<T, S> = {\n signTransaction: (params: T) => Promise<S> | S;\n getAddress: () => Promise<string> | string;\n sign?: (message: string) => Promise<string> | string;\n};\n\nexport type GenericTransferParams = {\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n feeRate?: number;\n feeOptionKey?: FeeOption;\n};\n\nexport type GenericCreateTransactionParams = Omit<GenericTransferParams, \"feeOptionKey\" & \"feeRate\"> & {\n sender: string;\n feeRate: number;\n};\n",
12
+ "import type { Chain, getChainConfig } from \"@swapkit/types\";\nimport type { BrowserProvider, Eip1193Provider } from \"ethers\";\n\nimport type { AssetValue } from \"../modules/assetValue\";\nimport type { FeeOption } from \"./sdk\";\n\ndeclare global {\n interface WindowEventMap {\n \"eip6963:announceProvider\": CustomEvent;\n }\n}\n\nexport type EthereumWindowProvider = BrowserProvider & {\n __XDEFI?: boolean;\n isBraveWallet?: boolean;\n isCoinbaseWallet?: boolean;\n isMetaMask?: boolean;\n isOkxWallet?: boolean;\n isKeepKeyWallet?: boolean;\n isTrust?: boolean;\n isTalisman?: boolean;\n on: (event: string, callback?: () => void) => void;\n overrideIsMetaMask?: boolean;\n request: <T = unknown>(args: { method: string; params?: unknown[] }) => Promise<T>;\n selectedProvider?: EthereumWindowProvider;\n};\n\nexport type NetworkParams = {\n chainId: ReturnType<typeof getChainConfig>[\"chainIdHex\"];\n chainName: string;\n nativeCurrency: { name: string; symbol: string; decimals: number };\n rpcUrls: string[];\n blockExplorerUrls: string[];\n};\n\nexport enum WalletOption {\n BITGET = \"BITGET\",\n BRAVE = \"BRAVE\",\n COINBASE_MOBILE = \"COINBASE_MOBILE\",\n COINBASE_WEB = \"COINBASE_WEB\",\n COSMOSTATION = \"COSMOSTATION\",\n CTRL = \"CTRL\",\n EIP6963 = \"EIP6963\",\n /**\n * @deprecated Use PASSKEYS instead\n */\n EXODUS = \"EXODUS\",\n KEEPKEY = \"KEEPKEY\",\n KEEPKEY_BEX = \"KEEPKEY_BEX\",\n KEPLR = \"KEPLR\",\n KEYSTORE = \"KEYSTORE\",\n LEAP = \"LEAP\",\n LEDGER = \"LEDGER\",\n LEDGER_LIVE = \"LEDGER_LIVE\",\n METAMASK = \"METAMASK\",\n OKX = \"OKX\",\n OKX_MOBILE = \"OKX_MOBILE\",\n ONEKEY = \"ONEKEY\",\n PASSKEYS = \"PASSKEYS\",\n PHANTOM = \"PHANTOM\",\n POLKADOT_JS = \"POLKADOT_JS\",\n RADIX_WALLET = \"RADIX_WALLET\",\n TALISMAN = \"TALISMAN\",\n TREZOR = \"TREZOR\",\n TRONLINK = \"TRONLINK\",\n TRUSTWALLET_WEB = \"TRUSTWALLET_WEB\",\n VULTISIG = \"VULTISIG\",\n WALLETCONNECT = \"WALLETCONNECT\",\n WALLET_SELECTOR = \"WALLET_SELECTOR\",\n XAMAN = \"XAMAN\",\n}\n\nexport enum LedgerErrorCode {\n NoError = 0x9000,\n LockedDevice = 0x5515,\n TC_NotFound = 65535,\n}\n\n/**\n * @deprecated CryptoChain has been deprecated - use Chain instead\n */\nexport type CryptoChain = Chain;\n\nexport type ChainWallet<T extends Chain> = {\n chain: T;\n address: string;\n balance: AssetValue[];\n walletType: WalletOption | string;\n disconnect?: () => void;\n signMessage?: (message: string) => Promise<string>;\n};\n\nexport type EmptyWallet = { [key in Chain]?: unknown };\nexport type BaseWallet<T extends EmptyWallet | Record<string, unknown>> = {\n [key in Chain]: ChainWallet<key> & (T extends EmptyWallet ? T[key] : never);\n};\n\nexport type EIP6963ProviderInfo = { walletId: string; uuid: string; name: string; icon: string };\n\nexport type EIP6963ProviderDetail = { info: EIP6963ProviderInfo; provider: Eip1193Provider };\n\nexport type EIP6963Provider = { info: EIP6963ProviderInfo; provider: Eip1193Provider };\n\n// This type represents the structure of an event dispatched by a wallet to announce its presence based on EIP-6963.\nexport type EIP6963AnnounceProviderEvent = Event & { detail: EIP6963Provider };\n\nexport type ChainSigner<T, S> = {\n signTransaction: (params: T) => Promise<S> | S;\n getAddress: () => Promise<string> | string;\n sign?: (message: string) => Promise<string> | string;\n};\n\nexport type GenericTransferParams = {\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n feeRate?: number;\n feeOptionKey?: FeeOption;\n};\n\nexport type GenericCreateTransactionParams = Omit<GenericTransferParams, \"feeOptionKey\" & \"feeRate\"> & {\n sender: string;\n feeRate: number;\n};\n",
13
13
  "/** biome-ignore-all assist/source/useSortedKeys: its sorted by type */\nconst errorCodes = {\n /**\n * Core\n */\n core_estimated_max_spendable_chain_not_supported: 10001,\n core_extend_error: 10002,\n core_inbound_data_not_found: 10003,\n core_approve_asset_address_or_from_not_found: 10004,\n core_plugin_not_found: 10005,\n core_plugin_swap_not_found: 10006,\n core_approve_asset_target_invalid: 10007,\n core_explorer_unsupported_chain: 10008,\n core_verify_message_not_supported: 10009,\n core_chain_halted: 10010,\n /**\n * Core - Wallet\n */\n core_wallet_connection_not_found: 10101,\n core_wallet_ctrl_not_installed: 10102,\n core_wallet_evmwallet_not_installed: 10103,\n core_wallet_walletconnect_not_installed: 10104,\n core_wallet_keystore_not_installed: 10105,\n core_wallet_ledger_not_installed: 10106,\n core_wallet_trezor_not_installed: 10107,\n core_wallet_keplr_not_installed: 10108,\n core_wallet_okx_not_installed: 10109,\n core_wallet_keepkey_not_installed: 10110,\n core_wallet_talisman_not_installed: 10111,\n core_wallet_not_keypair_wallet: 10112,\n core_wallet_sign_message_not_supported: 10113,\n core_wallet_connection_failed: 10114,\n core_wallet_create_not_supported: 10115,\n /**\n * Core - Swap\n */\n core_swap_invalid_params: 10201,\n core_swap_route_not_complete: 10202,\n core_swap_asset_not_recognized: 10203,\n core_swap_contract_not_found: 10204,\n core_swap_route_transaction_not_found: 10205,\n core_swap_contract_not_supported: 10206,\n core_swap_transaction_error: 10207,\n core_swap_quote_mode_not_supported: 10208,\n /**\n * Core - Transaction\n */\n core_transaction_deposit_error: 10301,\n core_transaction_create_liquidity_base_error: 10302,\n core_transaction_create_liquidity_asset_error: 10303,\n core_transaction_create_liquidity_invalid_params: 10304,\n core_transaction_add_liquidity_invalid_params: 10305,\n core_transaction_add_liquidity_base_address: 10306,\n core_transaction_add_liquidity_base_error: 10307,\n core_transaction_add_liquidity_asset_error: 10308,\n core_transaction_withdraw_error: 10309,\n core_transaction_deposit_to_pool_error: 10310,\n core_transaction_deposit_insufficient_funds_error: 10311,\n core_transaction_deposit_gas_error: 10312,\n core_transaction_invalid_sender_address: 10313,\n core_transaction_deposit_server_error: 10314,\n core_transaction_user_rejected: 10315,\n core_transaction_failed: 10316,\n core_transaction_invalid_recipient_address: 10317,\n /**\n * Wallets - General\n */\n wallet_connection_rejected_by_user: 20001,\n wallet_missing_api_key: 20002,\n wallet_chain_not_supported: 20003,\n wallet_missing_params: 20004,\n wallet_provider_not_found: 20005,\n wallet_failed_to_add_or_switch_network: 20006,\n /**\n * Wallets - Ledger\n */\n wallet_ledger_connection_error: 20101,\n wallet_ledger_connection_claimed: 20102,\n wallet_ledger_get_address_error: 20103,\n wallet_ledger_device_not_found: 20104,\n wallet_ledger_device_locked: 20105,\n wallet_ledger_transport_error: 20106,\n wallet_ledger_public_key_error: 20107,\n wallet_ledger_derivation_path_error: 20108,\n wallet_ledger_signing_error: 20109,\n wallet_ledger_app_not_open: 20110,\n wallet_ledger_invalid_response: 20111,\n wallet_ledger_method_not_supported: 20112,\n wallet_ledger_invalid_params: 20113,\n wallet_ledger_invalid_signature: 20114,\n wallet_ledger_no_provider: 20115,\n wallet_ledger_pubkey_not_found: 20116,\n wallet_ledger_transport_not_defined: 20117,\n wallet_ledger_webusb_not_supported: 20118,\n wallet_ledger_chain_not_supported: 20119,\n wallet_ledger_invalid_asset: 20120,\n wallet_ledger_invalid_account: 20121,\n wallet_ledger_address_not_found: 20122,\n wallet_ledger_failed_to_get_address: 20123,\n wallet_ledger_webhid_not_supported: 20124,\n /**\n * Wallets - Phantom\n */\n wallet_phantom_not_found: 20201,\n /**\n * Wallets - Ctrl\n */\n wallet_ctrl_not_found: 20301,\n wallet_ctrl_send_transaction_no_address: 20302,\n wallet_ctrl_contract_address_not_provided: 20303,\n wallet_ctrl_asset_not_defined: 20304,\n /**\n * Wallets - WalletConnect\n */\n wallet_walletconnect_project_id_not_specified: 20401,\n wallet_walletconnect_connection_not_established: 20402,\n wallet_walletconnect_namespace_not_supported: 20403,\n wallet_walletconnect_chain_not_supported: 20404,\n wallet_walletconnect_invalid_method: 20405,\n wallet_walletconnect_method_not_supported: 20406,\n /**\n * Wallets - Trezor\n */\n wallet_trezor_failed_to_sign_transaction: 20501,\n wallet_trezor_derivation_path_not_supported: 20502,\n wallet_trezor_failed_to_get_address: 20503,\n wallet_trezor_transport_error: 20504,\n wallet_trezor_method_not_supported: 20505,\n /**\n * Wallets - Talisman\n */\n wallet_talisman_not_enabled: 20601,\n wallet_talisman_not_found: 20602,\n /**\n * Wallets - Polkadot\n */\n wallet_polkadot_not_found: 20701,\n /**\n * Wallets - Radix\n */\n wallet_radix_not_found: 20801,\n wallet_radix_transaction_failed: 20802,\n wallet_radix_invalid_manifest: 20803,\n wallet_radix_method_not_supported: 20804,\n wallet_radix_no_account: 20805,\n /**\n * Wallets - KeepKey\n */\n wallet_keepkey_not_found: 20901,\n wallet_keepkey_asset_not_defined: 20902,\n wallet_keepkey_contract_address_not_provided: 20903,\n wallet_keepkey_send_transaction_no_address: 20904,\n wallet_keepkey_derivation_path_error: 20905,\n wallet_keepkey_signing_error: 20906,\n wallet_keepkey_transport_error: 20907,\n wallet_keepkey_unsupported_chain: 20908,\n wallet_keepkey_invalid_response: 20909,\n wallet_keepkey_chain_not_supported: 20910,\n wallet_keepkey_signer_not_found: 20911,\n wallet_keepkey_no_accounts: 20912,\n wallet_keepkey_method_not_supported: 20913,\n wallet_keepkey_invalid_params: 20914,\n wallet_keepkey_config_not_found: 20915,\n wallet_keepkey_no_provider: 20916,\n wallet_keepkey_account_not_found: 20917,\n /**\n * Wallets - BitKeep/BitGet\n */\n wallet_bitkeep_not_found: 21001,\n wallet_bitkeep_failed_to_switch_network: 21002,\n wallet_bitkeep_no_accounts: 21003,\n /**\n * Wallets - Passkeys\n */\n wallet_passkeys_sign_transaction_error: 21101,\n wallet_passkeys_not_found: 21102,\n wallet_passkeys_no_address: 21103,\n wallet_passkeys_request_canceled: 21104,\n wallet_passkeys_signature_canceled: 21105,\n wallet_passkeys_failed_to_switch_network: 21106,\n wallet_passkeys_chain_not_supported: 21107,\n wallet_passkeys_instance_missing: 21108,\n /**\n * Wallets - OneKey\n */\n wallet_onekey_not_found: 21201,\n wallet_onekey_sign_transaction_error: 21202,\n /**\n * Wallets - OKX\n */\n wallet_okx_not_found: 21301,\n wallet_okx_chain_not_supported: 21302,\n wallet_okx_failed_to_switch_network: 21303,\n wallet_okx_no_accounts: 21304,\n /**\n * Wallets - Keplr\n */\n wallet_keplr_not_found: 21401,\n wallet_keplr_chain_not_supported: 21402,\n wallet_keplr_signer_not_found: 21403,\n wallet_keplr_no_accounts: 21404,\n /**\n * Wallets - Cosmostation\n */\n wallet_cosmostation_not_found: 21501,\n wallet_cosmostation_chain_not_supported: 21502,\n wallet_cosmostation_evm_provider_not_found: 21503,\n wallet_cosmostation_keplr_provider_not_found: 21504,\n wallet_cosmostation_no_accounts: 21505,\n wallet_cosmostation_no_evm_accounts: 21506,\n wallet_cosmostation_no_evm_address: 21507,\n wallet_cosmostation_signer_not_found: 21508,\n /**\n * Wallets - ###EMPTY### 21601\n */\n\n /**\n * Wallets - Coinbase\n */\n wallet_coinbase_not_found: 21701,\n wallet_coinbase_chain_not_supported: 21702,\n wallet_coinbase_method_not_supported: 21703,\n wallet_coinbase_no_accounts: 21704,\n /**\n * Wallets - EVM Extensions\n */\n wallet_evm_extensions_failed_to_switch_network: 21801,\n wallet_evm_extensions_no_provider: 21802,\n wallet_evm_extensions_not_found: 21803,\n /**\n * Wallets - Keystore\n */\n wallet_keystore_invalid_password: 21901,\n wallet_keystore_unsupported_version: 21902,\n /**\n * Wallets - Near Extensions\n */\n wallet_near_extensions_failed_to_switch_network: 22001,\n wallet_near_extensions_no_provider: 22002,\n wallet_near_extensions_not_found: 22003,\n wallet_near_method_not_supported: 22003,\n /**\n * Wallets - Vultisig\n */\n wallet_vultisig_not_found: 22101,\n wallet_vultisig_contract_address_not_provided: 22102,\n wallet_vultisig_asset_not_defined: 22103,\n wallet_vultisig_send_transaction_no_address: 22104,\n\n /**\n * Wallets - Xaman\n */\n wallet_xaman_not_configured: 23001,\n wallet_xaman_not_connected: 23002,\n wallet_xaman_auth_failed: 23003,\n wallet_xaman_connection_failed: 23004,\n wallet_xaman_transaction_failed: 23005,\n wallet_xaman_monitoring_failed: 23006,\n /**\n * Wallets - TronLink\n */\n wallet_tronlink_request_accounts_failed: 24001,\n wallet_tronlink_locked: 24002,\n\n /**\n * Chainflip\n */\n chainflip_channel_error: 30001,\n chainflip_unknown_asset: 30002,\n /**\n * Chainflip - Broker\n */\n chainflip_broker_invalid_params: 30101,\n chainflip_broker_recipient_error: 30102,\n chainflip_broker_register: 30103,\n chainflip_broker_tx_error: 30104,\n chainflip_broker_withdraw: 30105,\n chainflip_broker_fund_only_flip_supported: 30106,\n chainflip_broker_fund_invalid_address: 30107,\n /**\n * THORChain\n */\n thorchain_chain_halted: 40001,\n thorchain_trading_halted: 40002,\n thorchain_asset_is_not_tcy: 40003,\n /**\n * THORChain - Swap\n */\n thorchain_swapin_router_required: 40101,\n thorchain_swapin_vault_required: 40102,\n thorchain_swapin_memo_required: 40103,\n thorchain_swapin_token_required: 40104,\n thorchain_preferred_asset_payout_required: 40105,\n /**\n * Toolboxes - Cosmos\n */\n toolbox_cosmos_account_not_found: 50101,\n toolbox_cosmos_invalid_fee: 50102,\n toolbox_cosmos_invalid_params: 50103,\n toolbox_cosmos_no_signer: 50104,\n toolbox_cosmos_not_supported: 50105,\n toolbox_cosmos_signer_not_defined: 50106,\n toolbox_cosmos_validate_address_prefix_not_found: 50107,\n toolbox_cosmos_verify_signature_no_pubkey: 50108,\n /**\n * Toolboxes - EVM\n */\n toolbox_evm_error_estimating_gas_limit: 50201,\n toolbox_evm_error_sending_transaction: 50202,\n toolbox_evm_gas_estimation_error: 50203,\n toolbox_evm_invalid_gas_asset_address: 50204,\n toolbox_evm_invalid_params: 50205,\n toolbox_evm_invalid_transaction: 50206,\n toolbox_evm_no_abi_fragment: 50207,\n toolbox_evm_no_contract_address: 50208,\n toolbox_evm_no_fee_data: 50209,\n toolbox_evm_no_from_address: 50210,\n toolbox_evm_no_gas_price: 50211,\n toolbox_evm_no_signer_address: 50212,\n toolbox_evm_no_signer: 50213,\n toolbox_evm_no_to_address: 50214,\n toolbox_evm_not_supported: 50215,\n toolbox_evm_provider_not_eip1193_compatible: 50216,\n /**\n * Toolboxes - UTXO\n */\n toolbox_utxo_api_error: 50301,\n toolbox_utxo_broadcast_failed: 50302,\n toolbox_utxo_insufficient_balance: 50303,\n toolbox_utxo_invalid_address: 50304,\n toolbox_utxo_invalid_params: 50305,\n toolbox_utxo_invalid_transaction: 50306,\n toolbox_utxo_no_signer: 50307,\n toolbox_utxo_not_supported: 50308,\n /**\n * Toolboxes - Solana\n */\n toolbox_solana_no_signer: 50401,\n toolbox_solana_fee_estimation_failed: 50402,\n /**\n * Toolboxes - Substrate\n */\n toolbox_substrate_not_supported: 50501,\n toolbox_substrate_transfer_error: 50502,\n /**\n * Toolboxes - Radix\n */\n toolbox_radix_method_not_supported: 50601,\n /**\n * Toolboxes - Ripple\n */\n toolbox_ripple_get_balance_error: 50701,\n toolbox_ripple_rpc_not_configured: 50702,\n toolbox_ripple_signer_not_found: 50703,\n toolbox_ripple_asset_not_supported: 50704,\n toolbox_ripple_broadcast_error: 50705,\n /**\n * Toolboxes - Tron\n */\n toolbox_tron_no_signer: 50801,\n toolbox_tron_invalid_token_identifier: 50802,\n toolbox_tron_token_transfer_failed: 50803,\n toolbox_tron_transaction_creation_failed: 50804,\n toolbox_tron_fee_estimation_failed: 50805,\n toolbox_tron_trongrid_api_error: 50806,\n toolbox_tron_approve_failed: 50807,\n toolbox_tron_invalid_token_contract: 50808,\n toolbox_tron_allowance_check_failed: 50809,\n /**\n * Toolboxes - Near\n */\n toolbox_near_no_signer: 90601,\n toolbox_near_invalid_address: 90602,\n toolbox_near_invalid_amount: 90603,\n toolbox_near_transfer_failed: 90604,\n toolbox_near_access_key_error: 90605,\n toolbox_near_no_rpc_url: 90606,\n toolbox_near_empty_batch: 90607,\n toolbox_near_balance_failed: 90608,\n toolbox_near_invalid_name: 90609,\n toolbox_near_missing_contract_address: 90610,\n toolbox_near_no_account: 90611,\n toolbox_near_invalid_gas_params: 90612,\n toolbox_near_no_public_key_found: 90613,\n /**\n * Toolboxes - SUI\n */\n toolbox_sui_address_required: 90701,\n toolbox_sui_keypair_required: 90702,\n toolbox_sui_balance_error: 90703,\n toolbox_sui_transaction_creation_error: 90704,\n toolbox_sui_signing_error: 90705,\n toolbox_sui_broadcast_error: 90706,\n toolbox_sui_no_signer: 90707,\n toolbox_sui_no_sender: 90708,\n /**\n * Toolboxes - General\n */\n toolbox_not_supported: 59901,\n /**\n * NEAR Plugin\n */\n plugin_near_invalid_name: 41001,\n plugin_near_no_connection: 41002,\n plugin_near_name_unavailable: 41003,\n plugin_near_registration_failed: 41004,\n plugin_near_transfer_failed: 41005,\n /**\n * Garden Plugin\n */\n plugin_garden_missing_data: 42001,\n /**\n * SwapKit API\n */\n api_v2_invalid_response: 60001,\n api_v2_server_error: 60002,\n api_v2_invalid_method_key_hash: 60003,\n /**\n * Helpers\n */\n helpers_invalid_number_different_decimals: 70001,\n helpers_invalid_number_of_years: 70002,\n helpers_invalid_identifier: 70003,\n helpers_invalid_asset_url: 70004,\n helpers_invalid_asset_identifier: 70005,\n helpers_invalid_memo_type: 70006,\n helpers_failed_to_switch_network: 70007,\n helpers_not_found_provider: 70008,\n helpers_chain_not_supported: 70009,\n helpers_invalid_params: 70010,\n helpers_invalid_response: 70011,\n helpers_chain_no_public_or_set_rpc_url: 70012,\n /**\n * Anything else\n */\n not_implemented: 99999,\n} as const;\n\nexport type ErrorKeys = keyof typeof errorCodes;\n\nexport class SwapKitError extends Error {\n static ErrorCode = errorCodes;\n\n constructor(\n errorOrErrorKey: ErrorKeys | { errorKey: ErrorKeys; info?: Record<string, any> },\n sourceErrorOrInfo?: any,\n ) {\n const isErrorString = typeof errorOrErrorKey === \"string\";\n const errorKey = isErrorString ? errorOrErrorKey : errorOrErrorKey.errorKey;\n const info = isErrorString ? undefined : errorOrErrorKey.info;\n const message = `${errorKey}${info ? `: ${JSON.stringify(info)}` : \"\"}`;\n\n super(message);\n Object.setPrototypeOf(this, SwapKitError.prototype);\n\n this.name = \"SwapKitError\";\n this.cause = sourceErrorOrInfo;\n\n // Log errors for debugging - bundlers can strip this in production if needed\n if (sourceErrorOrInfo) {\n const errorMsg =\n sourceErrorOrInfo instanceof Error\n ? `${sourceErrorOrInfo.message}${sourceErrorOrInfo.cause ? ` (${sourceErrorOrInfo.cause})` : \"\"}`\n : JSON.stringify(sourceErrorOrInfo);\n console.error(`SwapKitError [${errorKey}]: ${errorMsg}`);\n } else if (info) {\n console.error(`SwapKitError [${errorKey}]: ${JSON.stringify(info)}`);\n }\n }\n}\n",
14
14
  "import { SKConfig } from \"./swapKitConfig\";\nimport { SwapKitError } from \"./swapKitError\";\n\ntype RetryConfig = { maxRetries?: number; baseDelay?: number; maxDelay?: number; backoffMultiplier?: number };\n\ntype Options = RequestInit & {\n /**\n * @deprecated @V4 Use onSuccess instead - will be removed in next major\n */\n responseHandler?: (response: any) => any;\n json?: unknown;\n onError?: (error: any) => any;\n onSuccess?: (response: any) => any;\n searchParams?: Record<string, string>;\n dynamicHeader?: () => Record<string, string> | {};\n retry?: RetryConfig;\n timeoutMs?: number;\n abortController?: AbortController;\n};\n\nconst sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\nconst calculateDelay = (attempt: number, { baseDelay, backoffMultiplier, maxDelay }: any) =>\n Math.min(baseDelay * backoffMultiplier ** attempt, maxDelay);\n\nconst makeRequest = async (url: string, config: RequestInit) => {\n const response = await fetch(url, config);\n\n if (!response.ok) {\n const errorData = { status: response.status, statusText: response.statusText };\n throw new SwapKitError({ errorKey: \"helpers_invalid_response\", info: errorData }, errorData);\n }\n return response.json();\n};\n\nfunction fetchWithConfig(method: \"GET\" | \"POST\", extendOptions: Options = {}) {\n return async function methodFetchWithConfig<T>(url: string, options: Options = {}): Promise<T> {\n const {\n searchParams,\n json,\n body,\n headers,\n dynamicHeader,\n retry,\n timeoutMs,\n abortController,\n onError,\n onSuccess,\n responseHandler,\n ...fetchOptions\n } = { ...extendOptions, ...options };\n const requestOptions = SKConfig.get(\"requestOptions\");\n\n const retryConfig = { ...requestOptions.retry, ...retry };\n const isJson = !!json || url.endsWith(\".json\");\n const requestUrl = buildUrl(url, searchParams);\n const requestHeaders = buildHeaders(isJson, { ...headers, ...dynamicHeader?.() });\n const requestBody = isJson ? JSON.stringify(json) : body;\n\n let lastError: any;\n\n for (let attempt = 0; attempt <= retryConfig.maxRetries; attempt++) {\n const controller = abortController || new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeoutMs || requestOptions.timeoutMs);\n\n try {\n const result = await makeRequest(requestUrl, {\n ...fetchOptions,\n body: requestBody,\n headers: requestHeaders,\n method,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n return onSuccess?.(result) || responseHandler?.(result) || result;\n } catch (error) {\n clearTimeout(timeoutId);\n lastError = error;\n\n if (attempt >= retryConfig.maxRetries) {\n return onError ? onError(error) : Promise.reject(error);\n }\n\n await sleep(calculateDelay(attempt, retryConfig));\n }\n }\n\n return onError ? onError(lastError) : Promise.reject(lastError);\n };\n}\n\nfunction buildHeaders(isJson: boolean, headers?: HeadersInit) {\n return { ...headers, ...(isJson && { \"Content-Type\": \"application/json\" }) };\n}\n\nfunction buildUrl(url: string, searchParams?: Record<string, string>) {\n const urlInstance = new URL(url);\n if (searchParams) urlInstance.search = new URLSearchParams(searchParams).toString();\n return urlInstance.toString();\n}\n\nexport const RequestClient = {\n extend: (extendOptions: Options) => ({\n extend: (newOptions: Options) => RequestClient.extend({ ...extendOptions, ...newOptions }),\n get: fetchWithConfig(\"GET\", extendOptions),\n post: fetchWithConfig(\"POST\", extendOptions),\n }),\n get: fetchWithConfig(\"GET\"),\n post: fetchWithConfig(\"POST\"),\n};\n",
15
15
  "import { Chain, CosmosChains, EVMChains, type StagenetChain, StagenetChains, UTXOChains } from \"@swapkit/types\";\nimport { match } from \"ts-pattern\";\nimport { SKConfig } from \"../modules/swapKitConfig\";\nimport { SwapKitError } from \"../modules/swapKitError\";\nimport { warnOnce } from \"./others\";\n\nfunction getRpcBody(chain: Chain | StagenetChain) {\n return match(chain)\n .with(...EVMChains, () => ({ id: 1, jsonrpc: \"2.0\", method: \"eth_blockNumber\", params: [] }))\n .with(...UTXOChains, () => ({ id: \"test\", jsonrpc: \"1.0\", method: \"getblockchaininfo\", params: [] }))\n .with(...CosmosChains, ...StagenetChains, () => ({ id: 1, jsonrpc: \"2.0\", method: \"status\", params: {} }))\n .with(Chain.Polkadot, Chain.Chainflip, () => ({ id: 1, jsonrpc: \"2.0\", method: \"system_health\", params: [] }))\n .with(Chain.Solana, () => ({ id: 1, jsonrpc: \"2.0\", method: \"getHealth\" }))\n .with(Chain.Sui, () => ({ id: 1, jsonrpc: \"2.0\", method: \"sui_getSystemState\", params: [] }))\n .with(Chain.Ton, () => ({ id: 1, jsonrpc: \"2.0\", method: \"getAddressInformation\", params: { address: \"\" } }))\n .with(Chain.Tron, Chain.Radix, () => \"\")\n .with(Chain.Near, () => ({ id: \"dontcare\", jsonrpc: \"2.0\", method: \"status\", params: [] }))\n .with(Chain.Ripple, () => ({ id: 1, jsonrpc: \"2.0\", method: \"ping\", params: [{}] }))\n .otherwise(() => {\n throw new SwapKitError(\"helpers_chain_not_supported\", { chain });\n });\n}\n\nfunction getChainStatusEndpoint(chain: Chain | StagenetChain) {\n return match(chain)\n .with(Chain.Radix, () => \"/status/network-configuration\")\n .with(Chain.Tron, () => \"/wallet/getnowblock\")\n .otherwise(() => \"\");\n}\n\nasync function testRPCConnection(chain: Chain | StagenetChain, url: string) {\n try {\n const endpoint = url.startsWith(\"wss\") ? url.replace(\"wss\", \"https\") : url;\n const response = await fetch(`${endpoint}${getChainStatusEndpoint(chain)}`, {\n body: JSON.stringify(getRpcBody(chain)),\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n signal: AbortSignal.timeout(3000),\n });\n\n return response.ok;\n } catch {\n return false;\n }\n}\n\nconst rpcCache = new Map<Chain | StagenetChain, { timestamp: number; url: string }>();\nconst rpcCacheTTL = 1000 * 60 * 2; // 2 minutes\n\nexport async function getRPCUrl(chain: Chain | StagenetChain) {\n const { isStagenet } = SKConfig.get(\"envs\");\n const [rpcUrl = \"\", ...fallbackUrls] = SKConfig.get(\"rpcUrls\")[chain];\n\n if (!rpcUrl) {\n warnOnce({\n condition: true,\n id: \"helpers_chain_no_public_or_set_rpc_url\",\n warning: `No public or set RPC URL found for chain. Please ensure you configured rpcUrls for ${chain}.`,\n });\n throw new SwapKitError(\"helpers_chain_no_public_or_set_rpc_url\", { chain });\n }\n\n if (isStagenet) return rpcUrl;\n\n const cached = rpcCache.get(chain);\n if (cached && Date.now() - cached.timestamp < rpcCacheTTL) {\n return cached.url;\n }\n\n const primaryIsWorking = await testRPCConnection(chain, rpcUrl);\n\n if (!primaryIsWorking) {\n for (const fallbackUrl of fallbackUrls) {\n const fallbackIsWorking = await testRPCConnection(chain, fallbackUrl);\n\n if (fallbackIsWorking) {\n rpcCache.set(chain, { timestamp: Date.now(), url: fallbackUrl });\n return fallbackUrl;\n }\n }\n }\n\n rpcCache.set(chain, { timestamp: Date.now(), url: rpcUrl });\n return rpcUrl;\n}\n\n/**\n * @deprecated\n * RPC URLs are now managed dynamically via SKConfig.\n * Please use static { rpcUrls, fallbackRpcUrls } SwapKit init config or dynamic SKConfig.setRpcUrl/setFallbackRpcUrl to configure RPC endpoints.\n * This function is obsolete and will be removed in a future release.\n */\nexport function initializeRPCUrlsWithFallback(_chains: never) {\n warnOnce({\n condition: true,\n id: \"initializeRPCUrlsWithFallback\",\n warning:\n \"initializeRPCUrlsWithFallback is deprecated. Use static { rpcUrls, fallbackRpcUrls } SwapKit init config or dynamic SKConfig.setRpcUrl/setFallbackRpcUrl to configure RPC endpoints.\",\n });\n}\n",
package/dist/index.js.map CHANGED
@@ -9,7 +9,7 @@
9
9
  "import { AllChains, type Chain, getChainConfig } from \"@swapkit/types\";\n\nexport type DerivationPathArray = ReturnType<typeof getChainConfig>[\"networkDerivationPath\"];\n\nexport const NetworkDerivationPath = AllChains.reduce(\n (acc, chain) => {\n acc[chain] = getChainConfig(chain).networkDerivationPath;\n return acc;\n },\n {} as Record<Chain, DerivationPathArray>,\n);\n",
10
10
  "export enum ErrorCode {\n unknownError = \"unknownError\",\n test_error = \"test_error\",\n providerDetailsError = \"providerDetailsError\",\n blockHeaderNotFound = \"blockHeaderNotFound\",\n blockHashNotFoundAtHeight = \"blockHashNotFoundAtHeight\",\n blockHashNotFoundAtHash = \"blockHashNotFoundAtHash\",\n txHashMissing = \"txHashMissing\",\n assetValueMissingInfo = \"assetValueMissingInfo\",\n invalidAsset = \"invalidAsset\",\n blockIsRequired = \"blockIsRequired\",\n currentBlockHeaderNotFound = \"currentBlockHeaderNotFound\",\n failedToRetrieveBalance = \"failedToRetrieveBalance\",\n failedToRetrieveBlock = \"failedToRetrieveBlock\",\n failedToRetrieveFees = \"failedToRetrieveFees\",\n notImplementedBCH = \"notImplementedBCH\",\n notImplementedDoge = \"notImplementedDoge\",\n noPoolsFound = \"noPoolsFound\",\n noVaultsFound = \"noVaultsFound\",\n noTxFound = \"noTxFound\",\n noInputCoinFound = \"noInputCoinFound\",\n noBlockDataFound = \"noBlockDataFound\",\n multipleCosmosMessages = \"multipleCosmosMessages\",\n heightOrHashNotProvided = \"heightOrHashNotProvided\",\n unknownDenom = \"unknownDenom\",\n invalidBlockHeight = \"invalidBlockHeight\",\n timestampExtrinsicNoArgumentsForBlock = \"timestampExtrinsicNoArgumentsForBlock\",\n timestampExtrinsicNoTimestampForBlock = \"timestampExtrinsicNoTimestampForBlock\",\n noTimestampExtrinsicForHash = \"noTimestampExtrinsicForHash\",\n timestampExtrinsicNoArgumentsForHash = \"timestampExtrinsicNoArgumentsForHash\",\n txMemoUndefined = \"txMemoUndefined\",\n txMemoIncorrect = \"txMemoIncorrect\",\n txTypeNotFound = \"txTypeNotFound\",\n txNoMessage = \"txNoMessage\",\n txNotFound = \"txNotFound\",\n txReceiptNotFound = \"txReceiptNotFound\",\n txParsingError = \"txParsingError\",\n txLogsParsingError = \"txLogsParsingError\",\n blockNotFound = \"blockNotFound\",\n balanceNotFound = \"balanceNotFound\",\n configError = \"configError\",\n synthSwapDisallowed = \"synthSwapDisallowed\",\n providerQuoteTimeout = \"providerQuoteTimeout\",\n noQuoteResponse = \"noQuoteResponse\",\n noPoolAssetsFound = \"noPoolAssetsFound\",\n noThorchainPools = \"noThorchainPools\",\n noMayachainPools = \"noMayachainPools\",\n noThorchainNetworkInfo = \"noThorchainNetworkInfo\",\n invalidAffiliateFee = \"invalidAffiliateFee\",\n invalidBuyAssetAddress = \"invalidBuyAssetAddress\",\n invalidSellAssetAddress = \"invalidSellAssetAddress\",\n invalidSourceAddress = \"invalidSourceAddress\",\n invalidDestinationAddress = \"invalidDestinationAddress\",\n sourceAddressIsSmartContract = \"sourceAddressIsSmartContract\",\n destinationAddressIsSmartContract = \"destinationAddressIsSmartContract\",\n invalidChainId = \"invalidChainId\",\n unsupportedChainId = \"unsupportedChainId\",\n unsupportedEVMChainId = \"unsupportedEVMChainId\",\n unsupportedMethod = \"unsupportedMethod\",\n unsupportedProvider = \"unsupportedProvider\",\n invalidParamsForMethod = \"invalidParamsForMethod\",\n unsupportedAdapter = \"unsupportedAdapter\",\n noWhitelistTokens = \"noWhitelistTokens\",\n failedFetchGasPrice = \"failedFetchGasPrice\",\n failedToCreateDepositChannel = \"failedToCreateDepositChannel\",\n noProviderDetailsFound = \"noProviderDetailsFound\",\n noTokenListsFound = \"noTokenListsFound\",\n tokenNotFound = \"tokenNotFound\",\n tokenPriceNotFound = \"tokenPriceNotFound\",\n tokenPriceFailedToUpdate = \"tokenPriceFailedToUpdate\",\n swapAmountTooSmall = \"swapAmountTooSmall\",\n legsArrayIsEmpty = \"legsArrayIsEmpty\",\n failedToFetchQuoteForLeg = \"failedToFetchQuoteForLeg\",\n noBlockHeaderFound = \"noBlockHeaderFound\",\n failedToSimulateSwap = \"failedToSimulateSwap\",\n addressScreeningFailed = \"addressScreeningFailed\",\n noLiquidtyProvidersFound = \"noLiquidtyProvidersFound\",\n insufficientLiquidity = \"insufficientLiquidity\",\n noInboundDataFound = \"noInbounDataFound\",\n noInboundAddressesFound = \"noInboundAddressesFound\",\n noInboundAddressFoundForChain = \"noInboundAddressFoundForChain\",\n noLastBlocksFound = \"noLastBlocksFound\",\n noVersionFound = \"noVersionFound\",\n noConstantsFound = \"noConstantsFound\",\n noMimirsFound = \"noMimirsFound\",\n noRoutesFound = \"noRoutesFound\",\n quoteNotFound = \"quoteNotFound\",\n ledgerSignFailed = \"ledgerSignFailed\",\n ledgerWrongPayload = \"ledgerWrongPayload\",\n ledgerFetchSwapFailed = \"ledgerFetchSwapFailed\",\n failedToFetchTx = \"failedToFetchTx\",\n failedBuildTransactionDetails = \"failedBuildTransactionDetails\",\n noLegsForRoute = \"noLegsForRoute\",\n noRouterAddressFound = \"noRouterAddressFound\",\n noAggregatorAddressFound = \"noAggregatorAddressFound\",\n noContractInstanceFound = \"noContractInstanceFound\",\n noContractAddressFound = \"noContractAddressFound\",\n invalidAffiliate = \"invalidAffiliate\",\n thornameAffiliate = \"thornameAffiliate\",\n providerNotfound = \"No provider found\",\n noRecordFound = \"No Record found\",\n slippageTooLow = \"Slippage too low\",\n tradingHalted = \"tradingHalted\",\n noWrappedGasAsset = \"noWrappedGasAsset\",\n aggregatorAddressNotFound = \"aggregatorAddressNotFound\",\n routerAddressNotFound = \"routerAddressNotFound\",\n dummyAddressNotFound = \"dummyAddressNotFound\",\n trackerError = \"trackerError\",\n thorchainPoolUnavailable = \"thorchainPoolUnavailable\",\n noOhlcvDataFound = \"noOhlcvDataFound\",\n noTradingPairs = \"noTradingPairs\",\n noLendingAvailability = \"noLendingAvailability\",\n lendingRepayTooSmall = \"lendingRepayTooSmall\",\n missingState = \"missingState\",\n ledgerSwapNotFound = \"ledgerSwapNotFound\",\n ledgerSwapNotReadyForTracking = \"ledgerSwapNotReadyForTracking\",\n errorEstimatingGas = \"errorEstimatingGas\",\n apiKeyInvalid = \"apiKeyInvalid\",\n apiKeyFailedToUpdate = \"apiKeyFailedToUpdate\",\n apiKeyExpired = \"apiKeyExpired\",\n unauthorized = \"unauthorized\",\n failedToCreateMemo = \"failedToCreateMemo\",\n radixIncorrectInstructions = \"radixIncorrectInstructions\",\n radixTxMissedParam = \"radixTxMissedParam\",\n radixTxMissedAccount = \"radixTxMissedAccount\",\n radixManifestParseError = \"radixManifestParseError\",\n radixManifestBuildError = \"radixManifestBuildError\",\n invalidAddressForChain = \"invalidAddressForChain\",\n riskyAddress = \"riskyAddress\",\n noRoutesToProcess = \"noRoutesToProcess\",\n sellAssetAmountTooSmall = \"sellAssetAmountTooSmall\",\n missingPrivateKey = \"missingPrivateKey\",\n noMemoPriceProtection = \"noMemoPriceProtection\",\n}\n\nexport enum WarningCodeEnum {\n highSlippage = \"highSlippage\",\n highPriceImpact = \"highPriceImpact\",\n}\n\nexport enum ProviderName {\n CAVIAR_V1 = \"CAVIAR_V1\",\n CAMELOT_V3 = \"CAMELOT_V3\",\n CHAINFLIP = \"CHAINFLIP\",\n CHAINFLIP_STREAMING = \"CHAINFLIP_STREAMING\",\n JUPITER = \"JUPITER\",\n MAYACHAIN = \"MAYACHAIN\",\n MAYACHAIN_STREAMING = \"MAYACHAIN_STREAMING\",\n OCISWAP_V1 = \"OCISWAP_V1\",\n ONEINCH = \"ONEINCH\",\n OPENOCEAN_V2 = \"OPENOCEAN_V2\",\n PANCAKESWAP = \"PANCAKESWAP\",\n PANGOLIN_V1 = \"PANGOLIN_V1\",\n SUSHISWAP_V2 = \"SUSHISWAP_V2\",\n THORCHAIN = \"THORCHAIN\",\n THORCHAIN_STREAMING = \"THORCHAIN_STREAMING\",\n TRADERJOE_V2 = \"TRADERJOE_V2\",\n UNISWAP_V2 = \"UNISWAP_V2\",\n UNISWAP_V3 = \"UNISWAP_V3\",\n NEAR = \"NEAR\",\n GARDEN = \"GARDEN\",\n OKX = \"OKX\",\n}\n\nexport enum FeeTypeEnum {\n LIQUIDITY = \"liquidity\",\n NETWORK = \"network\",\n INBOUND = \"inbound\",\n OUTBOUND = \"outbound\",\n AFFILIATE = \"affiliate\",\n TAX = \"tax\",\n PRIORITY = \"priority\",\n SERVICE = \"service\",\n}\n",
11
11
  "import type { AssetValue } from \"../modules/assetValue\";\n\nexport type GenericSwapParams<T = unknown> = {\n buyAsset?: AssetValue;\n sellAsset?: AssetValue;\n recipient?: string;\n feeOptionKey?: FeeOption;\n route: T;\n};\n\nexport type SwapParams<PluginNames = string, R = unknown> = GenericSwapParams<R> & { pluginName?: PluginNames };\n\nexport enum FeeOption {\n Average = \"average\",\n Fast = \"fast\",\n Fastest = \"fastest\",\n}\n\nexport enum ApproveMode {\n Approve = \"approve\",\n CheckOnly = \"checkOnly\",\n}\n\nexport type ApproveReturnType<T extends ApproveMode> = T extends \"checkOnly\" ? Promise<boolean> : Promise<string>;\n\nexport enum MemoType {\n NAME_REGISTER = \"~\",\n BOND = \"BOND\",\n DEPOSIT = \"+\",\n LEAVE = \"LEAVE\",\n UNBOND = \"UNBOND\",\n WITHDRAW = \"-\",\n RUNEPOOL_DEPOSIT = \"POOL+\",\n RUNEPOOL_WITHDRAW = \"POOL-\",\n CLAIM_TCY = \"tcy\",\n STAKE_TCY = \"tcy+\",\n UNSTAKE_TCY = \"tcy-\",\n}\n",
12
- "import type { Chain, getChainConfig } from \"@swapkit/types\";\nimport type { BrowserProvider, Eip1193Provider } from \"ethers\";\n\nimport type { AssetValue } from \"../modules/assetValue\";\nimport type { FeeOption } from \"./sdk\";\n\ndeclare global {\n interface WindowEventMap {\n \"eip6963:announceProvider\": CustomEvent;\n }\n}\n\nexport type EthereumWindowProvider = BrowserProvider & {\n __XDEFI?: boolean;\n isBraveWallet?: boolean;\n isCoinbaseWallet?: boolean;\n isMetaMask?: boolean;\n isOkxWallet?: boolean;\n isKeepKeyWallet?: boolean;\n isTrust?: boolean;\n isTalisman?: boolean;\n on: (event: string, callback?: () => void) => void;\n overrideIsMetaMask?: boolean;\n request: <T = unknown>(args: { method: string; params?: unknown[] }) => Promise<T>;\n selectedProvider?: EthereumWindowProvider;\n};\n\nexport type NetworkParams = {\n chainId: ReturnType<typeof getChainConfig>[\"chainId\"];\n chainName: string;\n nativeCurrency: { name: string; symbol: string; decimals: number };\n rpcUrls: string[];\n blockExplorerUrls: string[];\n};\n\nexport enum WalletOption {\n BITGET = \"BITGET\",\n BRAVE = \"BRAVE\",\n COINBASE_MOBILE = \"COINBASE_MOBILE\",\n COINBASE_WEB = \"COINBASE_WEB\",\n COSMOSTATION = \"COSMOSTATION\",\n CTRL = \"CTRL\",\n EIP6963 = \"EIP6963\",\n /**\n * @deprecated Use PASSKEYS instead\n */\n EXODUS = \"EXODUS\",\n KEEPKEY = \"KEEPKEY\",\n KEEPKEY_BEX = \"KEEPKEY_BEX\",\n KEPLR = \"KEPLR\",\n KEYSTORE = \"KEYSTORE\",\n LEAP = \"LEAP\",\n LEDGER = \"LEDGER\",\n LEDGER_LIVE = \"LEDGER_LIVE\",\n METAMASK = \"METAMASK\",\n OKX = \"OKX\",\n OKX_MOBILE = \"OKX_MOBILE\",\n ONEKEY = \"ONEKEY\",\n PASSKEYS = \"PASSKEYS\",\n PHANTOM = \"PHANTOM\",\n POLKADOT_JS = \"POLKADOT_JS\",\n RADIX_WALLET = \"RADIX_WALLET\",\n TALISMAN = \"TALISMAN\",\n TREZOR = \"TREZOR\",\n TRONLINK = \"TRONLINK\",\n TRUSTWALLET_WEB = \"TRUSTWALLET_WEB\",\n VULTISIG = \"VULTISIG\",\n WALLETCONNECT = \"WALLETCONNECT\",\n WALLET_SELECTOR = \"WALLET_SELECTOR\",\n XAMAN = \"XAMAN\",\n}\n\nexport enum LedgerErrorCode {\n NoError = 0x9000,\n LockedDevice = 0x5515,\n TC_NotFound = 65535,\n}\n\n/**\n * @deprecated CryptoChain has been deprecated - use Chain instead\n */\nexport type CryptoChain = Chain;\n\nexport type ChainWallet<T extends Chain> = {\n chain: T;\n address: string;\n balance: AssetValue[];\n walletType: WalletOption | string;\n disconnect?: () => void;\n signMessage?: (message: string) => Promise<string>;\n};\n\nexport type EmptyWallet = { [key in Chain]?: unknown };\nexport type BaseWallet<T extends EmptyWallet | Record<string, unknown>> = {\n [key in Chain]: ChainWallet<key> & (T extends EmptyWallet ? T[key] : never);\n};\n\nexport type EIP6963ProviderInfo = { walletId: string; uuid: string; name: string; icon: string };\n\nexport type EIP6963ProviderDetail = { info: EIP6963ProviderInfo; provider: Eip1193Provider };\n\nexport type EIP6963Provider = { info: EIP6963ProviderInfo; provider: Eip1193Provider };\n\n// This type represents the structure of an event dispatched by a wallet to announce its presence based on EIP-6963.\nexport type EIP6963AnnounceProviderEvent = Event & { detail: EIP6963Provider };\n\nexport type ChainSigner<T, S> = {\n signTransaction: (params: T) => Promise<S> | S;\n getAddress: () => Promise<string> | string;\n sign?: (message: string) => Promise<string> | string;\n};\n\nexport type GenericTransferParams = {\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n feeRate?: number;\n feeOptionKey?: FeeOption;\n};\n\nexport type GenericCreateTransactionParams = Omit<GenericTransferParams, \"feeOptionKey\" & \"feeRate\"> & {\n sender: string;\n feeRate: number;\n};\n",
12
+ "import type { Chain, getChainConfig } from \"@swapkit/types\";\nimport type { BrowserProvider, Eip1193Provider } from \"ethers\";\n\nimport type { AssetValue } from \"../modules/assetValue\";\nimport type { FeeOption } from \"./sdk\";\n\ndeclare global {\n interface WindowEventMap {\n \"eip6963:announceProvider\": CustomEvent;\n }\n}\n\nexport type EthereumWindowProvider = BrowserProvider & {\n __XDEFI?: boolean;\n isBraveWallet?: boolean;\n isCoinbaseWallet?: boolean;\n isMetaMask?: boolean;\n isOkxWallet?: boolean;\n isKeepKeyWallet?: boolean;\n isTrust?: boolean;\n isTalisman?: boolean;\n on: (event: string, callback?: () => void) => void;\n overrideIsMetaMask?: boolean;\n request: <T = unknown>(args: { method: string; params?: unknown[] }) => Promise<T>;\n selectedProvider?: EthereumWindowProvider;\n};\n\nexport type NetworkParams = {\n chainId: ReturnType<typeof getChainConfig>[\"chainIdHex\"];\n chainName: string;\n nativeCurrency: { name: string; symbol: string; decimals: number };\n rpcUrls: string[];\n blockExplorerUrls: string[];\n};\n\nexport enum WalletOption {\n BITGET = \"BITGET\",\n BRAVE = \"BRAVE\",\n COINBASE_MOBILE = \"COINBASE_MOBILE\",\n COINBASE_WEB = \"COINBASE_WEB\",\n COSMOSTATION = \"COSMOSTATION\",\n CTRL = \"CTRL\",\n EIP6963 = \"EIP6963\",\n /**\n * @deprecated Use PASSKEYS instead\n */\n EXODUS = \"EXODUS\",\n KEEPKEY = \"KEEPKEY\",\n KEEPKEY_BEX = \"KEEPKEY_BEX\",\n KEPLR = \"KEPLR\",\n KEYSTORE = \"KEYSTORE\",\n LEAP = \"LEAP\",\n LEDGER = \"LEDGER\",\n LEDGER_LIVE = \"LEDGER_LIVE\",\n METAMASK = \"METAMASK\",\n OKX = \"OKX\",\n OKX_MOBILE = \"OKX_MOBILE\",\n ONEKEY = \"ONEKEY\",\n PASSKEYS = \"PASSKEYS\",\n PHANTOM = \"PHANTOM\",\n POLKADOT_JS = \"POLKADOT_JS\",\n RADIX_WALLET = \"RADIX_WALLET\",\n TALISMAN = \"TALISMAN\",\n TREZOR = \"TREZOR\",\n TRONLINK = \"TRONLINK\",\n TRUSTWALLET_WEB = \"TRUSTWALLET_WEB\",\n VULTISIG = \"VULTISIG\",\n WALLETCONNECT = \"WALLETCONNECT\",\n WALLET_SELECTOR = \"WALLET_SELECTOR\",\n XAMAN = \"XAMAN\",\n}\n\nexport enum LedgerErrorCode {\n NoError = 0x9000,\n LockedDevice = 0x5515,\n TC_NotFound = 65535,\n}\n\n/**\n * @deprecated CryptoChain has been deprecated - use Chain instead\n */\nexport type CryptoChain = Chain;\n\nexport type ChainWallet<T extends Chain> = {\n chain: T;\n address: string;\n balance: AssetValue[];\n walletType: WalletOption | string;\n disconnect?: () => void;\n signMessage?: (message: string) => Promise<string>;\n};\n\nexport type EmptyWallet = { [key in Chain]?: unknown };\nexport type BaseWallet<T extends EmptyWallet | Record<string, unknown>> = {\n [key in Chain]: ChainWallet<key> & (T extends EmptyWallet ? T[key] : never);\n};\n\nexport type EIP6963ProviderInfo = { walletId: string; uuid: string; name: string; icon: string };\n\nexport type EIP6963ProviderDetail = { info: EIP6963ProviderInfo; provider: Eip1193Provider };\n\nexport type EIP6963Provider = { info: EIP6963ProviderInfo; provider: Eip1193Provider };\n\n// This type represents the structure of an event dispatched by a wallet to announce its presence based on EIP-6963.\nexport type EIP6963AnnounceProviderEvent = Event & { detail: EIP6963Provider };\n\nexport type ChainSigner<T, S> = {\n signTransaction: (params: T) => Promise<S> | S;\n getAddress: () => Promise<string> | string;\n sign?: (message: string) => Promise<string> | string;\n};\n\nexport type GenericTransferParams = {\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n feeRate?: number;\n feeOptionKey?: FeeOption;\n};\n\nexport type GenericCreateTransactionParams = Omit<GenericTransferParams, \"feeOptionKey\" & \"feeRate\"> & {\n sender: string;\n feeRate: number;\n};\n",
13
13
  "/** biome-ignore-all assist/source/useSortedKeys: its sorted by type */\nconst errorCodes = {\n /**\n * Core\n */\n core_estimated_max_spendable_chain_not_supported: 10001,\n core_extend_error: 10002,\n core_inbound_data_not_found: 10003,\n core_approve_asset_address_or_from_not_found: 10004,\n core_plugin_not_found: 10005,\n core_plugin_swap_not_found: 10006,\n core_approve_asset_target_invalid: 10007,\n core_explorer_unsupported_chain: 10008,\n core_verify_message_not_supported: 10009,\n core_chain_halted: 10010,\n /**\n * Core - Wallet\n */\n core_wallet_connection_not_found: 10101,\n core_wallet_ctrl_not_installed: 10102,\n core_wallet_evmwallet_not_installed: 10103,\n core_wallet_walletconnect_not_installed: 10104,\n core_wallet_keystore_not_installed: 10105,\n core_wallet_ledger_not_installed: 10106,\n core_wallet_trezor_not_installed: 10107,\n core_wallet_keplr_not_installed: 10108,\n core_wallet_okx_not_installed: 10109,\n core_wallet_keepkey_not_installed: 10110,\n core_wallet_talisman_not_installed: 10111,\n core_wallet_not_keypair_wallet: 10112,\n core_wallet_sign_message_not_supported: 10113,\n core_wallet_connection_failed: 10114,\n core_wallet_create_not_supported: 10115,\n /**\n * Core - Swap\n */\n core_swap_invalid_params: 10201,\n core_swap_route_not_complete: 10202,\n core_swap_asset_not_recognized: 10203,\n core_swap_contract_not_found: 10204,\n core_swap_route_transaction_not_found: 10205,\n core_swap_contract_not_supported: 10206,\n core_swap_transaction_error: 10207,\n core_swap_quote_mode_not_supported: 10208,\n /**\n * Core - Transaction\n */\n core_transaction_deposit_error: 10301,\n core_transaction_create_liquidity_base_error: 10302,\n core_transaction_create_liquidity_asset_error: 10303,\n core_transaction_create_liquidity_invalid_params: 10304,\n core_transaction_add_liquidity_invalid_params: 10305,\n core_transaction_add_liquidity_base_address: 10306,\n core_transaction_add_liquidity_base_error: 10307,\n core_transaction_add_liquidity_asset_error: 10308,\n core_transaction_withdraw_error: 10309,\n core_transaction_deposit_to_pool_error: 10310,\n core_transaction_deposit_insufficient_funds_error: 10311,\n core_transaction_deposit_gas_error: 10312,\n core_transaction_invalid_sender_address: 10313,\n core_transaction_deposit_server_error: 10314,\n core_transaction_user_rejected: 10315,\n core_transaction_failed: 10316,\n core_transaction_invalid_recipient_address: 10317,\n /**\n * Wallets - General\n */\n wallet_connection_rejected_by_user: 20001,\n wallet_missing_api_key: 20002,\n wallet_chain_not_supported: 20003,\n wallet_missing_params: 20004,\n wallet_provider_not_found: 20005,\n wallet_failed_to_add_or_switch_network: 20006,\n /**\n * Wallets - Ledger\n */\n wallet_ledger_connection_error: 20101,\n wallet_ledger_connection_claimed: 20102,\n wallet_ledger_get_address_error: 20103,\n wallet_ledger_device_not_found: 20104,\n wallet_ledger_device_locked: 20105,\n wallet_ledger_transport_error: 20106,\n wallet_ledger_public_key_error: 20107,\n wallet_ledger_derivation_path_error: 20108,\n wallet_ledger_signing_error: 20109,\n wallet_ledger_app_not_open: 20110,\n wallet_ledger_invalid_response: 20111,\n wallet_ledger_method_not_supported: 20112,\n wallet_ledger_invalid_params: 20113,\n wallet_ledger_invalid_signature: 20114,\n wallet_ledger_no_provider: 20115,\n wallet_ledger_pubkey_not_found: 20116,\n wallet_ledger_transport_not_defined: 20117,\n wallet_ledger_webusb_not_supported: 20118,\n wallet_ledger_chain_not_supported: 20119,\n wallet_ledger_invalid_asset: 20120,\n wallet_ledger_invalid_account: 20121,\n wallet_ledger_address_not_found: 20122,\n wallet_ledger_failed_to_get_address: 20123,\n wallet_ledger_webhid_not_supported: 20124,\n /**\n * Wallets - Phantom\n */\n wallet_phantom_not_found: 20201,\n /**\n * Wallets - Ctrl\n */\n wallet_ctrl_not_found: 20301,\n wallet_ctrl_send_transaction_no_address: 20302,\n wallet_ctrl_contract_address_not_provided: 20303,\n wallet_ctrl_asset_not_defined: 20304,\n /**\n * Wallets - WalletConnect\n */\n wallet_walletconnect_project_id_not_specified: 20401,\n wallet_walletconnect_connection_not_established: 20402,\n wallet_walletconnect_namespace_not_supported: 20403,\n wallet_walletconnect_chain_not_supported: 20404,\n wallet_walletconnect_invalid_method: 20405,\n wallet_walletconnect_method_not_supported: 20406,\n /**\n * Wallets - Trezor\n */\n wallet_trezor_failed_to_sign_transaction: 20501,\n wallet_trezor_derivation_path_not_supported: 20502,\n wallet_trezor_failed_to_get_address: 20503,\n wallet_trezor_transport_error: 20504,\n wallet_trezor_method_not_supported: 20505,\n /**\n * Wallets - Talisman\n */\n wallet_talisman_not_enabled: 20601,\n wallet_talisman_not_found: 20602,\n /**\n * Wallets - Polkadot\n */\n wallet_polkadot_not_found: 20701,\n /**\n * Wallets - Radix\n */\n wallet_radix_not_found: 20801,\n wallet_radix_transaction_failed: 20802,\n wallet_radix_invalid_manifest: 20803,\n wallet_radix_method_not_supported: 20804,\n wallet_radix_no_account: 20805,\n /**\n * Wallets - KeepKey\n */\n wallet_keepkey_not_found: 20901,\n wallet_keepkey_asset_not_defined: 20902,\n wallet_keepkey_contract_address_not_provided: 20903,\n wallet_keepkey_send_transaction_no_address: 20904,\n wallet_keepkey_derivation_path_error: 20905,\n wallet_keepkey_signing_error: 20906,\n wallet_keepkey_transport_error: 20907,\n wallet_keepkey_unsupported_chain: 20908,\n wallet_keepkey_invalid_response: 20909,\n wallet_keepkey_chain_not_supported: 20910,\n wallet_keepkey_signer_not_found: 20911,\n wallet_keepkey_no_accounts: 20912,\n wallet_keepkey_method_not_supported: 20913,\n wallet_keepkey_invalid_params: 20914,\n wallet_keepkey_config_not_found: 20915,\n wallet_keepkey_no_provider: 20916,\n wallet_keepkey_account_not_found: 20917,\n /**\n * Wallets - BitKeep/BitGet\n */\n wallet_bitkeep_not_found: 21001,\n wallet_bitkeep_failed_to_switch_network: 21002,\n wallet_bitkeep_no_accounts: 21003,\n /**\n * Wallets - Passkeys\n */\n wallet_passkeys_sign_transaction_error: 21101,\n wallet_passkeys_not_found: 21102,\n wallet_passkeys_no_address: 21103,\n wallet_passkeys_request_canceled: 21104,\n wallet_passkeys_signature_canceled: 21105,\n wallet_passkeys_failed_to_switch_network: 21106,\n wallet_passkeys_chain_not_supported: 21107,\n wallet_passkeys_instance_missing: 21108,\n /**\n * Wallets - OneKey\n */\n wallet_onekey_not_found: 21201,\n wallet_onekey_sign_transaction_error: 21202,\n /**\n * Wallets - OKX\n */\n wallet_okx_not_found: 21301,\n wallet_okx_chain_not_supported: 21302,\n wallet_okx_failed_to_switch_network: 21303,\n wallet_okx_no_accounts: 21304,\n /**\n * Wallets - Keplr\n */\n wallet_keplr_not_found: 21401,\n wallet_keplr_chain_not_supported: 21402,\n wallet_keplr_signer_not_found: 21403,\n wallet_keplr_no_accounts: 21404,\n /**\n * Wallets - Cosmostation\n */\n wallet_cosmostation_not_found: 21501,\n wallet_cosmostation_chain_not_supported: 21502,\n wallet_cosmostation_evm_provider_not_found: 21503,\n wallet_cosmostation_keplr_provider_not_found: 21504,\n wallet_cosmostation_no_accounts: 21505,\n wallet_cosmostation_no_evm_accounts: 21506,\n wallet_cosmostation_no_evm_address: 21507,\n wallet_cosmostation_signer_not_found: 21508,\n /**\n * Wallets - ###EMPTY### 21601\n */\n\n /**\n * Wallets - Coinbase\n */\n wallet_coinbase_not_found: 21701,\n wallet_coinbase_chain_not_supported: 21702,\n wallet_coinbase_method_not_supported: 21703,\n wallet_coinbase_no_accounts: 21704,\n /**\n * Wallets - EVM Extensions\n */\n wallet_evm_extensions_failed_to_switch_network: 21801,\n wallet_evm_extensions_no_provider: 21802,\n wallet_evm_extensions_not_found: 21803,\n /**\n * Wallets - Keystore\n */\n wallet_keystore_invalid_password: 21901,\n wallet_keystore_unsupported_version: 21902,\n /**\n * Wallets - Near Extensions\n */\n wallet_near_extensions_failed_to_switch_network: 22001,\n wallet_near_extensions_no_provider: 22002,\n wallet_near_extensions_not_found: 22003,\n wallet_near_method_not_supported: 22003,\n /**\n * Wallets - Vultisig\n */\n wallet_vultisig_not_found: 22101,\n wallet_vultisig_contract_address_not_provided: 22102,\n wallet_vultisig_asset_not_defined: 22103,\n wallet_vultisig_send_transaction_no_address: 22104,\n\n /**\n * Wallets - Xaman\n */\n wallet_xaman_not_configured: 23001,\n wallet_xaman_not_connected: 23002,\n wallet_xaman_auth_failed: 23003,\n wallet_xaman_connection_failed: 23004,\n wallet_xaman_transaction_failed: 23005,\n wallet_xaman_monitoring_failed: 23006,\n /**\n * Wallets - TronLink\n */\n wallet_tronlink_request_accounts_failed: 24001,\n wallet_tronlink_locked: 24002,\n\n /**\n * Chainflip\n */\n chainflip_channel_error: 30001,\n chainflip_unknown_asset: 30002,\n /**\n * Chainflip - Broker\n */\n chainflip_broker_invalid_params: 30101,\n chainflip_broker_recipient_error: 30102,\n chainflip_broker_register: 30103,\n chainflip_broker_tx_error: 30104,\n chainflip_broker_withdraw: 30105,\n chainflip_broker_fund_only_flip_supported: 30106,\n chainflip_broker_fund_invalid_address: 30107,\n /**\n * THORChain\n */\n thorchain_chain_halted: 40001,\n thorchain_trading_halted: 40002,\n thorchain_asset_is_not_tcy: 40003,\n /**\n * THORChain - Swap\n */\n thorchain_swapin_router_required: 40101,\n thorchain_swapin_vault_required: 40102,\n thorchain_swapin_memo_required: 40103,\n thorchain_swapin_token_required: 40104,\n thorchain_preferred_asset_payout_required: 40105,\n /**\n * Toolboxes - Cosmos\n */\n toolbox_cosmos_account_not_found: 50101,\n toolbox_cosmos_invalid_fee: 50102,\n toolbox_cosmos_invalid_params: 50103,\n toolbox_cosmos_no_signer: 50104,\n toolbox_cosmos_not_supported: 50105,\n toolbox_cosmos_signer_not_defined: 50106,\n toolbox_cosmos_validate_address_prefix_not_found: 50107,\n toolbox_cosmos_verify_signature_no_pubkey: 50108,\n /**\n * Toolboxes - EVM\n */\n toolbox_evm_error_estimating_gas_limit: 50201,\n toolbox_evm_error_sending_transaction: 50202,\n toolbox_evm_gas_estimation_error: 50203,\n toolbox_evm_invalid_gas_asset_address: 50204,\n toolbox_evm_invalid_params: 50205,\n toolbox_evm_invalid_transaction: 50206,\n toolbox_evm_no_abi_fragment: 50207,\n toolbox_evm_no_contract_address: 50208,\n toolbox_evm_no_fee_data: 50209,\n toolbox_evm_no_from_address: 50210,\n toolbox_evm_no_gas_price: 50211,\n toolbox_evm_no_signer_address: 50212,\n toolbox_evm_no_signer: 50213,\n toolbox_evm_no_to_address: 50214,\n toolbox_evm_not_supported: 50215,\n toolbox_evm_provider_not_eip1193_compatible: 50216,\n /**\n * Toolboxes - UTXO\n */\n toolbox_utxo_api_error: 50301,\n toolbox_utxo_broadcast_failed: 50302,\n toolbox_utxo_insufficient_balance: 50303,\n toolbox_utxo_invalid_address: 50304,\n toolbox_utxo_invalid_params: 50305,\n toolbox_utxo_invalid_transaction: 50306,\n toolbox_utxo_no_signer: 50307,\n toolbox_utxo_not_supported: 50308,\n /**\n * Toolboxes - Solana\n */\n toolbox_solana_no_signer: 50401,\n toolbox_solana_fee_estimation_failed: 50402,\n /**\n * Toolboxes - Substrate\n */\n toolbox_substrate_not_supported: 50501,\n toolbox_substrate_transfer_error: 50502,\n /**\n * Toolboxes - Radix\n */\n toolbox_radix_method_not_supported: 50601,\n /**\n * Toolboxes - Ripple\n */\n toolbox_ripple_get_balance_error: 50701,\n toolbox_ripple_rpc_not_configured: 50702,\n toolbox_ripple_signer_not_found: 50703,\n toolbox_ripple_asset_not_supported: 50704,\n toolbox_ripple_broadcast_error: 50705,\n /**\n * Toolboxes - Tron\n */\n toolbox_tron_no_signer: 50801,\n toolbox_tron_invalid_token_identifier: 50802,\n toolbox_tron_token_transfer_failed: 50803,\n toolbox_tron_transaction_creation_failed: 50804,\n toolbox_tron_fee_estimation_failed: 50805,\n toolbox_tron_trongrid_api_error: 50806,\n toolbox_tron_approve_failed: 50807,\n toolbox_tron_invalid_token_contract: 50808,\n toolbox_tron_allowance_check_failed: 50809,\n /**\n * Toolboxes - Near\n */\n toolbox_near_no_signer: 90601,\n toolbox_near_invalid_address: 90602,\n toolbox_near_invalid_amount: 90603,\n toolbox_near_transfer_failed: 90604,\n toolbox_near_access_key_error: 90605,\n toolbox_near_no_rpc_url: 90606,\n toolbox_near_empty_batch: 90607,\n toolbox_near_balance_failed: 90608,\n toolbox_near_invalid_name: 90609,\n toolbox_near_missing_contract_address: 90610,\n toolbox_near_no_account: 90611,\n toolbox_near_invalid_gas_params: 90612,\n toolbox_near_no_public_key_found: 90613,\n /**\n * Toolboxes - SUI\n */\n toolbox_sui_address_required: 90701,\n toolbox_sui_keypair_required: 90702,\n toolbox_sui_balance_error: 90703,\n toolbox_sui_transaction_creation_error: 90704,\n toolbox_sui_signing_error: 90705,\n toolbox_sui_broadcast_error: 90706,\n toolbox_sui_no_signer: 90707,\n toolbox_sui_no_sender: 90708,\n /**\n * Toolboxes - General\n */\n toolbox_not_supported: 59901,\n /**\n * NEAR Plugin\n */\n plugin_near_invalid_name: 41001,\n plugin_near_no_connection: 41002,\n plugin_near_name_unavailable: 41003,\n plugin_near_registration_failed: 41004,\n plugin_near_transfer_failed: 41005,\n /**\n * Garden Plugin\n */\n plugin_garden_missing_data: 42001,\n /**\n * SwapKit API\n */\n api_v2_invalid_response: 60001,\n api_v2_server_error: 60002,\n api_v2_invalid_method_key_hash: 60003,\n /**\n * Helpers\n */\n helpers_invalid_number_different_decimals: 70001,\n helpers_invalid_number_of_years: 70002,\n helpers_invalid_identifier: 70003,\n helpers_invalid_asset_url: 70004,\n helpers_invalid_asset_identifier: 70005,\n helpers_invalid_memo_type: 70006,\n helpers_failed_to_switch_network: 70007,\n helpers_not_found_provider: 70008,\n helpers_chain_not_supported: 70009,\n helpers_invalid_params: 70010,\n helpers_invalid_response: 70011,\n helpers_chain_no_public_or_set_rpc_url: 70012,\n /**\n * Anything else\n */\n not_implemented: 99999,\n} as const;\n\nexport type ErrorKeys = keyof typeof errorCodes;\n\nexport class SwapKitError extends Error {\n static ErrorCode = errorCodes;\n\n constructor(\n errorOrErrorKey: ErrorKeys | { errorKey: ErrorKeys; info?: Record<string, any> },\n sourceErrorOrInfo?: any,\n ) {\n const isErrorString = typeof errorOrErrorKey === \"string\";\n const errorKey = isErrorString ? errorOrErrorKey : errorOrErrorKey.errorKey;\n const info = isErrorString ? undefined : errorOrErrorKey.info;\n const message = `${errorKey}${info ? `: ${JSON.stringify(info)}` : \"\"}`;\n\n super(message);\n Object.setPrototypeOf(this, SwapKitError.prototype);\n\n this.name = \"SwapKitError\";\n this.cause = sourceErrorOrInfo;\n\n // Log errors for debugging - bundlers can strip this in production if needed\n if (sourceErrorOrInfo) {\n const errorMsg =\n sourceErrorOrInfo instanceof Error\n ? `${sourceErrorOrInfo.message}${sourceErrorOrInfo.cause ? ` (${sourceErrorOrInfo.cause})` : \"\"}`\n : JSON.stringify(sourceErrorOrInfo);\n console.error(`SwapKitError [${errorKey}]: ${errorMsg}`);\n } else if (info) {\n console.error(`SwapKitError [${errorKey}]: ${JSON.stringify(info)}`);\n }\n }\n}\n",
14
14
  "import { SKConfig } from \"./swapKitConfig\";\nimport { SwapKitError } from \"./swapKitError\";\n\ntype RetryConfig = { maxRetries?: number; baseDelay?: number; maxDelay?: number; backoffMultiplier?: number };\n\ntype Options = RequestInit & {\n /**\n * @deprecated @V4 Use onSuccess instead - will be removed in next major\n */\n responseHandler?: (response: any) => any;\n json?: unknown;\n onError?: (error: any) => any;\n onSuccess?: (response: any) => any;\n searchParams?: Record<string, string>;\n dynamicHeader?: () => Record<string, string> | {};\n retry?: RetryConfig;\n timeoutMs?: number;\n abortController?: AbortController;\n};\n\nconst sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\nconst calculateDelay = (attempt: number, { baseDelay, backoffMultiplier, maxDelay }: any) =>\n Math.min(baseDelay * backoffMultiplier ** attempt, maxDelay);\n\nconst makeRequest = async (url: string, config: RequestInit) => {\n const response = await fetch(url, config);\n\n if (!response.ok) {\n const errorData = { status: response.status, statusText: response.statusText };\n throw new SwapKitError({ errorKey: \"helpers_invalid_response\", info: errorData }, errorData);\n }\n return response.json();\n};\n\nfunction fetchWithConfig(method: \"GET\" | \"POST\", extendOptions: Options = {}) {\n return async function methodFetchWithConfig<T>(url: string, options: Options = {}): Promise<T> {\n const {\n searchParams,\n json,\n body,\n headers,\n dynamicHeader,\n retry,\n timeoutMs,\n abortController,\n onError,\n onSuccess,\n responseHandler,\n ...fetchOptions\n } = { ...extendOptions, ...options };\n const requestOptions = SKConfig.get(\"requestOptions\");\n\n const retryConfig = { ...requestOptions.retry, ...retry };\n const isJson = !!json || url.endsWith(\".json\");\n const requestUrl = buildUrl(url, searchParams);\n const requestHeaders = buildHeaders(isJson, { ...headers, ...dynamicHeader?.() });\n const requestBody = isJson ? JSON.stringify(json) : body;\n\n let lastError: any;\n\n for (let attempt = 0; attempt <= retryConfig.maxRetries; attempt++) {\n const controller = abortController || new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeoutMs || requestOptions.timeoutMs);\n\n try {\n const result = await makeRequest(requestUrl, {\n ...fetchOptions,\n body: requestBody,\n headers: requestHeaders,\n method,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n return onSuccess?.(result) || responseHandler?.(result) || result;\n } catch (error) {\n clearTimeout(timeoutId);\n lastError = error;\n\n if (attempt >= retryConfig.maxRetries) {\n return onError ? onError(error) : Promise.reject(error);\n }\n\n await sleep(calculateDelay(attempt, retryConfig));\n }\n }\n\n return onError ? onError(lastError) : Promise.reject(lastError);\n };\n}\n\nfunction buildHeaders(isJson: boolean, headers?: HeadersInit) {\n return { ...headers, ...(isJson && { \"Content-Type\": \"application/json\" }) };\n}\n\nfunction buildUrl(url: string, searchParams?: Record<string, string>) {\n const urlInstance = new URL(url);\n if (searchParams) urlInstance.search = new URLSearchParams(searchParams).toString();\n return urlInstance.toString();\n}\n\nexport const RequestClient = {\n extend: (extendOptions: Options) => ({\n extend: (newOptions: Options) => RequestClient.extend({ ...extendOptions, ...newOptions }),\n get: fetchWithConfig(\"GET\", extendOptions),\n post: fetchWithConfig(\"POST\", extendOptions),\n }),\n get: fetchWithConfig(\"GET\"),\n post: fetchWithConfig(\"POST\"),\n};\n",
15
15
  "import { Chain, CosmosChains, EVMChains, type StagenetChain, StagenetChains, UTXOChains } from \"@swapkit/types\";\nimport { match } from \"ts-pattern\";\nimport { SKConfig } from \"../modules/swapKitConfig\";\nimport { SwapKitError } from \"../modules/swapKitError\";\nimport { warnOnce } from \"./others\";\n\nfunction getRpcBody(chain: Chain | StagenetChain) {\n return match(chain)\n .with(...EVMChains, () => ({ id: 1, jsonrpc: \"2.0\", method: \"eth_blockNumber\", params: [] }))\n .with(...UTXOChains, () => ({ id: \"test\", jsonrpc: \"1.0\", method: \"getblockchaininfo\", params: [] }))\n .with(...CosmosChains, ...StagenetChains, () => ({ id: 1, jsonrpc: \"2.0\", method: \"status\", params: {} }))\n .with(Chain.Polkadot, Chain.Chainflip, () => ({ id: 1, jsonrpc: \"2.0\", method: \"system_health\", params: [] }))\n .with(Chain.Solana, () => ({ id: 1, jsonrpc: \"2.0\", method: \"getHealth\" }))\n .with(Chain.Sui, () => ({ id: 1, jsonrpc: \"2.0\", method: \"sui_getSystemState\", params: [] }))\n .with(Chain.Ton, () => ({ id: 1, jsonrpc: \"2.0\", method: \"getAddressInformation\", params: { address: \"\" } }))\n .with(Chain.Tron, Chain.Radix, () => \"\")\n .with(Chain.Near, () => ({ id: \"dontcare\", jsonrpc: \"2.0\", method: \"status\", params: [] }))\n .with(Chain.Ripple, () => ({ id: 1, jsonrpc: \"2.0\", method: \"ping\", params: [{}] }))\n .otherwise(() => {\n throw new SwapKitError(\"helpers_chain_not_supported\", { chain });\n });\n}\n\nfunction getChainStatusEndpoint(chain: Chain | StagenetChain) {\n return match(chain)\n .with(Chain.Radix, () => \"/status/network-configuration\")\n .with(Chain.Tron, () => \"/wallet/getnowblock\")\n .otherwise(() => \"\");\n}\n\nasync function testRPCConnection(chain: Chain | StagenetChain, url: string) {\n try {\n const endpoint = url.startsWith(\"wss\") ? url.replace(\"wss\", \"https\") : url;\n const response = await fetch(`${endpoint}${getChainStatusEndpoint(chain)}`, {\n body: JSON.stringify(getRpcBody(chain)),\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n signal: AbortSignal.timeout(3000),\n });\n\n return response.ok;\n } catch {\n return false;\n }\n}\n\nconst rpcCache = new Map<Chain | StagenetChain, { timestamp: number; url: string }>();\nconst rpcCacheTTL = 1000 * 60 * 2; // 2 minutes\n\nexport async function getRPCUrl(chain: Chain | StagenetChain) {\n const { isStagenet } = SKConfig.get(\"envs\");\n const [rpcUrl = \"\", ...fallbackUrls] = SKConfig.get(\"rpcUrls\")[chain];\n\n if (!rpcUrl) {\n warnOnce({\n condition: true,\n id: \"helpers_chain_no_public_or_set_rpc_url\",\n warning: `No public or set RPC URL found for chain. Please ensure you configured rpcUrls for ${chain}.`,\n });\n throw new SwapKitError(\"helpers_chain_no_public_or_set_rpc_url\", { chain });\n }\n\n if (isStagenet) return rpcUrl;\n\n const cached = rpcCache.get(chain);\n if (cached && Date.now() - cached.timestamp < rpcCacheTTL) {\n return cached.url;\n }\n\n const primaryIsWorking = await testRPCConnection(chain, rpcUrl);\n\n if (!primaryIsWorking) {\n for (const fallbackUrl of fallbackUrls) {\n const fallbackIsWorking = await testRPCConnection(chain, fallbackUrl);\n\n if (fallbackIsWorking) {\n rpcCache.set(chain, { timestamp: Date.now(), url: fallbackUrl });\n return fallbackUrl;\n }\n }\n }\n\n rpcCache.set(chain, { timestamp: Date.now(), url: rpcUrl });\n return rpcUrl;\n}\n\n/**\n * @deprecated\n * RPC URLs are now managed dynamically via SKConfig.\n * Please use static { rpcUrls, fallbackRpcUrls } SwapKit init config or dynamic SKConfig.setRpcUrl/setFallbackRpcUrl to configure RPC endpoints.\n * This function is obsolete and will be removed in a future release.\n */\nexport function initializeRPCUrlsWithFallback(_chains: never) {\n warnOnce({\n condition: true,\n id: \"initializeRPCUrlsWithFallback\",\n warning:\n \"initializeRPCUrlsWithFallback is deprecated. Use static { rpcUrls, fallbackRpcUrls } SwapKit init config or dynamic SKConfig.setRpcUrl/setFallbackRpcUrl to configure RPC endpoints.\",\n });\n}\n",
@@ -447,104 +447,5 @@ export declare const SwapKitApi: {
447
447
  tx: unknown;
448
448
  deadline?: string | undefined;
449
449
  }>;
450
- SKRequestClient: {
451
- extend: (extendOptions: RequestInit & {
452
- responseHandler?: (response: any) => any;
453
- json?: unknown;
454
- onError?: (error: any) => any;
455
- onSuccess?: (response: any) => any;
456
- searchParams?: Record<string, string>;
457
- dynamicHeader?: () => Record<string, string> | {};
458
- retry?: {
459
- maxRetries?: number;
460
- baseDelay?: number;
461
- maxDelay?: number;
462
- backoffMultiplier?: number;
463
- };
464
- timeoutMs?: number;
465
- abortController?: AbortController;
466
- }) => {
467
- extend: (newOptions: RequestInit & {
468
- responseHandler?: (response: any) => any;
469
- json?: unknown;
470
- onError?: (error: any) => any;
471
- onSuccess?: (response: any) => any;
472
- searchParams?: Record<string, string>;
473
- dynamicHeader?: () => Record<string, string> | {};
474
- retry?: {
475
- maxRetries?: number;
476
- baseDelay?: number;
477
- maxDelay?: number;
478
- backoffMultiplier?: number;
479
- };
480
- timeoutMs?: number;
481
- abortController?: AbortController;
482
- }) => /*elided*/ any;
483
- get: <T>(url: string, options?: RequestInit & {
484
- responseHandler?: (response: any) => any;
485
- json?: unknown;
486
- onError?: (error: any) => any;
487
- onSuccess?: (response: any) => any;
488
- searchParams?: Record<string, string>;
489
- dynamicHeader?: () => Record<string, string> | {};
490
- retry?: {
491
- maxRetries?: number;
492
- baseDelay?: number;
493
- maxDelay?: number;
494
- backoffMultiplier?: number;
495
- };
496
- timeoutMs?: number;
497
- abortController?: AbortController;
498
- }) => Promise<T>;
499
- post: <T>(url: string, options?: RequestInit & {
500
- responseHandler?: (response: any) => any;
501
- json?: unknown;
502
- onError?: (error: any) => any;
503
- onSuccess?: (response: any) => any;
504
- searchParams?: Record<string, string>;
505
- dynamicHeader?: () => Record<string, string> | {};
506
- retry?: {
507
- maxRetries?: number;
508
- baseDelay?: number;
509
- maxDelay?: number;
510
- backoffMultiplier?: number;
511
- };
512
- timeoutMs?: number;
513
- abortController?: AbortController;
514
- }) => Promise<T>;
515
- };
516
- get: <T>(url: string, options?: RequestInit & {
517
- responseHandler?: (response: any) => any;
518
- json?: unknown;
519
- onError?: (error: any) => any;
520
- onSuccess?: (response: any) => any;
521
- searchParams?: Record<string, string>;
522
- dynamicHeader?: () => Record<string, string> | {};
523
- retry?: {
524
- maxRetries?: number;
525
- baseDelay?: number;
526
- maxDelay?: number;
527
- backoffMultiplier?: number;
528
- };
529
- timeoutMs?: number;
530
- abortController?: AbortController;
531
- }) => Promise<T>;
532
- post: <T>(url: string, options?: RequestInit & {
533
- responseHandler?: (response: any) => any;
534
- json?: unknown;
535
- onError?: (error: any) => any;
536
- onSuccess?: (response: any) => any;
537
- searchParams?: Record<string, string>;
538
- dynamicHeader?: () => Record<string, string> | {};
539
- retry?: {
540
- maxRetries?: number;
541
- baseDelay?: number;
542
- maxDelay?: number;
543
- backoffMultiplier?: number;
544
- };
545
- timeoutMs?: number;
546
- abortController?: AbortController;
547
- }) => Promise<T>;
548
- };
549
450
  };
550
451
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AAEjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAEjC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAC+5E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADj2E,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AAEjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAEjC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBACuiF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADz+E,CAAC"}