@ceramicnetwork/core
Version:
Typescript implementation of the Ceramic protocol
33 lines • 1.99 kB
TypeScript
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