@airgap/serializer
Version:
The @airgap/serializer provides serializers used in AirGap applications.
26 lines (25 loc) • 1.41 kB
TypeScript
import { ProtocolSymbols } from '@airgap/coinlib-core/utils/ProtocolSymbols';
import { IACMessageDefinitionObject } from './message';
import { SchemaInfo } from './schemas/schema';
import { TransactionValidator, TransactionValidatorFactory } from './validators/transactions.validator';
export declare enum IACPayloadType {
FULL = 0,
CHUNKED = 1
}
export declare class Serializer {
private readonly schemas;
private readonly validators;
private static instance;
static getInstance(): Serializer;
private constructor();
static addSchema(schemaId: number, schema: SchemaInfo, protocol?: ProtocolSymbols): void;
addSchema(schemaId: number, schema: SchemaInfo, protocol?: ProtocolSymbols): void;
static getSchema(schemaId: number, protocol?: ProtocolSymbols): SchemaInfo;
getSchema(schemaId: number, protocol?: ProtocolSymbols): SchemaInfo;
private static getSchemaName;
static addValidator(protocol: ProtocolSymbols, validator: TransactionValidatorFactory): void;
addValidator(protocol: ProtocolSymbols, validator: TransactionValidatorFactory): void;
serialize(messages: IACMessageDefinitionObject[], singleChunkSize?: number, multiChunkSize?: number): Promise<string[]>;
deserialize(data: string[]): Promise<IACMessageDefinitionObject[]>;
serializationValidatorByProtocolIdentifier(protocolIdentifier: ProtocolSymbols): TransactionValidator;
}