forked from web3/web3.js
-
Notifications
You must be signed in to change notification settings - Fork 3
/
types.d.ts
92 lines (86 loc) · 2.29 KB
/
types.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
export type Callback<T> = (error: Error, result: T) => void;
export interface EventEmitter {
on(type: "data", handler: (event: EventLog) => void): EventEmitter;
on(type: "changed", handler: (receipt: EventLog) => void): EventEmitter;
on(type: "error", handler: (error: Error) => void): EventEmitter;
on(
type: "error" | "data" | "changed",
handler: (error: Error | TransactionReceipt | string) => void
): EventEmitter;
}
export interface EventLog {
event: string;
address: string;
returnValues: any;
logIndex: number;
transactionIndex: number;
transactionHash: string;
blockHash: string;
blockNumber: number;
raw?: { data: string; topics: string[] };
}
export interface TransactionReceipt {
transactionHash: string;
transactionIndex: number;
blockHash: string;
blockNumber: number;
from: string;
to: string;
contractAddress: string;
cumulativeGasUsed: number;
gasUsed: number;
logs?: Log[];
events?: {
[eventName: string]: EventLog;
};
status: boolean;
}
export interface EncodedTransaction {
raw: string;
tx: {
nonce: string;
gasPrice: string;
gas: string;
to: string;
value: string;
input: string;
v: string;
r: string;
s: string;
hash: string;
};
}
export interface Logs {
fromBlock?: number;
address?: string;
topics?: Array<string | string[]>;
}
export interface Log {
address: string;
data: string;
topics: string[];
logIndex: number;
transactionHash: string;
transactionIndex: number;
blockHash: string;
blockNumber: number;
}
export interface Subscribe<T> {
subscription: {
id: string;
subscribe(callback?: Callback<Subscribe<T>>): Subscribe<T>;
unsubscribe(callback?: Callback<boolean>): void | boolean;
arguments: object;
};
on(type: "data" | "changed", handler: (data: T) => void): void;
on(type: "error", handler: (data: Error) => void): void;
}
export interface Shh {
generateSymKeyFromPassword(password: string): Promise<string>;
generateSymKeyFromPassword(
password: string,
callback: Callback<string>
): void;
// TODO: type every method
}
export class Bzz {} // TODO: Type