Skip to content

Commit 5887938

Browse files
authored
Merge pull request #235 from blocknative/fix/send-async-bug
Fallback to send if sendAsync isn't available. Closes #231
2 parents cb16d0c + 9e574c9 commit 5887938

File tree

1 file changed

+60
-39
lines changed

1 file changed

+60
-39
lines changed

src/utilities.ts

Lines changed: 60 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,51 @@ import { WalletInterface } from './interfaces'
55

66
export function getNetwork(provider: any): Promise<number | any> {
77
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+
}
2128
})
2229
}
2330

2431
export function getAddress(provider: any): Promise<string | any> {
2532
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+
}
3953
})
4054
}
4155

@@ -48,19 +62,26 @@ export function getBalance(provider: any): Promise<string | any> {
4862
return
4963
}
5064

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+
}
6485
})
6586
}
6687

0 commit comments

Comments
 (0)