1 | import { Monitor } from '@neo-one/monitor-esnext-esm';
|
2 | import { Block } from './Block';
|
3 | import { Blockchain, VerifyTransactionResult } from './Blockchain';
|
4 | import { Endpoint } from './net';
|
5 | import { ConsensusPayload } from './payload';
|
6 | import { Transaction } from './transaction';
|
7 |
|
8 | export 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 |
|
18 | export interface RelayTransactionResult {
|
19 | readonly verifyResult?: VerifyTransactionResult;
|
20 | }
|
21 |
|
22 | export 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 | }
|