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 39 40 41 42 43 44 45 46 47 48 49 50 | 38x 38x 38x 38x 38x 38x 38x 38x 38x 38x 38x 38x | import { Command } from 'commander'; import { MissingProgramOption } from '../errors'; import { STAKE_POOL_METADATA_QUEUE } from '@cardano-sdk/projection-typeorm'; import { addOptions, newOption } from './util'; import { urlValidator } from '../../util/validators'; export enum StakePoolMetadataOptionDescriptions { Mode = 'This mode governs where the stake pool metadata is fetched from', Url = 'SMASH server api url' } export enum StakePoolMetadataFetchMode { /** * Use metadata available from the provided data by the projection. Projection reads its data directly from the certificate. */ DIRECT = 'direct', /** Use configured SMASH server to fetch stake pool metadata. */ SMASH = 'smash' } export interface StakePoolMetadataProgramOptions { smashUrl?: string; metadataFetchMode: StakePoolMetadataFetchMode; } export const withStakePoolMetadataOptions = (command: Command) => { addOptions(command, [ newOption( '--metadata-fetch-mode <metadataFetchMode>', StakePoolMetadataOptionDescriptions.Mode, 'METADATA_FETCH_MODE', (mode: string) => StakePoolMetadataFetchMode[mode.toUpperCase() as keyof typeof StakePoolMetadataFetchMode], 'direct' ).choices(['direct', 'smash']), newOption( '--smash-url <smashUrl>', StakePoolMetadataOptionDescriptions.Url, 'SMASH_URL', urlValidator(StakePoolMetadataOptionDescriptions.Url, true) ) ]); return command; }; export const checkProgramOptions = (metadataFetchMode: StakePoolMetadataFetchMode, smashUrl: string | undefined) => { Iif (metadataFetchMode === StakePoolMetadataFetchMode.SMASH && !smashUrl) throw new MissingProgramOption(STAKE_POOL_METADATA_QUEUE, 'smash-url to be set when metadata-fetch-mode is smash'); }; |