Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 36x 36x 36x 36x 36x 36x 10x 36x 10x 10x 36x 8x | import { Cardano } from '@cardano-sdk/core'; import { Cip6ExtMetadataResponse } from './types'; import { ExtMetadataFormat, StakePoolExtMetadataResponse } from '../types'; import { isNotNil } from '@cardano-sdk/util'; import fs from 'fs'; import path from 'path'; /** * Extracts the extended metadata url, takes CIP-6 with priority if both extended properties exist * * CIP-6 standard: https://github.com/cardano-foundation/CIPs/blob/master/CIP-0006/README.md * AdaPools standard: https://raw.githubusercontent.com/cardanians/adapools.org/master/example-meta.json * * @returns url string */ export const getExtMetadataUrl = (metadata: Cardano.StakePoolMetadata) => metadata.extDataUrl ?? metadata.extended!; /** * A check to determine the schema format * * CIP-6 schema: https://raw.githubusercontent.com/cardano-foundation/CIPs/b93e77119e15d8763d7548a8a00c4cb7591714e4/CIP-0006/schema.json * AdaPools schema: https://a.adapools.org/extended-example * * @returns extended metadata format */ export const getSchemaFormat = (value: Cardano.StakePoolMetadata): ExtMetadataFormat => isNotNil(value.extDataUrl) ? ExtMetadataFormat.CIP6 : ExtMetadataFormat.AdaPools; /** Loads JSON schema based on extended metadata format */ export const loadJsonSchema = (format: ExtMetadataFormat): JSON => { const schemaPath = path.join(__dirname, 'schemas', `${format}.json`); return JSON.parse(fs.readFileSync(schemaPath, 'utf8')); }; /** Type guard to determine if the consumed ext metadata response is in CIP-6 format */ export const isCip6Format = (response: StakePoolExtMetadataResponse): response is Cip6ExtMetadataResponse => isNotNil(response.pool) || isNotNil(response.serial); |