UNPKG

1.37 kBPlain TextView Raw
1import { Monitor } from '@neo-one/monitor-esnext-esm';
2import { Block } from './Block';
3import { Blockchain, VerifyTransactionResult } from './Blockchain';
4import { Endpoint } from './net';
5import { ConsensusPayload } from './payload';
6import { Transaction } from './transaction';
7
8export interface Consensus {
9 readonly runConsensusNow: () => Promise<void>;
10 readonly fastForwardOffset: (seconds: number) => Promise<void>;
11 readonly fastForwardToTime: (seconds: number) => Promise<void>;
12 readonly nowSeconds: () => number;
13 readonly pause: () => Promise<void>;
14 readonly reset: () => Promise<void>;
15 readonly resume: () => Promise<void>;
16}
17
18export interface RelayTransactionResult {
19 readonly verifyResult?: VerifyTransactionResult;
20}
21
22export interface Node {
23 readonly blockchain: Blockchain;
24 readonly relayTransaction: (
25 transaction: Transaction,
26 options?: { readonly throwVerifyError?: boolean; readonly forceAdd?: boolean },
27 ) => Promise<RelayTransactionResult>;
28 readonly relayConsensusPayload: (payload: ConsensusPayload) => void;
29 readonly relayBlock: (block: Block, monitor?: Monitor) => Promise<void>;
30 readonly connectedPeers: ReadonlyArray<Endpoint>;
31 readonly memPool: { readonly [hash: string]: Transaction };
32 readonly syncMemPool: () => void;
33 readonly consensus: Consensus | undefined;
34 readonly reset: () => Promise<void>;
35}