UNPKG

@airgap/serializer

Version:

The @airgap/serializer provides serializers used in AirGap applications.

44 lines (43 loc) 1.94 kB
/// <reference types="node" /> import { ProtocolSymbols } from '@airgap/coinlib-core/utils/ProtocolSymbols'; import { IACMessageType } from './interfaces'; import { AccountShareResponse } from './schemas/definitions/account-share-response'; import { MessageSignRequest } from './schemas/definitions/message-sign-request'; import { MessageSignResponse } from './schemas/definitions/message-sign-response'; import { Serializer } from './serializer'; import { TransactionSignRequest } from './transactions/transaction-sign-request'; import { TransactionSignResponse } from './transactions/transaction-sign-response'; import { RLPData } from './utils/toBuffer'; export declare type IACMessages = AccountShareResponse | MessageSignRequest | MessageSignResponse | TransactionSignRequest | TransactionSignResponse; export interface IACMessageDefinitionObject { id: string; type: IACMessageType; protocol: ProtocolSymbols; payload: IACMessages; } export interface MessageDefinitionArray { [0]: Buffer; [1]: Buffer; [2]: Buffer; [3]: Buffer; [4]: Buffer; } export declare class Message implements IACMessageDefinitionObject { private readonly version; private readonly schema; readonly id: string; readonly type: IACMessageType; readonly protocol: ProtocolSymbols; readonly payload: IACMessages; constructor(type: IACMessageType, protocol: ProtocolSymbols, payload: IACMessages, id?: string, version?: string, serializer?: Serializer); asJson(): IACMessageDefinitionObject; asArray(): RLPData; static fromDecoded(object: IACMessageDefinitionObject, serializer?: Serializer): Message; static fromEncoded(buf: MessageDefinitionArray, serializer?: Serializer): Message; private static parseVersion; private static parseType; private static parseProtocol; private static parseId; private static parsePayload; private static validateProperty; }