@swapkit/helpers 4.4.5 → 4.5.2
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.
- package/dist/api/index.cjs +2 -2
- package/dist/api/index.cjs.map +4 -4
- package/dist/api/index.js +2 -2
- package/dist/api/index.js.map +4 -4
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +10 -10
- package/dist/index.js +3 -3
- package/dist/index.js.map +10 -10
- package/dist/types/api/index.d.ts +247 -0
- package/dist/types/api/index.d.ts.map +1 -1
- package/dist/types/api/swapkitApi/endpoints.d.ts +247 -0
- package/dist/types/api/swapkitApi/endpoints.d.ts.map +1 -1
- package/dist/types/api/swapkitApi/types.d.ts +3 -1
- package/dist/types/api/swapkitApi/types.d.ts.map +1 -1
- package/dist/types/modules/assetValue.d.ts +6 -0
- package/dist/types/modules/assetValue.d.ts.map +1 -1
- package/dist/types/modules/bigIntArithmetics.d.ts.map +1 -1
- package/dist/types/modules/swapKitConfig.d.ts +63 -36
- package/dist/types/modules/swapKitConfig.d.ts.map +1 -1
- package/dist/types/modules/swapKitError.d.ts +20 -24
- package/dist/types/modules/swapKitError.d.ts.map +1 -1
- package/dist/types/types/wallet.d.ts +5 -1
- package/dist/types/types/wallet.d.ts.map +1 -1
- package/dist/types/utils/asset.d.ts +1 -1
- package/dist/types/utils/asset.d.ts.map +1 -1
- package/package.json +24 -12
- package/src/api/index.ts +9 -0
- package/src/api/midgard/endpoints.ts +348 -0
- package/src/api/midgard/types.ts +515 -0
- package/src/api/swapkitApi/endpoints.ts +242 -0
- package/src/api/swapkitApi/types.ts +624 -0
- package/src/api/thornode/endpoints.ts +105 -0
- package/src/api/thornode/types.ts +247 -0
- package/src/contracts.ts +1 -0
- package/src/index.ts +28 -0
- package/src/modules/__tests__/assetValue.test.ts +1637 -0
- package/src/modules/__tests__/bigIntArithmetics.test.ts +383 -0
- package/src/modules/__tests__/swapKitConfig.test.ts +425 -0
- package/src/modules/__tests__/swapKitNumber.test.ts +535 -0
- package/src/modules/assetValue.ts +532 -0
- package/src/modules/bigIntArithmetics.ts +363 -0
- package/src/modules/feeMultiplier.ts +80 -0
- package/src/modules/requestClient.ts +110 -0
- package/src/modules/swapKitConfig.ts +174 -0
- package/src/modules/swapKitError.ts +470 -0
- package/src/modules/swapKitNumber.ts +13 -0
- package/src/tokens.ts +1 -0
- package/src/types/commonTypes.ts +10 -0
- package/src/types/derivationPath.ts +11 -0
- package/src/types/errors/apiV1.ts +0 -0
- package/src/types/index.ts +5 -0
- package/src/types/quotes.ts +174 -0
- package/src/types/sdk.ts +38 -0
- package/src/types/wallet.ts +124 -0
- package/src/utils/__tests__/asset.test.ts +185 -0
- package/src/utils/__tests__/derivationPath.test.ts +16 -0
- package/src/utils/__tests__/explorerUrls.test.ts +59 -0
- package/src/utils/__tests__/memo.test.ts +99 -0
- package/src/utils/__tests__/others.test.ts +83 -0
- package/src/utils/__tests__/validators.test.ts +24 -0
- package/src/utils/asset.ts +395 -0
- package/src/utils/chains.ts +100 -0
- package/src/utils/derivationPath.ts +101 -0
- package/src/utils/explorerUrls.ts +32 -0
- package/src/utils/liquidity.ts +150 -0
- package/src/utils/memo.ts +102 -0
- package/src/utils/others.ts +62 -0
- package/src/utils/validators.ts +32 -0
- package/src/utils/wallets.ts +237 -0
package/dist/api/index.js.map
CHANGED
|
@@ -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\";\
|
|
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\nconst 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 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",
|
|
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",
|
|
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": "
|
|
11
|
+
"mappings": "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",
|
|
12
|
+
"debugId": "167D84D89D6D754364756E2164756E21",
|
|
13
13
|
"names": []
|
|
14
14
|
}
|