@airgap/serializer
Version:
The @airgap/serializer provides serializers used in AirGap applications.
44 lines (43 loc) • 1.94 kB
TypeScript
/// <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;
}