1 | import { ITransactionData } from "../interfaces";
|
2 | import { BigNumber } from "../utils";
|
3 | import { ITransaction, ITransactionJson } from "./transactions";
|
4 | export interface IBlockVerification {
|
5 | verified: boolean;
|
6 | errors: string[];
|
7 | containsMultiSignatures: boolean;
|
8 | }
|
9 | export interface IBlock {
|
10 | serialized: string;
|
11 | data: IBlockData;
|
12 | transactions: ITransaction[];
|
13 | verification: IBlockVerification;
|
14 | getHeader(): IBlockData;
|
15 | verifySignature(): boolean;
|
16 | verify(): IBlockVerification;
|
17 | toString(): string;
|
18 | toJson(): IBlockJson;
|
19 | }
|
20 | export interface IBlockData {
|
21 | id?: string;
|
22 | idHex?: string;
|
23 | timestamp: number;
|
24 | version: number;
|
25 | height: number;
|
26 | previousBlockHex?: string;
|
27 | previousBlock: string;
|
28 | numberOfTransactions: number;
|
29 | totalAmount: BigNumber;
|
30 | totalFee: BigNumber;
|
31 | reward: BigNumber;
|
32 | payloadLength: number;
|
33 | payloadHash: string;
|
34 | generatorPublicKey: string;
|
35 | blockSignature?: string;
|
36 | serialized?: string;
|
37 | transactions?: ITransactionData[];
|
38 | }
|
39 | export interface IBlockJson {
|
40 | id?: string;
|
41 | idHex?: string;
|
42 | timestamp: number;
|
43 | version: number;
|
44 | height: number;
|
45 | previousBlockHex?: string;
|
46 | previousBlock: string;
|
47 | numberOfTransactions: number;
|
48 | totalAmount: string;
|
49 | totalFee: string;
|
50 | reward: string;
|
51 | payloadLength: number;
|
52 | payloadHash: string;
|
53 | generatorPublicKey: string;
|
54 | blockSignature?: string;
|
55 | serialized?: string;
|
56 | transactions?: ITransactionJson[];
|
57 | }
|