UNPKG

@yoroi/api

Version:
41 lines (40 loc) 1.19 kB
"use strict"; import { createTypeGuardFromSchema, fetcher } from '@yoroi/common'; import { z } from 'zod'; export const getUtxoData = (baseUrl, request = fetcher) => async ({ txHash, txIndex }) => { return request({ url: `${baseUrl}/api/txs/io/${txHash}/o/${txIndex}`, data: undefined, method: 'GET', headers: { 'Content-Type': 'application/json' } }).then(response => { const parsedResponse = parseUtxoDataResponse(response); if (!parsedResponse) return Promise.reject(new Error('Invalid utxo data response')); return Promise.resolve(parsedResponse); }); }; export const parseUtxoDataResponse = data => { return isUtxosDataResponse(data) ? data : undefined; }; const AssetSchema = z.object({ assetId: z.string(), policyId: z.string(), name: z.string(), amount: z.string() }); const UtxoDataSchema = z.object({ output: z.object({ address: z.string(), amount: z.string(), dataHash: z.string().nullable(), assets: z.array(AssetSchema) }), spendingTxHash: z.string().nullable().optional() }); export const isUtxosDataResponse = createTypeGuardFromSchema(UtxoDataSchema); //# sourceMappingURL=utxo-data.js.map