UNPKG

@yoroi/portfolio

Version:

The Portfolio package of Yoroi SDK

42 lines 1.98 kB
import { z } from 'zod'; import { responseRecordWithCacheSchemaMaker } from './response-record-with-cache-schema-maker'; import { TokenSourceSchema } from './token-source'; import { TokenIdSchema } from './token-id'; import { cacheRecordSchemaMaker } from '@yoroi/common'; const DiscoverySourceSchema = z.object({ name: TokenSourceSchema, decimals: TokenSourceSchema, ticker: TokenSourceSchema, symbol: TokenSourceSchema, originalImage: TokenSourceSchema, description: TokenSourceSchema, website: TokenSourceSchema }); const DiscoveryOriginalMetadataSchema = z.object({ filteredMintMetadatum: z.record(z.unknown()).nullable(), referenceDatum: z.record(z.unknown()).nullable(), tokenRegistry: z.record(z.unknown()).nullable() }); export const TokenDiscoverySchema = z.object({ id: TokenIdSchema, source: DiscoverySourceSchema, originalMetadata: DiscoveryOriginalMetadataSchema, supply: z.string() }); export const isTokenDiscovery = data => TokenDiscoverySchema.safeParse(data).success; export const parseTokenDiscovery = data => { return isTokenDiscovery(data) ? data : undefined; }; export const TokenDiscoveryResponseWithCacheRecordSchema = responseRecordWithCacheSchemaMaker(TokenDiscoverySchema); export const isTokenDiscoveryResponseWithCacheRecord = data => TokenDiscoveryResponseWithCacheRecordSchema.safeParse(data).success; export const parseTokenDiscoveryResponseWithCacheRecord = data => { return isTokenDiscoveryResponseWithCacheRecord(data) ? data : undefined; }; export const TokenDiscoveryWithCacheRecordSchema = // zod doesn't work with string templates yet, check TokenIdSchema for more info cacheRecordSchemaMaker(TokenDiscoverySchema); export const isTokenDiscoveryWithCacheRecord = data => TokenDiscoveryWithCacheRecordSchema.safeParse(data).success; export const parseTokenDiscoveryWithCacheRecord = data => { return isTokenDiscoveryWithCacheRecord(data) ? data : undefined; }; //# sourceMappingURL=token-discovery.js.map