@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
TypeScript
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 {};