UNPKG

@klayr-did/klayr-verifiable-credentials

Version:

A library for working with W3C verifiable credentials (VC) and verifiable presentations (VP) using Klayr DID

60 lines (59 loc) 2 kB
import { type VerifiableCredential as TVerifiableCredential, type VerifiablePresentation as TVerifiablePresentation } from '@digitalcredentials/vc-data-model'; import { type DocumentLoader as IDocumentLoader, type DidDocument, type VerificationMethod } from '@klayr-did/klayr-decentralized-identifier'; type VCDIVerifiableCredential = Exclude<TVerifiableCredential, string>; export type DocumentLoader = IDocumentLoader; export interface VerificationKey extends VerificationMethod { revoked?: any; privateKeyMultibase?: string; } export type VerifiableCredential = Partial<VCDIVerifiableCredential> & { '@context': VCDIVerifiableCredential['@context']; type: VCDIVerifiableCredential['type']; credentialSubject: VCDIVerifiableCredential['credentialSubject']; }; export type VerifiablePresentation = TVerifiablePresentation & { verifiableCredential?: VerifiableCredential | VerifiableCredential[]; }; export interface Proof { type: string; created: string; verificationMethod: string; proofPurpose: string; proofValue: string; } export interface VCVerificationResult { verified: boolean; results: Array<{ proof: Proof & { '@context': string[]; }; verified: boolean; verificationMethod: VerificationMethod; purposeResult: { valid: boolean; }; }>; } export interface VPVerificationResult { verified: boolean; credentialResults: Array<{ verified: boolean; results: VCVerificationResult[]; credentialId: string; }>; presentationResult: { verified: boolean; results: Array<{ proof: Proof & { '@context': string[]; }; verified: boolean; verificationMethod: VerificationMethod; purposeResult: { valid: boolean; controller: Omit<DidDocument, 'controller' | 'service'>; }; }>; }; } export {};