aboutsummaryrefslogtreecommitdiffstats
path: root/packages/subproviders/src/globals.d.ts
blob: 1a9b2ad611d945bcac27a378e52f7ce5dae6d688 (plain) (blame)
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
declare module 'dirty-chai';
declare module 'es6-promisify';

// tslint:disable:max-classes-per-file
// tslint:disable:class-name
// tslint:disable:async-suffix
// tslint:disable:completed-docs

// Ethereumjs-tx declarations
declare module 'ethereumjs-tx' {
    class EthereumTx {
        public raw: Buffer[];
        public r: Buffer;
        public s: Buffer;
        public v: Buffer;
        public nonce: Buffer;
        public serialize(): Buffer;
        public getSenderAddress(): Buffer;
        constructor(txParams: any);
    }
    export = EthereumTx;
}

// Ledgerco declarations
interface ECSignatureString {
    v: string;
    r: string;
    s: string;
}
interface ECSignature {
    v: number;
    r: string;
    s: string;
}

interface LedgerTransport {
   close(): Promise<void>
}

declare module '@ledgerhq/hw-app-eth' {
    export class Eth {
        constructor(transport: LedgerTransport);
        public getAddress(path: string, boolDisplay?: boolean, boolChaincode?: boolean): Promise<{ publicKey: string; address: string; chainCode: string }>;
        public signTransaction(path: string, rawTxHex: string): Promise<ECSignatureString>;
        public getAppConfiguration(): Promise<{ arbitraryDataEnabled: number; version: string; }>;
        public signPersonalMessage(path: string, messageHex: string): Promise<ECSignature>;
        transport: LedgerTransport;
    }
}
declare module '@ledgerhq/hw-transport-u2f' {
    export class TransportU2F implements LedgerTransport {
        public static create(): Promise<TransportU2F>;
        public close(): Promise<void>;
    }
}

// Semaphore-async-await declarations
declare module 'semaphore-async-await' {
    class Semaphore {
        constructor(permits: number);
        public wait(): Promise<void>;
        public signal(): void;
    }
    export default Semaphore;
}

// web3-provider-engine declarations
declare module 'web3-provider-engine/subproviders/subprovider' {
    class Subprovider {}
    export = Subprovider;
}
declare module 'web3-provider-engine/subproviders/rpc' {
    import * as Web3 from 'web3';
    class RpcSubprovider {
        constructor(options: { rpcUrl: string });
        public handleRequest(
            payload: Web3.JSONRPCRequestPayload,
            next: () => void,
            end: (err: Error | null, data?: any) => void,
        ): void;
    }
    export = RpcSubprovider;
}
declare module 'web3-provider-engine' {
    class Web3ProviderEngine {
        public on(event: string, handler: () => void): void;
        public send(payload: any): void;
        public sendAsync(payload: any, callback: (error: any, response: any) => void): void;
        public addProvider(provider: any): void;
        public start(): void;
        public stop(): void;
    }
    export = Web3ProviderEngine;
}
declare module 'web3-provider-engine/util/rpc-cache-utils' {
    class ProviderEngineRpcUtils {
        public static blockTagForPayload(payload: any): string | null;
    }
    export = ProviderEngineRpcUtils;
}
declare module 'web3-provider-engine/subproviders/fixture' {
    import * as Web3 from 'web3';
    class FixtureSubprovider {
        constructor(staticResponses: any);
        public handleRequest(
            payload: Web3.JSONRPCRequestPayload,
            next: () => void,
            end: (err: Error | null, data?: any) => void,
        ): void;
    }
    export = FixtureSubprovider;
}

// hdkey declarations
declare module 'hdkey' {
    class HDNode {
        public publicKey: Buffer;
        public chainCode: Buffer;
        public constructor();
        public derive(path: string): HDNode;
    }
    export = HDNode;
}