UNPKG

@ceramicnetwork/core

Version:

Typescript implementation of the Ceramic protocol

33 lines 1.99 kB
import { AppliableStreamLog, DiagnosticsLogger, LogEntry, Stream, StreamHandler, StreamState, UnappliableStreamLog, StreamReaderWriter } from '@ceramicnetwork/common'; import { CID } from 'multiformats/cid'; import { HandlersMap } from '../handlers-map.js'; import { LogSyncer } from './log-syncer.js'; declare type ApplyFullLogOpts = { throwOnInvalidCommit: boolean; }; export declare type ApplyLogToStateOpts = { throwOnInvalidCommit: boolean; throwIfStale: boolean; throwOnConflict: boolean; }; export declare type ResetStateToCommitOpts = { copyTimestampsFromRemovedAnchors: boolean; }; export declare class StateManipulator { private readonly logger; private readonly streamTypeHandlers; private readonly logSyncer; private readonly context; constructor(logger: DiagnosticsLogger, streamTypeHandlers: HandlersMap, logSyncer: LogSyncer, context: StreamReaderWriter); _applyLog<T extends Stream>(handler: StreamHandler<T>, state: StreamState | null, log: AppliableStreamLog, throwOnInvalidCommit: boolean): Promise<StreamState>; assertStreamTypeAppliable(streamType: number): void; applyFullLog(streamType: number, log: AppliableStreamLog, opts: ApplyFullLogOpts): Promise<StreamState>; _copyTrustedTimestamps(source: Array<LogEntry>, dest: UnappliableStreamLog, copyTimestampsFromRemovedAnchors: boolean): AppliableStreamLog; _findAnchorIndex(log: Array<LogEntry>): number; _pickLogToAccept(log1: Array<LogEntry>, log2: Array<LogEntry>): Array<LogEntry>; _applyLogToStateWithoutCacaoVerification(initialState: StreamState, logToApply: AppliableStreamLog, opts: ApplyLogToStateOpts): Promise<StreamState>; resetStateToCommit(initialState: StreamState, commitCid: CID, opts: ResetStateToCommitOpts): Promise<StreamState>; applyLogToState(initialState: StreamState, logToApply: AppliableStreamLog, opts: ApplyLogToStateOpts): Promise<StreamState>; } export {}; //# sourceMappingURL=state-manipulator.d.ts.map