@@ -5,37 +5,51 @@ import { WalletInterface } from './interfaces'
5
5
6
6
export function getNetwork ( provider : any ) : Promise < number | any > {
7
7
return new Promise ( ( resolve , reject ) => {
8
- provider . sendAsync (
9
- {
10
- jsonrpc : '2.0' ,
11
- method : 'net_version' ,
12
- params : [ ] ,
13
- id : 42
14
- } ,
15
- ( e : any , res : any ) => {
16
- e && reject ( e )
17
- const result = res && res . result
18
- resolve ( result && Number ( result ) )
19
- }
20
- )
8
+ // web3.js sometimes deletes sendAsync method
9
+ const method = provider . sendAsync || provider . send
10
+
11
+ if ( method ) {
12
+ method (
13
+ {
14
+ jsonrpc : '2.0' ,
15
+ method : 'net_version' ,
16
+ params : [ ] ,
17
+ id : 42
18
+ } ,
19
+ ( e : any , res : any ) => {
20
+ e && reject ( e )
21
+ const result = res && res . result
22
+ resolve ( result && Number ( result ) )
23
+ }
24
+ )
25
+ } else {
26
+ resolve ( null )
27
+ }
21
28
} )
22
29
}
23
30
24
31
export function getAddress ( provider : any ) : Promise < string | any > {
25
32
return new Promise ( ( resolve , reject ) => {
26
- provider . sendAsync (
27
- {
28
- jsonrpc : '2.0' ,
29
- method : 'eth_accounts' ,
30
- params : [ ] ,
31
- id : 42
32
- } ,
33
- ( e : any , res : any ) => {
34
- e && reject ( e )
35
- const result = res && res . result && res . result [ 0 ]
36
- resolve ( result )
37
- }
38
- )
33
+ // web3.js sometimes deletes sendAsync method
34
+ const method = provider . sendAsync || provider . send
35
+
36
+ if ( method ) {
37
+ method (
38
+ {
39
+ jsonrpc : '2.0' ,
40
+ method : 'eth_accounts' ,
41
+ params : [ ] ,
42
+ id : 42
43
+ } ,
44
+ ( e : any , res : any ) => {
45
+ e && reject ( e )
46
+ const result = res && res . result && res . result [ 0 ]
47
+ resolve ( result )
48
+ }
49
+ )
50
+ } else {
51
+ resolve ( null )
52
+ }
39
53
} )
40
54
}
41
55
@@ -48,19 +62,26 @@ export function getBalance(provider: any): Promise<string | any> {
48
62
return
49
63
}
50
64
51
- provider . sendAsync (
52
- {
53
- jsonrpc : '2.0' ,
54
- method : 'eth_getBalance' ,
55
- params : [ currentAddress , 'latest' ] ,
56
- id : 42
57
- } ,
58
- ( e : any , res : any ) => {
59
- e && reject ( e )
60
- const result = res && res . result
61
- resolve ( result && new BigNumber ( result ) . toString ( 10 ) )
62
- }
63
- )
65
+ // web3.js sometimes deletes sendAsync method
66
+ const method = provider . sendAsync || provider . send
67
+
68
+ if ( method ) {
69
+ method (
70
+ {
71
+ jsonrpc : '2.0' ,
72
+ method : 'eth_getBalance' ,
73
+ params : [ currentAddress , 'latest' ] ,
74
+ id : 42
75
+ } ,
76
+ ( e : any , res : any ) => {
77
+ e && reject ( e )
78
+ const result = res && res . result
79
+ resolve ( result && new BigNumber ( result ) . toString ( 10 ) )
80
+ }
81
+ )
82
+ } else {
83
+ resolve ( null )
84
+ }
64
85
} )
65
86
}
66
87
0 commit comments