Skip to content
Snippets Groups Projects
types.ts 4.08 KiB
Newer Older
  • Learn to ignore specific revisions
  • import VerificationError from "./services/VerificationService/VerificationError";
    
    
    Igor Markin's avatar
    Igor Markin committed
    export interface Participant {
    
    igorwork's avatar
    igorwork committed
      name: string;
      email: string;
    
    Igor Markin's avatar
    Igor Markin committed
    }
    
    export interface Attachment {
    
    igorwork's avatar
    igorwork committed
      name: string;
    
    igorwork's avatar
    igorwork committed
      url?: string;
    
    igorwork's avatar
    igorwork committed
      size: number;
      hash: string;
    
      signature: string;
    
    Igor Markin's avatar
    Igor Markin committed
    }
    
    
    Alexey Lunin's avatar
    Alexey Lunin committed
    export interface IpfsContentData {
      cid: string;
      key: string;
      head: string;
    }
    
    export interface IpfsAttachmentData {
      cid: string;
      key: string;
      contentHash: string;
      head: string;
    
    Alexey Lunin's avatar
    Alexey Lunin committed
    }
    
    
    export type IpfsDataVersion = undefined | "v2";
    
    
    Alexey Lunin's avatar
    Alexey Lunin committed
    export interface IpfsData {
    
    Alexey Lunin's avatar
    Alexey Lunin committed
      plaintText: IpfsContentData;
      html: IpfsContentData;
      attachments: Array<IpfsAttachmentData>;
    }
    
    
    export interface MessageData {
    
    igorwork's avatar
    igorwork committed
      sender: Participant;
    
      date: string;
    
    igorwork's avatar
    igorwork committed
      recipients: {
        to: Array<Participant>;
    
        cc?: Array<Participant>;
    
    igorwork's avatar
    igorwork committed
      };
      attachments: Array<Attachment>;
    
      senderPublicKeyUuid: string;
    
    Alexey Lunin's avatar
    Alexey Lunin committed
      ipfs?: IpfsData;
    
    Igor Markin's avatar
    Igor Markin committed
    }
    
    Igor Markin's avatar
    Igor Markin committed
    
    export interface StatusData {
    
      statusRaw: string;
    
      batchId: string;
    
    Igor Markin's avatar
    Igor Markin committed
      transactionHash: string;
    
    export interface BatchVerificationDetails {
    
    Igor Markin's avatar
    Igor Markin committed
      statusPosition: number;
    
      batchSize: number;
    
    Igor Markin's avatar
    Igor Markin committed
      verified: boolean;
    
      batchHash: string;
    
    export interface StatusesBatchData {
      verificationMethod: string;
      hash: string;
      items: Array<string>;
    
    Igor Markin's avatar
    Igor Markin committed
    }
    
    export interface VerificationData {
      statusData?: StatusData;
      blockData?: BlockData;
    
      batchVerificationDetails?: BatchVerificationDetails;
    
    Igor Markin's avatar
    Igor Markin committed
    }
    
    export interface BlockData {
      blockHeight: number;
      timestamp: number;
      confirmationsAmount: number;
    }
    
    export interface TxData {
      hash: string;
      blockHeight: number;
    
    Igor Markin's avatar
    Igor Markin committed
      tx: {
        callData: string;
      };
    
    export interface DecodedCallData {
      key: string;
      value: string;
    
    export interface AttachmentSignature {
      value: string;
      preSignHashAlgorithm: string;
    }
    
    
    igorwork's avatar
    igorwork committed
    export interface SenderStatusObject {
      signatureTime: number;
    
      signatureTimeSignature: string;
    
      messageSignature?: string;
    
    Igor Markin's avatar
    Igor Markin committed
      attachmentsSignatures: { [key: string]: { list: AttachmentSignature[] } };
    
      messageSignatureHashingAlgorithm: string;
      senderSystem: string;
    
    Igor Markin's avatar
    Igor Markin committed
      sealHash?: string;
      sealSignature?: string;
    
      htmlPartsSignature?: string;
      plainPartsSignature?: string;
      pseudoPlainPartsSignature?: string;
    
    igorwork's avatar
    igorwork committed
    }
    
    export interface RecipientStatusObjectData {
    
    igorwork's avatar
    igorwork committed
      creationDate: number;
    
      gatewayDomainHash: string;
      randomToken: string;
    
    igorwork's avatar
    igorwork committed
    }
    
    export interface RecipientStatusObject {
    
      iv: string;
      encryptedContent: string;
      decryptors: { [key: string]: string };
    
    igorwork's avatar
    igorwork committed
    }
    
    export interface WrapperData {
    
      data: string | ArrayBuffer;
    
    igorwork's avatar
    igorwork committed
      version: number;
      className: string;
    }
    
    export interface QrCodeData {
      encryptedKey: Uint8Array;
      encryptedData: Uint8Array;
      nonce: Uint8Array;
    }
    
    
    export type StatusObject = SenderStatusObject | RecipientStatusObject;
    
    
    // Types
    export interface KeyDataPair {
      key: string;
      data: string;
    }
    
    Zdravko Iliev's avatar
    Zdravko Iliev committed
    
    
    export interface ICert {
      clientCertificate: boolean;
      issuedBy: {
        countryName: string;
        organizationName: string;
        commonName: string;
      };
      issuedTo: {
        countryName: string;
        organizationalUnitName: string;
        organizationName: string;
        commonName: string;
      };
      validityPeriod: {
        notBefore: string;
        notAfter: string;
      };
      pemCertificate: string;
    }
    
    export interface ISignature {
      isExpired: boolean;
      meta: {
        certs: Array<ICert>;
        reason: string;
        contactInfo: string;
        location: string;
        signDate: string;
      };
    }
    
    
    Zdravko Iliev's avatar
    Zdravko Iliev committed
    export interface DocumentData {
      author: string;
      documentTitle: string;
      creationDate: string;
    
      lastModDate: string;
    
    Zdravko Iliev's avatar
    Zdravko Iliev committed
      documentPages: number;
    
      expired?: boolean;
      signatures?: Array<ISignature>;
      ipfs?: IpfsContentData;
    
    Zdravko Iliev's avatar
    Zdravko Iliev committed
    }
    
    export interface DocumentStatusObject {
      timestamp: number;
      sealHash: string;
    }
    
    Zdravko Iliev's avatar
    Zdravko Iliev committed
    
    export interface SealHeadData {
      key: string;
      data: string;
      ipfsIndexCid: string;
    }
    
    export interface SealIndexObject {
      sealKey: string;
      sealTailCid: string;
      chain: string;
      transactionId: string;
      hashBatchId: string;
    }