incubed
Version:
Typescript-version of the incubed client
37 lines (36 loc) • 1.24 kB
TypeScript
import ChainContext from '../../client/ChainContext';
import { ChainSpec, RPCRequest, RPCResponse } from '../../types/types';
import Client from '../../client/Client';
import Filters from './filter';
export default class EthChainContext extends ChainContext {
codeCache: CacheNode;
blockCache: {
number: number;
header: Buffer;
hash: Buffer;
}[];
filters: Filters;
constructor(client: Client, chainId: string, chainSpec: ChainSpec);
handleIntern(request: RPCRequest): Promise<RPCResponse>;
getCodeFor(addresses: Buffer[], block?: string): Promise<Buffer[]>;
getLastBlockHashes(): string[];
getBlockHeader(blockNumber: number): Buffer;
getBlockHeaderByHash(blockHash: Buffer): Buffer;
addBlockHeader(blockNumber: number, header: Buffer): Buffer;
initCache(): void;
}
export interface CacheEntry {
added: number;
data: Buffer;
}
export declare class CacheNode {
limit: number;
data: Map<string, CacheEntry>;
dataLength: number;
constructor(limit: number);
get(key: Buffer): Buffer;
put(key: Buffer, val: Buffer): void;
getByteLength(entry: Buffer | string): number;
toStorage(): string;
fromStorage(data: string): void;
}