@swapkit/helpers 3.0.0-beta.2 → 3.0.0-beta.21
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 +6 -6
- package/dist/api/index.js +2 -2
- package/dist/api/index.js.map +6 -6
- package/dist/{chunk-6vvdbb6s.js → chunk-7shcm26h.js} +3 -3
- package/dist/{chunk-6vvdbb6s.js.map → chunk-7shcm26h.js.map} +1 -1
- package/dist/chunk-8fdws4se.js +4 -0
- package/dist/chunk-8fdws4se.js.map +10 -0
- package/dist/{chunk-dbsrwnw2.js → chunk-b8hashv0.js} +3 -3
- package/dist/{chunk-dbsrwnw2.js.map → chunk-b8hashv0.js.map} +1 -1
- package/dist/{chunk-kdcsgh3q.js → chunk-bf0ph1bk.js} +3 -3
- package/dist/{chunk-kdcsgh3q.js.map → chunk-bf0ph1bk.js.map} +1 -1
- package/dist/{chunk-mmwvr2y8.js → chunk-bh986mnf.js} +3 -3
- package/dist/{chunk-mmwvr2y8.js.map → chunk-bh986mnf.js.map} +1 -1
- package/dist/{chunk-ahpfxkx0.js → chunk-dzypg9sp.js} +3 -3
- package/dist/{chunk-ahpfxkx0.js.map → chunk-dzypg9sp.js.map} +1 -1
- package/dist/{chunk-wmxwvv8c.js → chunk-ghdhtvtt.js} +3 -3
- package/dist/{chunk-wmxwvv8c.js.map → chunk-ghdhtvtt.js.map} +1 -1
- package/dist/{chunk-fr86y3rx.js → chunk-jhmhh7ax.js} +3 -3
- package/dist/{chunk-fr86y3rx.js.map → chunk-jhmhh7ax.js.map} +1 -1
- package/dist/{chunk-ekd1k975.js → chunk-nm1av1e6.js} +3 -3
- package/dist/{chunk-ekd1k975.js.map → chunk-nm1av1e6.js.map} +1 -1
- package/dist/{chunk-wrjh857m.js → chunk-rarep8vg.js} +3 -3
- package/dist/{chunk-wrjh857m.js.map → chunk-rarep8vg.js.map} +1 -1
- package/dist/{chunk-kr69v1tm.js → chunk-rr043vwc.js} +3 -3
- package/dist/{chunk-kr69v1tm.js.map → chunk-rr043vwc.js.map} +1 -1
- package/dist/{chunk-3wnfcm30.js → chunk-s82pm7xc.js} +2 -2
- package/dist/{chunk-3wnfcm30.js.map → chunk-s82pm7xc.js.map} +1 -1
- package/dist/chunk-sb9hymk1.js +3 -0
- package/dist/chunk-sb9hymk1.js.map +10 -0
- package/dist/{chunk-tq87xn7m.js → chunk-tn4e7zrk.js} +3 -3
- package/dist/{chunk-tq87xn7m.js.map → chunk-tn4e7zrk.js.map} +1 -1
- package/dist/{chunk-z8emzpyc.js → chunk-vadspc46.js} +3 -3
- package/dist/{chunk-z8emzpyc.js.map → chunk-vadspc46.js.map} +1 -1
- package/dist/{chunk-xyczdrny.js → chunk-vgg88vt8.js} +3 -3
- package/dist/{chunk-xyczdrny.js.map → chunk-vgg88vt8.js.map} +1 -1
- package/dist/{chunk-q8xy3739.js → chunk-wssz50sc.js} +3 -3
- package/dist/{chunk-q8xy3739.js.map → chunk-wssz50sc.js.map} +1 -1
- package/dist/contracts/index.js +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +18 -18
- package/dist/index.js +3 -3
- package/dist/index.js.map +18 -18
- package/dist/tokens/index.js +2 -2
- package/dist/tokens/index.js.map +2 -2
- package/package.json +6 -5
- package/src/api/microgard/types.ts +0 -3
- package/src/api/midgard/endpoints.ts +1 -65
- package/src/api/midgard/types.ts +0 -49
- package/src/api/swapkitApi/endpoints.ts +16 -10
- package/src/api/swapkitApi/types.ts +1 -1
- package/src/api/thornode/endpoints.ts +22 -4
- package/src/api/thornode/types.ts +3 -2
- package/src/index.ts +1 -0
- package/src/modules/__tests__/assetValue.test.ts +66 -23
- package/src/modules/__tests__/swapKitNumber.test.ts +4 -5
- package/src/modules/assetValue.ts +84 -33
- package/src/modules/bigIntArithmetics.ts +12 -1
- package/src/modules/feeMultiplier.ts +87 -0
- package/src/modules/requestClient.ts +34 -23
- package/src/modules/swapKitConfig.ts +9 -1
- package/src/modules/swapKitError.ts +325 -105
- package/src/types/chains.ts +98 -44
- package/src/types/derivationPath.ts +2 -0
- package/src/types/quotes.ts +1 -2
- package/src/types/sdk.ts +0 -2
- package/src/types/wallet.ts +5 -0
- package/src/utils/__tests__/memo.test.ts +0 -20
- package/src/utils/asset.ts +18 -27
- package/src/utils/derivationPath.ts +6 -0
- package/src/utils/memo.ts +5 -42
- package/src/utils/others.ts +1 -2
- package/src/utils/wallets.ts +6 -3
package/dist/api/index.js.map
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
"sources": ["../src/api/microgard/endpoints.ts", "../src/api/midgard/endpoints.ts", "../src/api/swapkitApi/endpoints.ts", "../src/api/swapkitApi/types.ts", "../src/api/thornode/endpoints.ts", "../src/api/thorswapStatic/endpoints.ts", "../src/api/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import {\n AssetValue,\n BaseDecimal,\n type Chain,\n RequestClient,\n SwapKitNumber,\n} from \"@swapkit/helpers\";\nimport type { LiquidityPositionRaw, PoolDetail, PoolPeriod, THORNameDetails } from \"./types\";\n\n/**\n * TODO: Move to SKConfig under midgardUrls.microgard\n */\nconst baseUrl = \"https://mu.thorswap.net\";\n\nexport function getTHORNameDetails(thorname: string) {\n return RequestClient.get<THORNameDetails>(`${baseUrl}/thorname/lookup/${thorname}`);\n}\n\nexport function getTHORNamesByOwner(owner: string) {\n return RequestClient.get<string[]>(`${baseUrl}/thorname/owner/${owner}`);\n}\n\nexport function getTHORNamesByAddress(address: string) {\n return RequestClient.get<string[]>(`${baseUrl}/thorname/address/${address}`);\n}\n\nexport function getTHORChainPools(period: PoolPeriod) {\n return RequestClient.get<PoolDetail[]>(`${baseUrl}/pools`, { searchParams: { period } });\n}\n\nexport function getLiquidityPositionsRaw(addresses: string[]) {\n return RequestClient.get<LiquidityPositionRaw[]>(\n `${baseUrl}/fullmember?address=${addresses.join(\",\")}`,\n );\n}\n\nexport async function getTNSChainAddress({ chain, tns }: { chain: Chain; tns: string }) {\n const tnsDetails = await getTHORNameDetails(tns);\n\n return tnsDetails?.entries?.find((e) => e.chain.toLowerCase() === chain.toLowerCase())?.address;\n}\n\nexport async function getLiquidityPositions(addresses: string[]) {\n const rawLiquidityPositions = await getLiquidityPositionsRaw(addresses);\n\n return rawLiquidityPositions.map((p) => ({\n assetRegisteredAddress: p.assetAddress,\n asset: AssetValue.from({\n asset: p.pool,\n value: p.assetAdded,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n assetPending: AssetValue.from({\n asset: p.pool,\n value: p.assetPending,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n assetWithdrawn: AssetValue.from({\n asset: p.pool,\n value: p.assetWithdrawn,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n runeRegisteredAddress: p.runeAddress,\n rune: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runeAdded,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n runePending: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runePending,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n runeWithdrawn: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runeWithdrawn,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n poolShare: new SwapKitNumber(p.sharedUnits).div(p.poolUnits),\n dateLastAdded: p.dateLastAdded,\n dateFirstAdded: p.dateFirstAdded,\n }));\n}\n",
|
|
6
|
-
"import { AssetValue, BaseDecimal, Chain, RequestClient, SwapKitNumber } from \"@swapkit/helpers\";\nimport type {
|
|
7
|
-
"import {\n type Chain,\n type EVMChain,\n EVMChains,\n type ProviderName,\n RequestClient,\n SKConfig,\n SwapKitError,\n isGasAsset,\n} from \"@swapkit/helpers\";\n\nimport {\n type BalanceResponse,\n type BrokerDepositChannelParams,\n type DepositChannelResponse,\n DepositChannelResponseSchema,\n type GasResponse,\n GasResponseSchema,\n type PriceRequest,\n type PriceResponse,\n PriceResponseSchema,\n type QuoteRequest,\n type QuoteResponse,\n QuoteResponseSchema,\n type TokenListProvidersResponse,\n type TokensResponseV2,\n type TrackerParams,\n type TrackerResponse,\n} from \"./types\";\n\nexport function getTrackerDetails(json: TrackerParams) {\n return
|
|
8
|
-
"import {\n type AssetValue,\n Chain,\n ChainId,\n ErrorCode,\n FeeTypeEnum,\n ProviderName,\n WarningCodeEnum,\n} from \"@swapkit/helpers\";\nimport {\n type ZodType,\n array,\n boolean,\n nativeEnum,\n number,\n object,\n optional,\n string,\n union,\n unknown,\n type z,\n} from \"zod\";\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 native_send = \"native_send\",\n token_transfer = \"token_transfer\",\n native_contract_call = \"native_contract_call\",\n token_contract_call = \"token_contract_call\",\n approve = \"approve\",\n deposit = \"deposit\",\n thorname_action = \"thorname_action\",\n lp_action = \"lp_action\",\n swap = \"swap\",\n streaming_swap = \"streaming_swap\",\n stake = \"stake\",\n claim = \"claim\",\n lending = \"lending\",\n unknown = \"unknown\",\n}\n\nexport enum TxnStatus {\n unknown = \"unknown\",\n not_started = \"not_started\",\n pending = \"pending\",\n swapping = \"swapping\",\n completed = \"completed\",\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 = {\n major: number;\n minor: number;\n patch: number;\n};\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: TokenV2[];\n version: TokenProviderVersion;\n};\n\nexport type TokenV2 = {\n address?: string;\n chain: string;\n shortCode?: string;\n chainId: string;\n decimals: number;\n extensions?: {};\n identifier: string;\n logoURI: string;\n name?: string;\n symbol: string;\n ticker: string;\n};\n\nexport interface TransactionProps {\n chainId: ChainId;\n hash: string;\n block: number;\n type?: TxnType;\n status?: TxnStatus;\n trackingStatus?: TrackingStatus;\n fromAsset: AssetValue | null;\n fromAddress: string;\n toAsset: AssetValue | null;\n toAddress: string;\n finalisedAt?: number;\n meta?: Partial<TxnMeta>;\n payload?: Partial<TxnPayload>;\n}\n\nexport type TrackerParams = {\n chainId: ChainId;\n hash: string;\n block?: number;\n};\n\nexport type TrackerResponse = TransactionProps & {\n legs: TransactionLegDTO[];\n transient?: TxnTransient;\n};\n\nexport const ApiV2ErrorSchema = object({\n error: string(),\n message: string(),\n});\n\nexport const AssetValueSchema = object({\n chain: nativeEnum(Chain),\n symbol: string(),\n ticker: string(),\n decimal: optional(number()),\n address: optional(string()),\n isGasAsset: boolean(),\n isSynthetic: boolean(),\n tax: optional(object({ buy: number(), sell: number() })),\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 identifier: string(),\n provider: string(),\n cg: TokenDetailsMetadataSchema.optional(),\n price_usd: number(),\n timestamp: number(),\n }).partial(),\n);\n\nexport type PriceResponse = z.infer<typeof PriceResponseSchema>;\n\nexport const QuoteRequestSchema = object({\n sellAsset: string({ description: \"Asset to sell\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n sellAmount: string({ description: \"Amount of asset to sell\" }).refine((amount) => +amount > 0, {\n message: \"sellAmount must be greater than 0\",\n path: [\"sellAmount\"],\n }),\n providers: optional(\n array(\n string({ description: \"List of providers to use\" }).refine(\n (provider) => ProviderName[provider as ProviderName] !== undefined,\n { message: \"Invalid provider\", path: [\"providers\"] },\n ),\n ),\n ),\n sourceAddress: optional(string({ description: \"Address to send asset from\" })),\n destinationAddress: optional(string({ description: \"Address to send asset to\" })),\n slippage: optional(number({ description: \"Slippage tolerance as a percentage. Default is 3%.\" })),\n affiliate: optional(string({ description: \"Affiliate thorname\" })),\n affiliateFee: optional(\n number({ description: \"Affiliate fee in basis points\" }).refine(\n (fee) => fee === Math.floor(fee) && fee >= 0,\n { message: \"affiliateFee must be a positive integer\", path: [\"affiliateFee\"] },\n ),\n ),\n allowSmartContractSender: optional(boolean({ description: \"Allow smart contract as sender\" })),\n allowSmartContractReceiver: optional(\n boolean({ description: \"Allow smart contract as recipient\" }),\n ),\n disableSecurityChecks: optional(boolean({ description: \"Disable security checks\" })),\n includeTx: optional(\n boolean({ description: \"Set to true to include an transaction object (EVM only)\" }),\n ),\n cfBoost: optional(\n boolean({\n description: \"Set to true to enable CF boost to speed up Chainflip swaps. BTC only.\",\n }),\n ),\n referrer: optional(string({ description: \"Referrer address (referral program)\" })),\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({\n tokens: array(\n object({\n identifier: string(),\n }),\n ),\n metadata: boolean(),\n});\n\nexport type PriceRequest = z.infer<typeof PriceRequestSchema>;\n\nexport const BrokerDepositChannelParamsSchema = object({\n sellAsset: object({\n chain: string(),\n asset: string(),\n }),\n buyAsset: object({\n chain: string(),\n asset: string(), // identifier of the asset\n }),\n destinationAddress: string(),\n channelMetadata: object({\n cfParameters: string().optional(),\n gasBudget: string().optional(),\n message: string().optional(),\n }).optional(),\n affiliateFees: array(\n object({\n brokerAddress: string(),\n feeBps: number(),\n }),\n ).optional(),\n refundParameters: object({\n minPrice: string().optional(),\n refundAddress: string().optional(),\n retryDuration: number().optional(),\n }).optional(),\n dcaParameters: object({\n chunkInterval: number().optional(),\n numberOfChunks: number().optional(),\n }).optional(),\n brokerCommissionBps: number().optional(),\n maxBoostFeeBps: number().optional(),\n});\n\nexport type BrokerDepositChannelParams = z.infer<typeof BrokerDepositChannelParamsSchema>;\n\nexport const DepositChannelResponseSchema = object({\n channelId: string(),\n depositAddress: string(),\n});\n\nexport type DepositChannelResponse = z.infer<typeof DepositChannelResponseSchema>;\n\nconst TxnPayloadSchema = object({\n evmCalldata: optional(string()),\n logs: optional(unknown()),\n memo: optional(string()),\n spender: optional(string()), // used in evm approve transactions\n});\n\nexport type TxnPayload = z.infer<typeof TxnPayloadSchema>;\n\n// props that are most important while the transaction is live\nconst TxnTransientSchema = object({\n estimatedFinalisedAt: number(),\n estimatedTimeToComplete: number(),\n updatedAt: number(),\n currentLegIndex: optional(number()),\n providerDetails: optional(unknown()), // see ProviderTransientDetails\n});\n\nexport type TxnTransient = z.infer<typeof TxnTransientSchema>;\n\nconst TransactionFeesSchema = object({\n network: optional(AssetValueSchema), // gas on ethereum, network fee on thorchain, etc.\n affiliate: optional(AssetValueSchema), // e.g. affiliate in memo, other affiliate mechanisms\n liquidity: optional(AssetValueSchema), // fee paid to pool\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 TxnMetaSchema = object({\n broadcastedAt: optional(number()),\n wallet: optional(string()),\n quoteId: optional(string()),\n explorerUrl: optional(string()),\n affiliate: optional(string()),\n fees: optional(TransactionFeesSchema),\n provider: optional(nativeEnum(ProviderName)),\n images: optional(\n object({\n from: optional(string()),\n to: optional(string()),\n provider: optional(string()),\n chain: optional(string()),\n }),\n ),\n});\n\nexport type TxnMeta = z.infer<typeof TxnMetaSchema>;\n\nconst TransactionLegDTOSchema = object({\n chainId: nativeEnum(ChainId),\n hash: string(),\n block: number(),\n type: nativeEnum(TxnType),\n status: nativeEnum(TxnStatus),\n trackingStatus: optional(nativeEnum(TrackingStatus)),\n\n fromAsset: string(),\n fromAmount: string(),\n fromAddress: string(),\n toAsset: string(),\n toAmount: string(),\n toAddress: string(),\n finalAsset: optional(AssetValueSchema),\n finalAddress: optional(string()),\n\n finalisedAt: number(),\n\n transient: optional(TxnTransientSchema),\n meta: optional(TxnMetaSchema),\n payload: optional(TxnPayloadSchema),\n});\n\nexport type TransactionLegDTO = z.infer<typeof TransactionLegDTOSchema>;\n\nexport const TransactionSchema = TransactionLegDTOSchema.extend({\n legs: array(TransactionLegDTOSchema),\n});\n\nexport type TransactionDTO = z.infer<typeof TransactionLegDTOSchema> & {\n legs: TransactionLegDTO[];\n};\n\nexport const TransactionDTOSchema: ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: array(TransactionLegDTOSchema),\n});\n\nexport const FeesSchema = array(\n object({\n type: nativeEnum(FeeTypeEnum),\n amount: string(),\n asset: string(),\n chain: string(),\n protocol: nativeEnum(ProviderName),\n }),\n);\n\nexport type Fees = z.infer<typeof FeesSchema>;\n\nexport const EstimatedTimeSchema = object({\n inbound: optional(number({ description: \"Time to receive inbound asset in seconds\" })),\n swap: optional(number({ description: \"Time to swap assets in seconds\" })),\n outbound: optional(number({ description: \"Time to receive outbound asset in seconds\" })),\n total: number({ description: \"Total time in seconds\" }),\n});\n\nexport type EstimatedTime = z.infer<typeof EstimatedTimeSchema>;\n\nexport const EVMTransactionSchema = object({\n to: string({ description: \"Address of the recipient\" }),\n from: string({ description: \"Address of the sender\" }),\n value: string({ description: \"Value to send\" }),\n data: string({ description: \"Data 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\n object({ from: string(), value: string() }).describe(\n \"Parameters to pass to the contract method\",\n ),\n ]),\n);\n\nexport type EVMTransactionDetailsParams = z.infer<typeof EVMTransactionDetailsParamsSchema>;\n\nexport const EVMTransactionDetailsSchema = object({\n contractAddress: string({ description: \"Address of the contract to interact with\" }),\n contractMethod: string({ description: \"Name of the method to call\" }),\n contractParams: EVMTransactionDetailsParamsSchema,\n contractParamNames: array(\n string({ description: \"Names of the parameters to pass to the contract method\" }),\n ),\n approvalToken: optional(string({ description: \"Address of the token to approve spending of\" })),\n approvalSpender: optional(string({ description: \"Address of the spender to approve\" })),\n});\n\nexport type EVMTransactionDetails = z.infer<typeof EVMTransactionDetailsSchema>;\n\nconst EncodeObjectSchema = object({\n typeUrl: string(),\n value: unknown(),\n});\n\nconst FeeSchema = object({\n amount: array(object({ denom: string(), amount: string() })),\n gas: string(),\n});\n\nexport const CosmosTransactionSchema = object({\n memo: string(),\n accountNumber: number(),\n sequence: number(),\n chainId: nativeEnum(ChainId),\n msgs: array(EncodeObjectSchema),\n fee: FeeSchema,\n});\n\nexport type CosmosTransaction = z.infer<typeof CosmosTransactionSchema>;\n\nexport const RouteLegSchema = object({\n sellAsset: string({ description: \"Asset to sell\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n provider: nativeEnum(ProviderName),\n sourceAddress: string({ description: \"Source address\" }),\n destinationAddress: string({ description: \"Destination address\" }),\n estimatedTime: EstimatedTimeSchema.optional(),\n affiliate: string({ description: \"Affiliate address\" }).optional(),\n affiliateFee: number({ description: \"Affiliate fee\" }).optional(),\n slipPercentage: number({ description: \"Slippage as a percentage\" }),\n});\n\nexport type RouteLeg = z.infer<typeof RouteLegSchema>;\n\nexport const RouteLegWithoutAddressesSchema = RouteLegSchema.omit({\n sourceAddress: true,\n destinationAddress: true,\n slipPercentage: true,\n});\n\nexport type RouteLegWithoutAddresses = z.infer<typeof RouteLegWithoutAddressesSchema>;\n\nexport const RouteQuoteMetadataAssetSchema = object({\n asset: string({ description: \"Asset name\" }),\n price: number({ description: \"Price in USD\" }),\n image: string({ description: \"Asset image\" }),\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 priceImpact: optional(number({ description: \"Price impact\" })),\n assets: optional(array(RouteQuoteMetadataAssetSchema)),\n approvalAddress: optional(string({ description: \"Approval address for swap\" })),\n streamingInterval: number().optional(),\n maxStreamingQuantity: number().optional(),\n tags: array(nativeEnum(PriorityLabel)),\n affiliate: optional(string()),\n affiliateFee: optional(string()),\n txType: optional(nativeEnum(RouteQuoteTxType)),\n chainflip: optional(ChainflipMetadataSchema),\n referrer: optional(string()),\n});\n\nexport const RouteQuoteWarningSchema = array(\n object({ code: nativeEnum(WarningCodeEnum), display: string(), tooltip: string().optional() }),\n);\n\nexport type RouteQuoteWarning = z.infer<typeof RouteQuoteWarningSchema>;\n\nconst QuoteResponseRouteLegItem = object({\n provider: nativeEnum(ProviderName),\n sellAsset: string({ description: \"Asset to sell\" }),\n sellAmount: string({ description: \"Sell amount\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n buyAmount: string({ description: \"Buy amount\" }),\n buyAmountMaxSlippage: string({ description: \"Buy amount max slippage\" }),\n fees: optional(FeesSchema),\n});\n\nconst QuoteResponseRouteItem = object({\n providers: array(nativeEnum(ProviderName)),\n sellAsset: string({ description: \"Asset to sell\" }),\n sellAmount: string({ description: \"Sell amount\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n expectedBuyAmount: string({ description: \"Expected Buy amount\" }),\n expectedBuyAmountMaxSlippage: string({ description: \"Expected Buy amount max slippage\" }),\n sourceAddress: string({ description: \"Source address\" }),\n destinationAddress: string({ description: \"Destination address\" }),\n targetAddress: optional(string({ description: \"Target address\" })),\n inboundAddress: optional(string({ description: \"Inbound address\" })),\n expiration: optional(string({ description: \"Expiration\" })),\n memo: optional(string({ description: \"Memo\" })),\n fees: FeesSchema,\n txType: optional(nativeEnum(RouteQuoteTxType)),\n tx: optional(union([EVMTransactionSchema, CosmosTransactionSchema, string()])),\n estimatedTime: optional(EstimatedTimeSchema),\n totalSlippageBps: number({ description: \"Total slippage in bps\" }),\n legs: array(QuoteResponseRouteLegItem),\n warnings: RouteQuoteWarningSchema,\n meta: RouteQuoteMetadataSchema,\n});\n\nexport const QuoteResponseSchema = object({\n quoteId: string({ description: \"Quote ID\" }),\n routes: array(QuoteResponseRouteItem),\n error: optional(string({ description: \"Error message\" })),\n providerErrors: optional(\n array(\n object({\n provider: nativeEnum(ProviderName).optional(),\n errorCode: optional(nativeEnum(ErrorCode)),\n message: optional(string()),\n }),\n ),\n ),\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 GasResponseSchema = array(\n object({ id: number(), chainId: string(), value: string(), unit: string(), createdAt: string() }),\n);\n\nexport type GasResponse = z.infer<typeof GasResponseSchema>;\n\nconst BalanceResponseSchema = array(\n object({\n chain: nativeEnum(Chain),\n decimal: number(),\n ticker: string(),\n symbol: string(),\n value: string(),\n identifier: string(),\n }),\n);\n\nexport type BalanceResponse = z.infer<typeof BalanceResponseSchema>;\n",
|
|
9
|
-
"import { AssetValue, Chain, RequestClient, SKConfig, StagenetChain } from \"@swapkit/helpers\";\nimport type {\n InboundAddressesItem,\n LastBlockItem,\n MimirData,\n NodeItem,\n RunePoolInfo,\n RunePoolProviderInfo,\n THORNodeTNSDetails,\n THORNodeType,\n} from \"./types\";\n\nfunction baseUrl(type?: THORNodeType) {\n const { isStagenet } = SKConfig.get(\"envs\");\n const nodeUrls = SKConfig.get(\"nodeUrls\");\n\n switch (type) {\n case \"mayachain\": {\n const mayaNodeUrl = nodeUrls[isStagenet ? StagenetChain.Maya : Chain.Maya];\n\n return `${mayaNodeUrl}/mayachain`;\n }\n default: {\n const thorNodeUrl = nodeUrls[isStagenet ? StagenetChain.THORChain : Chain.THORChain];\n\n return `${thorNodeUrl}/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(type
|
|
6
|
+
"import { AssetValue, BaseDecimal, Chain, RequestClient, SwapKitNumber } from \"@swapkit/helpers\";\nimport type { MemberDetailsMayachain, MemberDetailsThorchain, THORNameDetails } 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 getLiquidityPositionRaw<Chain extends Chain.THORChain | Chain.Maya>(baseUrl: string) {\n return function getLiquidityPosition(\n address: string,\n ): Promise<Chain extends Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain> {\n return RequestClient.get<\n Chain extends Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain\n >(`${baseUrl}/v2/member/${address}`);\n };\n}\n\nfunction getNameDetails(baseUrl: string) {\n return function getNameDetails(name: string) {\n return RequestClient.get<THORNameDetails>(`${baseUrl}/lookup/${name}`);\n };\n}\n\nfunction getNamesByAddress(baseUrl: string) {\n return function getNamesByAddress(address: string) {\n return RequestClient.get<string[]>(`${baseUrl}/rlookup/${address}`);\n };\n}\n\nfunction getNamesByOwner(baseUrl: string) {\n return function getNamesByOwner(address: string) {\n return RequestClient.get<string[]>(`${baseUrl}/owner/${address}`);\n };\n}\n\nfunction getPoolAsset({ asset, value }: { asset: string; value: string }) {\n return AssetValue.from({ asset, value, fromBaseDecimal: BaseDecimal.THOR });\n}\n\nfunction getLiquidityPosition<IsThorchain extends boolean = true>({\n liquidityPositionGetter,\n isThorchain,\n}: {\n liquidityPositionGetter: ReturnType<\n typeof getLiquidityPositionRaw<IsThorchain extends true ? Chain.THORChain : 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 Chain.THORChain | Chain.Maya>(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 getLiquidityPositionRaw: liquidityPositionGetter,\n getNameDetails: getNameDetails(nameServiceBaseUrl),\n getNamesByAddress: getNamesByAddress(nameServiceBaseUrl),\n getNamesByOwner: getNamesByOwner(nameServiceBaseUrl),\n getLiquidityPosition: getLiquidityPosition({ liquidityPositionGetter, isThorchain }),\n };\n}\n\nexport const thorchainMidgard = getMidgardMethodsForProtocol(Chain.THORChain);\nexport const mayachainMidgard = getMidgardMethodsForProtocol(Chain.Maya);\n",
|
|
7
|
+
"import {\n type Chain,\n type EVMChain,\n EVMChains,\n type ProviderName,\n RequestClient,\n SKConfig,\n SwapKitError,\n isGasAsset,\n} from \"@swapkit/helpers\";\n\nimport {\n type BalanceResponse,\n type BrokerDepositChannelParams,\n type DepositChannelResponse,\n DepositChannelResponseSchema,\n type GasResponse,\n GasResponseSchema,\n type PriceRequest,\n type PriceResponse,\n PriceResponseSchema,\n type QuoteRequest,\n type QuoteResponse,\n QuoteResponseSchema,\n type TokenListProvidersResponse,\n type TokensResponseV2,\n type TrackerParams,\n type TrackerResponse,\n} from \"./types\";\n\nconst SKRequestClient = RequestClient.extend({\n getDynamicHeader: () => {\n const { swapKit } = SKConfig.get(\"apiKeys\");\n return swapKit ? { \"x-api-key\": swapKit } : {};\n },\n});\n\nexport function getTrackerDetails(json: TrackerParams) {\n return SKRequestClient.post<TrackerResponse>(getApiUrl(\"/track\"), { json });\n}\n\nexport async function getSwapQuote(json: QuoteRequest) {\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 (_error) {\n // throw 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}: { chain: T; address: string; scamFilter?: boolean }) {\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\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, {\n json: body,\n });\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 return parsedResponse.data;\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(\"/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\nfunction getApiUrl(path?: `/${string}`) {\n const { isDev, apiUrl, devApiUrl } = SKConfig.get(\"envs\");\n\n return `${isDev ? devApiUrl : apiUrl}${path}`;\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(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\",\n);\nfunction filterAssets(tokens: BalanceResponse) {\n return tokens.filter((token) => {\n return !potentialScamRegex.test(token.identifier) && evmAssetHasAddress(token.identifier);\n });\n}\n",
|
|
8
|
+
"import {\n type AssetValue,\n Chain,\n ChainId,\n FeeTypeEnum,\n ProviderName,\n WarningCodeEnum,\n} from \"@swapkit/helpers\";\nimport {\n type ZodType,\n array,\n boolean,\n nativeEnum,\n number,\n object,\n optional,\n string,\n union,\n unknown,\n type z,\n} from \"zod\";\nimport { ErrorCode } from \"../../types/quotes\";\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 native_send = \"native_send\",\n token_transfer = \"token_transfer\",\n native_contract_call = \"native_contract_call\",\n token_contract_call = \"token_contract_call\",\n approve = \"approve\",\n deposit = \"deposit\",\n thorname_action = \"thorname_action\",\n lp_action = \"lp_action\",\n swap = \"swap\",\n streaming_swap = \"streaming_swap\",\n stake = \"stake\",\n claim = \"claim\",\n lending = \"lending\",\n unknown = \"unknown\",\n}\n\nexport enum TxnStatus {\n unknown = \"unknown\",\n not_started = \"not_started\",\n pending = \"pending\",\n swapping = \"swapping\",\n completed = \"completed\",\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 = {\n major: number;\n minor: number;\n patch: number;\n};\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: TokenV2[];\n version: TokenProviderVersion;\n};\n\nexport type TokenV2 = {\n address?: string;\n chain: string;\n shortCode?: string;\n chainId: string;\n decimals: number;\n extensions?: {};\n identifier: string;\n logoURI: string;\n name?: string;\n symbol: string;\n ticker: string;\n};\n\nexport interface TransactionProps {\n chainId: ChainId;\n hash: string;\n block: number;\n type?: TxnType;\n status?: TxnStatus;\n trackingStatus?: TrackingStatus;\n fromAsset: AssetValue | null;\n fromAddress: string;\n toAsset: AssetValue | null;\n toAddress: string;\n finalisedAt?: number;\n meta?: Partial<TxnMeta>;\n payload?: Partial<TxnPayload>;\n}\n\nexport type TrackerParams = {\n chainId: ChainId;\n hash: string;\n block?: number;\n};\n\nexport type TrackerResponse = TransactionProps & {\n legs: TransactionLegDTO[];\n transient?: TxnTransient;\n};\n\nexport const ApiV2ErrorSchema = object({\n error: string(),\n message: string(),\n});\n\nexport const AssetValueSchema = object({\n chain: nativeEnum(Chain),\n symbol: string(),\n ticker: string(),\n decimal: optional(number()),\n address: optional(string()),\n isGasAsset: boolean(),\n isSynthetic: boolean(),\n tax: optional(object({ buy: number(), sell: number() })),\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 identifier: string(),\n provider: string(),\n cg: TokenDetailsMetadataSchema.optional(),\n price_usd: number(),\n timestamp: number(),\n }).partial(),\n);\n\nexport type PriceResponse = z.infer<typeof PriceResponseSchema>;\n\nexport const QuoteRequestSchema = object({\n sellAsset: string({ description: \"Asset to sell\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n sellAmount: string({ description: \"Amount of asset to sell\" }).refine((amount) => +amount > 0, {\n message: \"sellAmount must be greater than 0\",\n path: [\"sellAmount\"],\n }),\n providers: optional(\n array(\n string({ description: \"List of providers to use\" }).refine(\n (provider) => ProviderName[provider as ProviderName] !== undefined,\n { message: \"Invalid provider\", path: [\"providers\"] },\n ),\n ),\n ),\n sourceAddress: optional(string({ description: \"Address to send asset from\" })),\n destinationAddress: optional(string({ description: \"Address to send asset to\" })),\n slippage: optional(number({ description: \"Slippage tolerance as a percentage. Default is 3%.\" })),\n affiliate: optional(string({ description: \"Affiliate thorname\" })),\n affiliateFee: optional(\n number({ description: \"Affiliate fee in basis points\" }).refine(\n (fee) => fee === Math.floor(fee) && fee >= 0,\n { message: \"affiliateFee must be a positive integer\", path: [\"affiliateFee\"] },\n ),\n ),\n allowSmartContractSender: optional(boolean({ description: \"Allow smart contract as sender\" })),\n allowSmartContractReceiver: optional(\n boolean({ description: \"Allow smart contract as recipient\" }),\n ),\n disableSecurityChecks: optional(boolean({ description: \"Disable security checks\" })),\n includeTx: optional(\n boolean({ description: \"Set to true to include an transaction object (EVM only)\" }),\n ),\n cfBoost: optional(\n boolean({\n description: \"Set to true to enable CF boost to speed up Chainflip swaps. BTC only.\",\n }),\n ),\n referrer: optional(string({ description: \"Referrer address (referral program)\" })),\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({\n tokens: array(\n object({\n identifier: string(),\n }),\n ),\n metadata: boolean(),\n});\n\nexport type PriceRequest = z.infer<typeof PriceRequestSchema>;\n\nexport const BrokerDepositChannelParamsSchema = object({\n sellAsset: object({\n chain: string(),\n asset: string(),\n }),\n buyAsset: object({\n chain: string(),\n asset: string(), // identifier of the asset\n }),\n destinationAddress: string(),\n channelMetadata: object({\n cfParameters: string().optional(),\n gasBudget: string().optional(),\n message: string().optional(),\n }).optional(),\n affiliateFees: array(\n object({\n brokerAddress: string(),\n feeBps: number(),\n }),\n ).optional(),\n refundParameters: object({\n minPrice: string().optional(),\n refundAddress: string().optional(),\n retryDuration: number().optional(),\n }).optional(),\n dcaParameters: object({\n chunkInterval: number().optional(),\n numberOfChunks: number().optional(),\n }).optional(),\n brokerCommissionBps: number().optional(),\n maxBoostFeeBps: number().optional(),\n});\n\nexport type BrokerDepositChannelParams = z.infer<typeof BrokerDepositChannelParamsSchema>;\n\nexport const DepositChannelResponseSchema = object({\n channelId: string(),\n depositAddress: string(),\n});\n\nexport type DepositChannelResponse = z.infer<typeof DepositChannelResponseSchema>;\n\nconst TxnPayloadSchema = object({\n evmCalldata: optional(string()),\n logs: optional(unknown()),\n memo: optional(string()),\n spender: optional(string()), // used in evm approve transactions\n});\n\nexport type TxnPayload = z.infer<typeof TxnPayloadSchema>;\n\n// props that are most important while the transaction is live\nconst TxnTransientSchema = object({\n estimatedFinalisedAt: number(),\n estimatedTimeToComplete: number(),\n updatedAt: number(),\n currentLegIndex: optional(number()),\n providerDetails: optional(unknown()), // see ProviderTransientDetails\n});\n\nexport type TxnTransient = z.infer<typeof TxnTransientSchema>;\n\nconst TransactionFeesSchema = object({\n network: optional(AssetValueSchema), // gas on ethereum, network fee on thorchain, etc.\n affiliate: optional(AssetValueSchema), // e.g. affiliate in memo, other affiliate mechanisms\n liquidity: optional(AssetValueSchema), // fee paid to pool\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 TxnMetaSchema = object({\n broadcastedAt: optional(number()),\n wallet: optional(string()),\n quoteId: optional(string()),\n explorerUrl: optional(string()),\n affiliate: optional(string()),\n fees: optional(TransactionFeesSchema),\n provider: optional(nativeEnum(ProviderName)),\n images: optional(\n object({\n from: optional(string()),\n to: optional(string()),\n provider: optional(string()),\n chain: optional(string()),\n }),\n ),\n});\n\nexport type TxnMeta = z.infer<typeof TxnMetaSchema>;\n\nconst TransactionLegDTOSchema = object({\n chainId: nativeEnum(ChainId),\n hash: string(),\n block: number(),\n type: nativeEnum(TxnType),\n status: nativeEnum(TxnStatus),\n trackingStatus: optional(nativeEnum(TrackingStatus)),\n\n fromAsset: string(),\n fromAmount: string(),\n fromAddress: string(),\n toAsset: string(),\n toAmount: string(),\n toAddress: string(),\n finalAsset: optional(AssetValueSchema),\n finalAddress: optional(string()),\n\n finalisedAt: number(),\n\n transient: optional(TxnTransientSchema),\n meta: optional(TxnMetaSchema),\n payload: optional(TxnPayloadSchema),\n});\n\nexport type TransactionLegDTO = z.infer<typeof TransactionLegDTOSchema>;\n\nexport const TransactionSchema = TransactionLegDTOSchema.extend({\n legs: array(TransactionLegDTOSchema),\n});\n\nexport type TransactionDTO = z.infer<typeof TransactionLegDTOSchema> & {\n legs: TransactionLegDTO[];\n};\n\nexport const TransactionDTOSchema: ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: array(TransactionLegDTOSchema),\n});\n\nexport const FeesSchema = array(\n object({\n type: nativeEnum(FeeTypeEnum),\n amount: string(),\n asset: string(),\n chain: string(),\n protocol: nativeEnum(ProviderName),\n }),\n);\n\nexport type Fees = z.infer<typeof FeesSchema>;\n\nexport const EstimatedTimeSchema = object({\n inbound: optional(number({ description: \"Time to receive inbound asset in seconds\" })),\n swap: optional(number({ description: \"Time to swap assets in seconds\" })),\n outbound: optional(number({ description: \"Time to receive outbound asset in seconds\" })),\n total: number({ description: \"Total time in seconds\" }),\n});\n\nexport type EstimatedTime = z.infer<typeof EstimatedTimeSchema>;\n\nexport const EVMTransactionSchema = object({\n to: string({ description: \"Address of the recipient\" }),\n from: string({ description: \"Address of the sender\" }),\n value: string({ description: \"Value to send\" }),\n data: string({ description: \"Data 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\n object({ from: string(), value: string() }).describe(\n \"Parameters to pass to the contract method\",\n ),\n ]),\n);\n\nexport type EVMTransactionDetailsParams = z.infer<typeof EVMTransactionDetailsParamsSchema>;\n\nexport const EVMTransactionDetailsSchema = object({\n contractAddress: string({ description: \"Address of the contract to interact with\" }),\n contractMethod: string({ description: \"Name of the method to call\" }),\n contractParams: EVMTransactionDetailsParamsSchema,\n contractParamNames: array(\n string({ description: \"Names of the parameters to pass to the contract method\" }),\n ),\n approvalToken: optional(string({ description: \"Address of the token to approve spending of\" })),\n approvalSpender: optional(string({ description: \"Address of the spender to approve\" })),\n});\n\nexport type EVMTransactionDetails = z.infer<typeof EVMTransactionDetailsSchema>;\n\nconst EncodeObjectSchema = object({\n typeUrl: string(),\n value: unknown(),\n});\n\nconst FeeSchema = object({\n amount: array(object({ denom: string(), amount: string() })),\n gas: string(),\n});\n\nexport const CosmosTransactionSchema = object({\n memo: string(),\n accountNumber: number(),\n sequence: number(),\n chainId: nativeEnum(ChainId),\n msgs: array(EncodeObjectSchema),\n fee: FeeSchema,\n});\n\nexport type CosmosTransaction = z.infer<typeof CosmosTransactionSchema>;\n\nexport const RouteLegSchema = object({\n sellAsset: string({ description: \"Asset to sell\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n provider: nativeEnum(ProviderName),\n sourceAddress: string({ description: \"Source address\" }),\n destinationAddress: string({ description: \"Destination address\" }),\n estimatedTime: EstimatedTimeSchema.optional(),\n affiliate: string({ description: \"Affiliate address\" }).optional(),\n affiliateFee: number({ description: \"Affiliate fee\" }).optional(),\n slipPercentage: number({ description: \"Slippage as a percentage\" }),\n});\n\nexport type RouteLeg = z.infer<typeof RouteLegSchema>;\n\nexport const RouteLegWithoutAddressesSchema = RouteLegSchema.omit({\n sourceAddress: true,\n destinationAddress: true,\n slipPercentage: true,\n});\n\nexport type RouteLegWithoutAddresses = z.infer<typeof RouteLegWithoutAddressesSchema>;\n\nexport const RouteQuoteMetadataAssetSchema = object({\n asset: string({ description: \"Asset name\" }),\n price: number({ description: \"Price in USD\" }),\n image: string({ description: \"Asset image\" }),\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 priceImpact: optional(number({ description: \"Price impact\" })),\n assets: optional(array(RouteQuoteMetadataAssetSchema)),\n approvalAddress: optional(string({ description: \"Approval address for swap\" })),\n streamingInterval: number().optional(),\n maxStreamingQuantity: number().optional(),\n tags: array(nativeEnum(PriorityLabel)),\n affiliate: optional(string()),\n affiliateFee: optional(string()),\n txType: optional(nativeEnum(RouteQuoteTxType)),\n chainflip: optional(ChainflipMetadataSchema),\n referrer: optional(string()),\n});\n\nexport const RouteQuoteWarningSchema = array(\n object({ code: nativeEnum(WarningCodeEnum), display: string(), tooltip: string().optional() }),\n);\n\nexport type RouteQuoteWarning = z.infer<typeof RouteQuoteWarningSchema>;\n\nconst QuoteResponseRouteLegItem = object({\n provider: nativeEnum(ProviderName),\n sellAsset: string({ description: \"Asset to sell\" }),\n sellAmount: string({ description: \"Sell amount\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n buyAmount: string({ description: \"Buy amount\" }),\n buyAmountMaxSlippage: string({ description: \"Buy amount max slippage\" }),\n fees: optional(FeesSchema),\n});\n\nconst QuoteResponseRouteItem = object({\n providers: array(nativeEnum(ProviderName)),\n sellAsset: string({ description: \"Asset to sell\" }),\n sellAmount: string({ description: \"Sell amount\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n expectedBuyAmount: string({ description: \"Expected Buy amount\" }),\n expectedBuyAmountMaxSlippage: string({ description: \"Expected Buy amount max slippage\" }),\n sourceAddress: string({ description: \"Source address\" }),\n destinationAddress: string({ description: \"Destination address\" }),\n targetAddress: optional(string({ description: \"Target address\" })),\n inboundAddress: optional(string({ description: \"Inbound address\" })),\n expiration: optional(string({ description: \"Expiration\" })),\n memo: optional(string({ description: \"Memo\" })),\n fees: FeesSchema,\n txType: optional(nativeEnum(RouteQuoteTxType)),\n tx: optional(union([EVMTransactionSchema, CosmosTransactionSchema, string()])),\n estimatedTime: optional(EstimatedTimeSchema),\n totalSlippageBps: number({ description: \"Total slippage in bps\" }),\n legs: array(QuoteResponseRouteLegItem),\n warnings: RouteQuoteWarningSchema,\n meta: RouteQuoteMetadataSchema,\n});\n\nexport const QuoteResponseSchema = object({\n quoteId: string({ description: \"Quote ID\" }),\n routes: array(QuoteResponseRouteItem),\n error: optional(string({ description: \"Error message\" })),\n providerErrors: optional(\n array(\n object({\n provider: nativeEnum(ProviderName).optional(),\n errorCode: optional(nativeEnum(ErrorCode)),\n message: optional(string()),\n }),\n ),\n ),\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 GasResponseSchema = array(\n object({ id: number(), chainId: string(), value: string(), unit: string(), createdAt: string() }),\n);\n\nexport type GasResponse = z.infer<typeof GasResponseSchema>;\n\nconst BalanceResponseSchema = array(\n object({\n chain: nativeEnum(Chain),\n decimal: number(),\n ticker: string(),\n symbol: string(),\n value: string(),\n identifier: string(),\n }),\n);\n\nexport type BalanceResponse = z.infer<typeof BalanceResponseSchema>;\n",
|
|
9
|
+
"import { AssetValue, Chain, RequestClient, SKConfig, StagenetChain } from \"@swapkit/helpers\";\nimport type {\n InboundAddressesItem,\n LastBlockItem,\n MimirData,\n NodeItem,\n RunePoolInfo,\n RunePoolProviderInfo,\n THORNodeTNSDetails,\n THORNodeType,\n} from \"./types\";\n\nfunction baseUrl(type?: THORNodeType) {\n const { isStagenet } = SKConfig.get(\"envs\");\n const nodeUrls = SKConfig.get(\"nodeUrls\");\n\n switch (type) {\n case \"mayachain\": {\n const mayaNodeUrl = nodeUrls[isStagenet ? StagenetChain.Maya : Chain.Maya];\n\n return `${mayaNodeUrl}/mayachain`;\n }\n default: {\n const thorNodeUrl = nodeUrls[isStagenet ? StagenetChain.THORChain : Chain.THORChain];\n\n return `${thorNodeUrl}/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}: { type?: THORNodeType; name: string }): Promise<THORNodeTNSDetails> {\n try {\n const result = await RequestClient.get<THORNodeTNSDetails>(\n `${getNameServiceBaseUrl(type)}/${name}`,\n );\n return result;\n } catch (_error) {\n // If we get an error, the name doesn't exist and is available for registration\n return {\n name,\n expire_block_height: 0,\n owner: \"\",\n preferred_asset: \"\",\n affiliate_collector_rune: \"\",\n aliases: [],\n };\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({ asyncTokenLookup: true, asset: tnsDetails.preferred_asset });\n}\n\nexport function getRunePoolInfo(type?: THORNodeType) {\n return RequestClient.get<RunePoolInfo>(`${baseUrl(type)}/runepool`);\n}\n\nexport function getRunePoolProviderInfo({\n type,\n thorAddress,\n}: { type?: THORNodeType; thorAddress: string }) {\n return RequestClient.get<RunePoolProviderInfo>(`${baseUrl(type)}/rune_provider/${thorAddress}`);\n}\n",
|
|
10
10
|
"import {\n AssetValue,\n Chain,\n type ProviderName,\n RequestClient,\n getChainIdentifier,\n} from \"@swapkit/helpers\";\n\nimport { getTokenListProviders } from \"../swapkitApi/endpoints\";\nimport type { TokenListProvidersResponse } from \"../swapkitApi/types\";\nimport type { TokensResponse } from \"./types\";\n\nconst baseUrl = \"https://static.thorswap.net\";\n\nexport function getStaticTokenList(tokenListName: string) {\n return RequestClient.get<TokensResponse>(`${baseUrl}/token-list/${tokenListName}.json`);\n}\n\nexport function getLogoForAsset(assetString: string) {\n const mappedAssetIcon = getMappedAssetIcon(assetString);\n\n return `${baseUrl}/token-list/images/${mappedAssetIcon}.png`;\n}\n\nexport function getChainLogoForAsset(assetString: string) {\n const { chain } = AssetValue.from({ asset: assetString });\n const chainIdentifier = getChainIdentifier(chain).toLowerCase();\n\n return `${baseUrl}/token-list/images/${chainIdentifier}.png`;\n}\n\nlet providerData: TokenListProvidersResponse;\n\nexport async function getProviderLogo(providerName: ProviderName | string) {\n providerData ||= await getTokenListProviders();\n\n return providerData.find((p) => p.name === providerName)?.url;\n}\n\nfunction getMappedAssetIcon(assetString: string) {\n const { symbol } = AssetValue.from({ asset: assetString });\n\n if (symbol === Chain.Ethereum) return \"eth.eth\";\n\n return assetString.toLowerCase();\n}\n",
|
|
11
11
|
"import * as microgard from \"./microgard/endpoints\";\nimport { mayachainMidgard, thorchainMidgard } from \"./midgard/endpoints\";\nimport * as swapkit from \"./swapkitApi/endpoints\";\nimport * as thornode from \"./thornode/endpoints\";\nimport * as tsStatic from \"./thorswapStatic/endpoints\";\n\nexport * from \"./microgard/types\";\nexport * from \"./thorswapStatic/types\";\nexport * from \"./thornode/types\";\nexport * from \"./swapkitApi/types\";\n\nexport const SwapKitApi = {\n ...swapkit,\n ...tsStatic,\n mayachainMidgard,\n microgard,\n thorchainMidgard,\n thornode,\n};\n"
|
|
12
12
|
],
|
|
13
|
-
"mappings": "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",
|
|
14
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "AF6D04593D82000A64756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|