import { Array as RunTypesArray, Literal, Record, Static, String, Union } from "runtypes"; import { ErrorVerificationFragment, InvalidVerificationFragment, SkippedVerificationFragment, ValidVerificationFragment, } from "../../../types/core"; import { Reason } from "../../../types/error"; /** * Token registry mint status */ export const ValidTokenRegistryStatus = Record({ minted: Literal(true), address: String, }); export type ValidTokenRegistryStatus = Static; export const InvalidTokenRegistryStatus = Record({ minted: Literal(false), address: String, reason: Reason, }); export type InvalidTokenRegistryStatus = Static; /** * Data for v2 Fragments */ export const ValidTokenRegistryDataV2 = Record({ mintedOnAll: Literal(true), details: RunTypesArray(ValidTokenRegistryStatus), }); export type ValidTokenRegistryDataV2 = Static; export const InvalidTokenRegistryDataV2 = Record({ mintedOnAll: Literal(false), details: RunTypesArray(Union(ValidTokenRegistryStatus, InvalidTokenRegistryStatus)), }); export type InvalidTokenRegistryDataV2 = Static; /** * Data for v3 Fragments */ export const ValidTokenRegistryDataV3 = Record({ mintedOnAll: Literal(true), details: ValidTokenRegistryStatus, }); export type ValidTokenRegistryDataV3 = Static; export const InvalidTokenRegistryDataV3 = Record({ mintedOnAll: Literal(false), details: InvalidTokenRegistryStatus, }); export type InvalidTokenRegistryDataV3 = Static; /** * Fragments */ export type OpenAttestationEthereumTokenRegistryStatusValidFragmentV2 = ValidVerificationFragment; export type OpenAttestationEthereumTokenRegistryStatusValidFragmentV3 = ValidVerificationFragment; export type OpenAttestationEthereumTokenRegistryStatusInvalidFragmentV2 = InvalidVerificationFragment; export type OpenAttestationEthereumTokenRegistryStatusInvalidFragmentV3 = InvalidVerificationFragment; export type OpenAttestationEthereumTokenRegistryStatusErrorFragment = ErrorVerificationFragment; export type OpenAttestationEthereumTokenRegistryStatusFragment = | OpenAttestationEthereumTokenRegistryStatusValidFragmentV2 | OpenAttestationEthereumTokenRegistryStatusValidFragmentV3 | OpenAttestationEthereumTokenRegistryStatusInvalidFragmentV2 | OpenAttestationEthereumTokenRegistryStatusInvalidFragmentV3 | OpenAttestationEthereumTokenRegistryStatusErrorFragment | SkippedVerificationFragment;