1 | import BigNumber = require("bn.js");
|
2 | import * as us from "underscore";
|
3 | import PromiEvent from "./promiEvent";
|
4 | import { ABIDefinition } from "./eth/abi";
|
5 | export type Callback<T> = (error: Error, result: T) => void;
|
6 |
|
7 | export interface EventEmitter {
|
8 | on(type: "data", handler: (event: EventLog) => void): EventEmitter;
|
9 | on(type: "changed", handler: (receipt: EventLog) => void): EventEmitter;
|
10 | on(type: "error", handler: (error: Error) => void): EventEmitter;
|
11 | on(
|
12 | type: "error" | "data" | "changed",
|
13 | handler: (error: Error | TransactionReceipt | string) => void
|
14 | ): EventEmitter;
|
15 | }
|
16 |
|
17 | export interface EventLog {
|
18 | event: string;
|
19 | address: string;
|
20 | returnValues: any;
|
21 | logIndex: number;
|
22 | transactionIndex: number;
|
23 | transactionHash: string;
|
24 | blockHash: string;
|
25 | blockNumber: number;
|
26 | raw?: { data: string; topics: string[] };
|
27 | }
|
28 |
|
29 | export interface TransactionReceipt {
|
30 | transactionHash: string;
|
31 | transactionIndex: number;
|
32 | blockHash: string;
|
33 | blockNumber: number;
|
34 | from: string;
|
35 | to: string;
|
36 | contractAddress: string;
|
37 | cumulativeGasUsed: number;
|
38 | gasUsed: number;
|
39 | logs?: Log[];
|
40 | events?: {
|
41 | [eventName: string]: EventLog;
|
42 | };
|
43 | status: string;
|
44 | }
|
45 |
|
46 | export interface EncodedTransaction {
|
47 | raw: string;
|
48 | tx: {
|
49 | nonce: string;
|
50 | gasPrice: string;
|
51 | gas: string;
|
52 | to: string;
|
53 | value: string;
|
54 | input: string;
|
55 | v: string;
|
56 | r: string;
|
57 | s: string;
|
58 | hash: string;
|
59 | };
|
60 | }
|
61 |
|
62 | export interface Logs {
|
63 | fromBlock?: number;
|
64 | address?: string;
|
65 | topics?: Array<string | string[]>;
|
66 | }
|
67 | export interface Log {
|
68 | address: string;
|
69 | data: string;
|
70 | topics: string[];
|
71 | logIndex: number;
|
72 | transactionHash: string;
|
73 | transactionIndex: number;
|
74 | blockHash: string;
|
75 | blockNumber: number;
|
76 | }
|
77 | export interface Subscribe<T> {
|
78 | subscription: {
|
79 | id: string;
|
80 | subscribe(callback?: Callback<Subscribe<T>>): Subscribe<T>;
|
81 | unsubscribe(callback?: Callback<boolean>): void | boolean;
|
82 | arguments: object;
|
83 | };
|
84 | on(type: "data" | "changed", handler: (data: T) => void): void;
|
85 | on(type: "error", handler: (data: Error) => void): void;
|
86 | }
|
87 |
|
88 | export class Shh {}
|
89 | export class Bzz {}
|