@cityofzion/neo-js
Version:
Running NEO blockchain full node with Node.js and MongoDB.
59 lines (58 loc) • 2.41 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { LoggerOptions } from 'node-log-it';
export interface MongodbStorageOptions {
connectOnInit?: boolean;
reviewIndexesOnConnect?: boolean;
connectionString?: string;
userAgent?: string;
collectionNames?: {
blocks?: string;
blockMetas?: string;
transactionMetas?: string;
};
loggerOptions?: LoggerOptions;
}
export declare class MongodbStorage extends EventEmitter {
private _isReady;
private blockDao;
private blockMetaDao;
private transactionMetaDao;
private options;
private logger;
constructor(options?: MongodbStorageOptions);
isReady(): boolean;
getBlockCount(): Promise<number>;
getHighestBlockHeight(): Promise<number>;
setBlockCount(height: number): Promise<void>;
countBlockRedundancy(height: number): Promise<number>;
getBlock(height: number): Promise<object>;
getBlocks(height: number): Promise<object[]>;
getTransaction(transactionId: string): Promise<object>;
setBlock(height: number, block: object, options?: object): Promise<void>;
pruneBlock(height: number, redundancySize: number): Promise<void>;
analyzeBlocks(startHeight: number, endHeight: number): Promise<object[]>;
getBlockMetaCount(): Promise<number>;
getHighestBlockMetaHeight(): Promise<number>;
setBlockMeta(blockMeta: object): Promise<void>;
setTransactionMeta(transactionMeta: object): Promise<void>;
analyzeBlockMetas(startHeight: number, endHeight: number): Promise<object[]>;
analyzeTransactionMetas(startHeight: number, endHeight: number): Promise<object[]>;
removeBlockMetaByHeight(height: number): Promise<void>;
countLegacyTransactionMeta(targetApiLevel: number): Promise<number>;
pruneLegacyTransactionMeta(targetApiLevel: number): Promise<void>;
close(): Promise<void>;
private readyHandler;
private validateOptionalParameters;
private initConnection;
private setReady;
private reviewIndexes;
private reviewBlockIndexForHeight;
private reviewBlockIndexForTransactionId;
private reviewBlockMetaIndexForHeight;
private reviewBlockMetaIndexForTime;
private reviewTransactionMetaIndexForHeight;
private reviewTransactionMetaIndexForTime;
private reviewTransactionMetaIndexForTransactionId;
private reviewTransactionMetaIndexForType;
}