@wagmi/core 0.2.0-next.0 → 0.2.0-next.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +135 -151
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +135 -151
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +136 -152
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +96 -153
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +96 -153
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +96 -153
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +91 -124
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +91 -124
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +91 -124
- package/dist/base-83fd83c6.cjs.dev.js +543 -0
- package/dist/base-9b2942ee.cjs.prod.js +543 -0
- package/dist/base-b052e615.esm.js +516 -0
- package/dist/{classPrivateMethodGet-38b54c7a.cjs.dev.js → classPrivateMethodGet-45a38143.cjs.dev.js} +1 -1
- package/dist/{classPrivateMethodGet-c9db96d6.esm.js → classPrivateMethodGet-7c370e43.esm.js} +1 -1
- package/dist/{classPrivateMethodGet-0e9a7925.cjs.prod.js → classPrivateMethodGet-a1e1a4aa.cjs.prod.js} +1 -1
- package/dist/declarations/src/actions/accounts/connect.d.ts +14 -5
- package/dist/declarations/src/actions/accounts/getAccount.d.ts +5 -4
- package/dist/declarations/src/actions/accounts/index.d.ts +1 -1
- package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +1 -1
- package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -2
- package/dist/declarations/src/actions/index.d.ts +1 -1
- package/dist/declarations/src/actions/providers/getProvider.d.ts +2 -2
- package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +2 -2
- package/dist/declarations/src/actions/providers/watchProvider.d.ts +3 -2
- package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +3 -2
- package/dist/declarations/src/client.d.ts +27 -24
- package/dist/declarations/src/connectors/base.d.ts +7 -1
- package/dist/declarations/src/connectors/coinbaseWallet.d.ts +9 -0
- package/dist/declarations/src/constants/abis.d.ts +2 -0
- package/dist/declarations/src/constants/blockExplorers.d.ts +9 -0
- package/dist/declarations/src/constants/chains.d.ts +17 -6
- package/dist/declarations/src/constants/index.d.ts +6 -2
- package/dist/declarations/src/constants/keys.d.ts +2 -0
- package/dist/declarations/src/constants/rpcs.d.ts +7 -0
- package/dist/declarations/src/index.d.ts +8 -5
- package/dist/declarations/src/types/index.d.ts +73 -6
- package/dist/declarations/src/utils/getInjectedName.d.ts +1 -1
- package/dist/wagmi-core.cjs.dev.js +578 -1067
- package/dist/wagmi-core.cjs.prod.js +578 -1067
- package/dist/wagmi-core.esm.js +575 -1068
- package/package.json +2 -3
- package/dist/base-09a653f3.cjs.dev.js +0 -453
- package/dist/base-824c3b6d.esm.js +0 -430
- package/dist/base-d8123d5f.cjs.prod.js +0 -453
- package/dist/declarations/src/constants/abis/erc1155.d.ts +0 -17
- package/dist/declarations/src/constants/abis/erc20.d.ts +0 -38
- package/dist/declarations/src/constants/abis/erc721.d.ts +0 -15
- package/dist/declarations/src/constants/abis/index.d.ts +0 -3
- package/dist/declarations/src/types/declarations.d.ts +0 -52
package/dist/wagmi-core.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { _ as
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { _ as _classPrivateMethodInitSpec, a as _classPrivateMethodGet } from './classPrivateMethodGet-7c370e43.esm.js';
|
|
2
|
+
import { C as Connector, _ as _defineProperty, a as _classPrivateFieldInitSpec, n as normalizeChainId, b as ConnectorNotFoundError, U as UserRejectedRequestError, c as _classPrivateFieldSet, d as _classPrivateFieldGet, e as allChains, f as ChainNotConfiguredError, A as AddChainError, S as SwitchChainError, g as ConnectorAlreadyConnectedError, h as SwitchChainNotSupportedError } from './base-b052e615.esm.js';
|
|
3
|
+
export { A as AddChainError, f as ChainNotConfiguredError, C as Connector, g as ConnectorAlreadyConnectedError, b as ConnectorNotFoundError, S as SwitchChainError, h as SwitchChainNotSupportedError, U as UserRejectedRequestError, i as alchemyRpcUrls, e as allChains, j as chain, k as chainId, l as defaultChains, m as defaultL2Chains, o as etherscanBlockExplorers, p as infuraRpcUrls, n as normalizeChainId } from './base-b052e615.esm.js';
|
|
4
4
|
import { providers, getDefaultProvider } from 'ethers';
|
|
5
5
|
import create from 'zustand/vanilla';
|
|
6
6
|
import { subscribeWithSelector, persist } from 'zustand/middleware';
|
|
@@ -8,292 +8,36 @@ import { getAddress, hexValue, formatUnits } from 'ethers/lib/utils';
|
|
|
8
8
|
import { Contract } from 'ethers/lib/ethers';
|
|
9
9
|
import 'eventemitter3';
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
// https://ethereum.org/en/developers/docs/standards/tokens/erc-20
|
|
12
|
+
const erc20ABI = ['event Approval(address indexed _owner, address indexed _spender, uint256 _value)', 'event Transfer(address indexed _from, address indexed _to, uint256 _value)', 'function allowance(address _owner, address _spender) public view returns (uint256 remaining)', 'function approve(address _spender, uint256 _value) public returns (bool success)', 'function balanceOf(address _owner) public view returns (uint256 balance)', 'function decimals() public view returns (uint8)', 'function name() public view returns (string)', 'function symbol() public view returns (string)', 'function totalSupply() public view returns (uint256)', 'function transfer(address _to, uint256 _value) public returns (bool success)', 'function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)']; // https://ethereum.org/en/developers/docs/standards/tokens/erc-721
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
var symbols = Object.getOwnPropertySymbols(object);
|
|
16
|
-
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
17
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
18
|
-
})), keys.push.apply(keys, symbols);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return keys;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function _objectSpread2(target) {
|
|
25
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
26
|
-
var source = null != arguments[i] ? arguments[i] : {};
|
|
27
|
-
i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
28
|
-
_defineProperty(target, key, source[key]);
|
|
29
|
-
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
|
|
30
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return target;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
var erc1155ABI = [{
|
|
38
|
-
constant: true,
|
|
39
|
-
inputs: [{
|
|
40
|
-
internalType: 'address',
|
|
41
|
-
name: '_owner',
|
|
42
|
-
type: 'address'
|
|
43
|
-
}, {
|
|
44
|
-
internalType: 'uint256',
|
|
45
|
-
name: '_id',
|
|
46
|
-
type: 'uint256'
|
|
47
|
-
}],
|
|
48
|
-
name: 'balanceOf',
|
|
49
|
-
outputs: [{
|
|
50
|
-
internalType: 'uint256',
|
|
51
|
-
name: '',
|
|
52
|
-
type: 'uint256'
|
|
53
|
-
}],
|
|
54
|
-
payable: false,
|
|
55
|
-
stateMutability: 'view',
|
|
56
|
-
type: 'function'
|
|
57
|
-
}, {
|
|
58
|
-
constant: true,
|
|
59
|
-
inputs: [{
|
|
60
|
-
internalType: 'uint256',
|
|
61
|
-
name: '_id',
|
|
62
|
-
type: 'uint256'
|
|
63
|
-
}],
|
|
64
|
-
name: 'uri',
|
|
65
|
-
outputs: [{
|
|
66
|
-
internalType: 'string',
|
|
67
|
-
name: '',
|
|
68
|
-
type: 'string'
|
|
69
|
-
}],
|
|
70
|
-
payable: false,
|
|
71
|
-
stateMutability: 'view',
|
|
72
|
-
type: 'function'
|
|
73
|
-
}];
|
|
74
|
-
|
|
75
|
-
var erc20ABI = [{
|
|
76
|
-
constant: true,
|
|
77
|
-
inputs: [],
|
|
78
|
-
name: 'name',
|
|
79
|
-
outputs: [{
|
|
80
|
-
name: '',
|
|
81
|
-
type: 'string'
|
|
82
|
-
}],
|
|
83
|
-
payable: false,
|
|
84
|
-
stateMutability: 'view',
|
|
85
|
-
type: 'function'
|
|
86
|
-
}, {
|
|
87
|
-
constant: false,
|
|
88
|
-
inputs: [{
|
|
89
|
-
name: '_spender',
|
|
90
|
-
type: 'address'
|
|
91
|
-
}, {
|
|
92
|
-
name: '_value',
|
|
93
|
-
type: 'uint256'
|
|
94
|
-
}],
|
|
95
|
-
name: 'approve',
|
|
96
|
-
outputs: [{
|
|
97
|
-
name: '',
|
|
98
|
-
type: 'bool'
|
|
99
|
-
}],
|
|
100
|
-
payable: false,
|
|
101
|
-
stateMutability: 'nonpayable',
|
|
102
|
-
type: 'function'
|
|
103
|
-
}, {
|
|
104
|
-
constant: true,
|
|
105
|
-
inputs: [],
|
|
106
|
-
name: 'totalSupply',
|
|
107
|
-
outputs: [{
|
|
108
|
-
name: '',
|
|
109
|
-
type: 'uint256'
|
|
110
|
-
}],
|
|
111
|
-
payable: false,
|
|
112
|
-
stateMutability: 'view',
|
|
113
|
-
type: 'function'
|
|
114
|
-
}, {
|
|
115
|
-
constant: false,
|
|
116
|
-
inputs: [{
|
|
117
|
-
name: '_from',
|
|
118
|
-
type: 'address'
|
|
119
|
-
}, {
|
|
120
|
-
name: '_to',
|
|
121
|
-
type: 'address'
|
|
122
|
-
}, {
|
|
123
|
-
name: '_value',
|
|
124
|
-
type: 'uint256'
|
|
125
|
-
}],
|
|
126
|
-
name: 'transferFrom',
|
|
127
|
-
outputs: [{
|
|
128
|
-
name: '',
|
|
129
|
-
type: 'bool'
|
|
130
|
-
}],
|
|
131
|
-
payable: false,
|
|
132
|
-
stateMutability: 'nonpayable',
|
|
133
|
-
type: 'function'
|
|
134
|
-
}, {
|
|
135
|
-
constant: true,
|
|
136
|
-
inputs: [],
|
|
137
|
-
name: 'decimals',
|
|
138
|
-
outputs: [{
|
|
139
|
-
name: '',
|
|
140
|
-
type: 'uint8'
|
|
141
|
-
}],
|
|
142
|
-
payable: false,
|
|
143
|
-
stateMutability: 'view',
|
|
144
|
-
type: 'function'
|
|
145
|
-
}, {
|
|
146
|
-
constant: true,
|
|
147
|
-
inputs: [{
|
|
148
|
-
name: '_owner',
|
|
149
|
-
type: 'address'
|
|
150
|
-
}],
|
|
151
|
-
name: 'balanceOf',
|
|
152
|
-
outputs: [{
|
|
153
|
-
name: 'balance',
|
|
154
|
-
type: 'uint256'
|
|
155
|
-
}],
|
|
156
|
-
payable: false,
|
|
157
|
-
stateMutability: 'view',
|
|
158
|
-
type: 'function'
|
|
159
|
-
}, {
|
|
160
|
-
constant: true,
|
|
161
|
-
inputs: [],
|
|
162
|
-
name: 'symbol',
|
|
163
|
-
outputs: [{
|
|
164
|
-
name: '',
|
|
165
|
-
type: 'string'
|
|
166
|
-
}],
|
|
167
|
-
payable: false,
|
|
168
|
-
stateMutability: 'view',
|
|
169
|
-
type: 'function'
|
|
170
|
-
}, {
|
|
171
|
-
constant: false,
|
|
172
|
-
inputs: [{
|
|
173
|
-
name: '_to',
|
|
174
|
-
type: 'address'
|
|
175
|
-
}, {
|
|
176
|
-
name: '_value',
|
|
177
|
-
type: 'uint256'
|
|
178
|
-
}],
|
|
179
|
-
name: 'transfer',
|
|
180
|
-
outputs: [{
|
|
181
|
-
name: '',
|
|
182
|
-
type: 'bool'
|
|
183
|
-
}],
|
|
184
|
-
payable: false,
|
|
185
|
-
stateMutability: 'nonpayable',
|
|
186
|
-
type: 'function'
|
|
187
|
-
}, {
|
|
188
|
-
constant: true,
|
|
189
|
-
inputs: [{
|
|
190
|
-
name: '_owner',
|
|
191
|
-
type: 'address'
|
|
192
|
-
}, {
|
|
193
|
-
name: '_spender',
|
|
194
|
-
type: 'address'
|
|
195
|
-
}],
|
|
196
|
-
name: 'allowance',
|
|
197
|
-
outputs: [{
|
|
198
|
-
name: '',
|
|
199
|
-
type: 'uint256'
|
|
200
|
-
}],
|
|
201
|
-
payable: false,
|
|
202
|
-
stateMutability: 'view',
|
|
203
|
-
type: 'function'
|
|
204
|
-
}, {
|
|
205
|
-
payable: true,
|
|
206
|
-
stateMutability: 'payable',
|
|
207
|
-
type: 'fallback'
|
|
208
|
-
}, {
|
|
209
|
-
anonymous: false,
|
|
210
|
-
inputs: [{
|
|
211
|
-
indexed: true,
|
|
212
|
-
name: 'owner',
|
|
213
|
-
type: 'address'
|
|
214
|
-
}, {
|
|
215
|
-
indexed: true,
|
|
216
|
-
name: 'spender',
|
|
217
|
-
type: 'address'
|
|
218
|
-
}, {
|
|
219
|
-
indexed: false,
|
|
220
|
-
name: 'value',
|
|
221
|
-
type: 'uint256'
|
|
222
|
-
}],
|
|
223
|
-
name: 'Approval',
|
|
224
|
-
type: 'event'
|
|
225
|
-
}, {
|
|
226
|
-
anonymous: false,
|
|
227
|
-
inputs: [{
|
|
228
|
-
indexed: true,
|
|
229
|
-
name: 'from',
|
|
230
|
-
type: 'address'
|
|
231
|
-
}, {
|
|
232
|
-
indexed: true,
|
|
233
|
-
name: 'to',
|
|
234
|
-
type: 'address'
|
|
235
|
-
}, {
|
|
236
|
-
indexed: false,
|
|
237
|
-
name: 'value',
|
|
238
|
-
type: 'uint256'
|
|
239
|
-
}],
|
|
240
|
-
name: 'Transfer',
|
|
241
|
-
type: 'event'
|
|
242
|
-
}];
|
|
243
|
-
|
|
244
|
-
var erc721ABI = [{
|
|
245
|
-
inputs: [{
|
|
246
|
-
internalType: 'uint256',
|
|
247
|
-
name: 'tokenId',
|
|
248
|
-
type: 'uint256'
|
|
249
|
-
}],
|
|
250
|
-
name: 'ownerOf',
|
|
251
|
-
outputs: [{
|
|
252
|
-
internalType: 'address',
|
|
253
|
-
name: '',
|
|
254
|
-
type: 'address'
|
|
255
|
-
}],
|
|
256
|
-
stateMutability: 'view',
|
|
257
|
-
type: 'function'
|
|
258
|
-
}, {
|
|
259
|
-
inputs: [{
|
|
260
|
-
internalType: 'uint256',
|
|
261
|
-
name: 'tokenId',
|
|
262
|
-
type: 'uint256'
|
|
263
|
-
}],
|
|
264
|
-
name: 'tokenURI',
|
|
265
|
-
outputs: [{
|
|
266
|
-
internalType: 'string',
|
|
267
|
-
name: '',
|
|
268
|
-
type: 'string'
|
|
269
|
-
}],
|
|
270
|
-
stateMutability: 'view',
|
|
271
|
-
type: 'function'
|
|
272
|
-
}];
|
|
14
|
+
const erc721ABI = ['event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);', 'event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);', 'event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);', 'function approve(address _approved, uint256 _tokenId) external payable;', 'function balanceOf(address _owner) external view returns (uint256);', 'function getApproved(uint256 _tokenId) external view returns (address);', 'function isApprovedForAll(address _owner, address _operator) external view returns (bool);', 'function name() view returns (string memory)', 'function ownerOf(uint256 _tokenId) external view returns (address);', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;', 'function setApprovalForAll(address _operator, bool _approved) external;', 'function symbol() view returns (string memory)', 'function tokenByIndex(uint256 _index) view returns (uint256)', 'function tokenOfOwnerByIndex(address _owner, uint256 _index) view returns (uint256 tokenId)', 'function tokenURI(uint256 _tokenId) view returns (string memory)', 'function totalSupply() view returns (uint256)', 'function transferFrom(address _from, address _to, uint256 _tokenId) external payable;'];
|
|
273
15
|
|
|
274
16
|
// https://github.com/ethers-io/ethers.js/blob/master/packages/units/src.ts/index.ts#L10-L18
|
|
275
|
-
|
|
17
|
+
const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
|
|
276
18
|
|
|
277
19
|
function getInjectedName(ethereum) {
|
|
278
20
|
if (!ethereum) return 'Injected';
|
|
279
21
|
if (ethereum.isMetaMask) return 'MetaMask';
|
|
22
|
+
if (ethereum.isBraveWallet) return 'Brave Wallet';
|
|
280
23
|
if (ethereum.isCoinbaseWallet) return 'Coinbase Wallet';
|
|
281
24
|
if (ethereum.isFrame) return 'Frame';
|
|
282
25
|
if (ethereum.isTally) return 'Tally';
|
|
283
26
|
return 'Injected';
|
|
284
27
|
}
|
|
285
28
|
|
|
286
|
-
|
|
29
|
+
const shimKey = 'injected.shimDisconnect';
|
|
287
30
|
|
|
288
31
|
var _provider = /*#__PURE__*/new WeakMap();
|
|
289
32
|
|
|
290
33
|
class InjectedConnector extends Connector {
|
|
291
34
|
constructor(config) {
|
|
292
|
-
super(
|
|
293
|
-
options:
|
|
294
|
-
shimDisconnect: true
|
|
295
|
-
|
|
296
|
-
|
|
35
|
+
super({ ...config,
|
|
36
|
+
options: {
|
|
37
|
+
shimDisconnect: true,
|
|
38
|
+
...(config === null || config === void 0 ? void 0 : config.options)
|
|
39
|
+
}
|
|
40
|
+
});
|
|
297
41
|
|
|
298
42
|
_defineProperty(this, "id", 'injected');
|
|
299
43
|
|
|
@@ -313,8 +57,8 @@ class InjectedConnector extends Connector {
|
|
|
313
57
|
});
|
|
314
58
|
|
|
315
59
|
_defineProperty(this, "onChainChanged", chainId => {
|
|
316
|
-
|
|
317
|
-
|
|
60
|
+
const id = normalizeChainId(chainId);
|
|
61
|
+
const unsupported = this.isChainUnsupported(id);
|
|
318
62
|
this.emit('change', {
|
|
319
63
|
chain: {
|
|
320
64
|
id,
|
|
@@ -330,224 +74,186 @@ class InjectedConnector extends Connector {
|
|
|
330
74
|
if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) (_client$storage = client.storage) === null || _client$storage === void 0 ? void 0 : _client$storage.removeItem(shimKey);
|
|
331
75
|
});
|
|
332
76
|
|
|
333
|
-
|
|
77
|
+
let name = 'Injected';
|
|
334
78
|
if (typeof window !== 'undefined') name = getInjectedName(window.ethereum);
|
|
335
79
|
this.name = name;
|
|
336
80
|
}
|
|
337
81
|
|
|
338
|
-
connect() {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
return _asyncToGenerator(function* () {
|
|
342
|
-
try {
|
|
343
|
-
var _this$options2, _client$storage2;
|
|
344
|
-
|
|
345
|
-
var provider = yield _this.getProvider();
|
|
346
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
347
|
-
|
|
348
|
-
if (provider.on) {
|
|
349
|
-
provider.on('accountsChanged', _this.onAccountsChanged);
|
|
350
|
-
provider.on('chainChanged', _this.onChainChanged);
|
|
351
|
-
provider.on('disconnect', _this.onDisconnect);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
var account = yield _this.getAccount();
|
|
355
|
-
var id = yield _this.getChainId();
|
|
82
|
+
async connect() {
|
|
83
|
+
try {
|
|
84
|
+
var _this$options2, _client$storage2;
|
|
356
85
|
|
|
357
|
-
|
|
86
|
+
const provider = await this.getProvider();
|
|
87
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
358
88
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
id,
|
|
364
|
-
unsupported
|
|
365
|
-
},
|
|
366
|
-
provider
|
|
367
|
-
};
|
|
368
|
-
} catch (error) {
|
|
369
|
-
if (error.code === 4001) throw new UserRejectedRequestError();
|
|
370
|
-
throw error;
|
|
89
|
+
if (provider.on) {
|
|
90
|
+
provider.on('accountsChanged', this.onAccountsChanged);
|
|
91
|
+
provider.on('chainChanged', this.onChainChanged);
|
|
92
|
+
provider.on('disconnect', this.onDisconnect);
|
|
371
93
|
}
|
|
372
|
-
})();
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
disconnect() {
|
|
376
|
-
var _this2 = this;
|
|
377
|
-
|
|
378
|
-
return _asyncToGenerator(function* () {
|
|
379
|
-
var _this2$options, _client$storage3;
|
|
380
94
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
95
|
+
this.emit('message', {
|
|
96
|
+
type: 'connecting'
|
|
97
|
+
});
|
|
98
|
+
const account = await this.getAccount();
|
|
99
|
+
const id = await this.getChainId();
|
|
100
|
+
const unsupported = this.isChainUnsupported(id);
|
|
101
|
+
if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.shimDisconnect) (_client$storage2 = client.storage) === null || _client$storage2 === void 0 ? void 0 : _client$storage2.setItem(shimKey, true);
|
|
102
|
+
return {
|
|
103
|
+
account,
|
|
104
|
+
chain: {
|
|
105
|
+
id,
|
|
106
|
+
unsupported
|
|
107
|
+
},
|
|
108
|
+
provider
|
|
109
|
+
};
|
|
110
|
+
} catch (error) {
|
|
111
|
+
if (error.code === 4001) throw new UserRejectedRequestError();
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
388
114
|
}
|
|
389
115
|
|
|
390
|
-
|
|
391
|
-
var
|
|
392
|
-
|
|
393
|
-
return _asyncToGenerator(function* () {
|
|
394
|
-
var provider = yield _this3.getProvider();
|
|
395
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
396
|
-
var accounts = yield provider.request({
|
|
397
|
-
method: 'eth_requestAccounts'
|
|
398
|
-
}); // return checksum address
|
|
116
|
+
async disconnect() {
|
|
117
|
+
var _this$options3, _client$storage3;
|
|
399
118
|
|
|
400
|
-
|
|
401
|
-
|
|
119
|
+
const provider = await this.getProvider();
|
|
120
|
+
if (!(provider !== null && provider !== void 0 && provider.removeListener)) return;
|
|
121
|
+
provider.removeListener('accountsChanged', this.onAccountsChanged);
|
|
122
|
+
provider.removeListener('chainChanged', this.onChainChanged);
|
|
123
|
+
provider.removeListener('disconnect', this.onDisconnect);
|
|
124
|
+
if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.shimDisconnect) (_client$storage3 = client.storage) === null || _client$storage3 === void 0 ? void 0 : _client$storage3.removeItem(shimKey);
|
|
402
125
|
}
|
|
403
126
|
|
|
404
|
-
|
|
405
|
-
|
|
127
|
+
async getAccount() {
|
|
128
|
+
const provider = await this.getProvider();
|
|
129
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
130
|
+
const accounts = await provider.request({
|
|
131
|
+
method: 'eth_requestAccounts'
|
|
132
|
+
}); // return checksum address
|
|
406
133
|
|
|
407
|
-
return
|
|
408
|
-
var provider = yield _this4.getProvider();
|
|
409
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
410
|
-
return yield provider.request({
|
|
411
|
-
method: 'eth_chainId'
|
|
412
|
-
}).then(normalizeChainId);
|
|
413
|
-
})();
|
|
134
|
+
return getAddress(accounts[0]);
|
|
414
135
|
}
|
|
415
136
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
return
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
})();
|
|
137
|
+
async getChainId() {
|
|
138
|
+
const provider = await this.getProvider();
|
|
139
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
140
|
+
return await provider.request({
|
|
141
|
+
method: 'eth_chainId'
|
|
142
|
+
}).then(normalizeChainId);
|
|
423
143
|
}
|
|
424
144
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
var provider = _this6.getProvider();
|
|
145
|
+
async getProvider() {
|
|
146
|
+
if (typeof window !== 'undefined' && !!window.ethereum) _classPrivateFieldSet(this, _provider, window.ethereum);
|
|
147
|
+
return _classPrivateFieldGet(this, _provider);
|
|
148
|
+
}
|
|
430
149
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
150
|
+
async getSigner() {
|
|
151
|
+
const [provider, account] = await Promise.all([this.getProvider(), this.getAccount()]);
|
|
152
|
+
return new providers.Web3Provider(provider).getSigner(account);
|
|
434
153
|
}
|
|
435
154
|
|
|
436
|
-
isAuthorized() {
|
|
437
|
-
|
|
155
|
+
async isAuthorized() {
|
|
156
|
+
try {
|
|
157
|
+
var _this$options4, _client$storage4;
|
|
438
158
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
return !!account;
|
|
451
|
-
} catch (_unused) {
|
|
452
|
-
return false;
|
|
453
|
-
}
|
|
454
|
-
})();
|
|
159
|
+
if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.shimDisconnect && !((_client$storage4 = client.storage) !== null && _client$storage4 !== void 0 && _client$storage4.getItem(shimKey))) return false;
|
|
160
|
+
const provider = await this.getProvider();
|
|
161
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
162
|
+
const accounts = await provider.request({
|
|
163
|
+
method: 'eth_accounts'
|
|
164
|
+
});
|
|
165
|
+
const account = accounts[0];
|
|
166
|
+
return !!account;
|
|
167
|
+
} catch {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
455
170
|
}
|
|
456
171
|
|
|
457
|
-
switchChain(chainId) {
|
|
458
|
-
|
|
172
|
+
async switchChain(chainId) {
|
|
173
|
+
const provider = await this.getProvider();
|
|
174
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
175
|
+
const id = hexValue(chainId);
|
|
459
176
|
|
|
460
|
-
|
|
461
|
-
var
|
|
462
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
463
|
-
var id = hexValue(chainId);
|
|
177
|
+
try {
|
|
178
|
+
var _chains$find;
|
|
464
179
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
throw new AddChainError();
|
|
502
|
-
}
|
|
503
|
-
} else if (error.code === 4001) throw new UserRejectedRequestError();else throw new SwitchChainError();
|
|
504
|
-
}
|
|
505
|
-
})();
|
|
180
|
+
await provider.request({
|
|
181
|
+
method: 'wallet_switchEthereumChain',
|
|
182
|
+
params: [{
|
|
183
|
+
chainId: id
|
|
184
|
+
}]
|
|
185
|
+
});
|
|
186
|
+
const chains = [...this.chains, ...allChains];
|
|
187
|
+
return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
|
|
188
|
+
id: chainId,
|
|
189
|
+
name: "Chain ".concat(id),
|
|
190
|
+
rpcUrls: {
|
|
191
|
+
default: []
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
} catch (error) {
|
|
195
|
+
// Indicates chain is not added to provider
|
|
196
|
+
if (error.code === 4902) {
|
|
197
|
+
try {
|
|
198
|
+
const chain = this.chains.find(x => x.id === chainId);
|
|
199
|
+
if (!chain) throw new ChainNotConfiguredError();
|
|
200
|
+
await provider.request({
|
|
201
|
+
method: 'wallet_addEthereumChain',
|
|
202
|
+
params: [{
|
|
203
|
+
chainId: id,
|
|
204
|
+
chainName: chain.name,
|
|
205
|
+
nativeCurrency: chain.nativeCurrency,
|
|
206
|
+
rpcUrls: this.getRpcUrls(chain),
|
|
207
|
+
blockExplorerUrls: this.getBlockExplorerUrls(chain)
|
|
208
|
+
}]
|
|
209
|
+
});
|
|
210
|
+
return chain;
|
|
211
|
+
} catch (addError) {
|
|
212
|
+
throw new AddChainError();
|
|
213
|
+
}
|
|
214
|
+
} else if (error.code === 4001) throw new UserRejectedRequestError();else throw new SwitchChainError();
|
|
215
|
+
}
|
|
506
216
|
}
|
|
507
217
|
|
|
508
|
-
watchAsset(_ref) {
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
decimals,
|
|
527
|
-
image,
|
|
528
|
-
symbol
|
|
529
|
-
}
|
|
218
|
+
async watchAsset(_ref) {
|
|
219
|
+
let {
|
|
220
|
+
address,
|
|
221
|
+
decimals = 18,
|
|
222
|
+
image,
|
|
223
|
+
symbol
|
|
224
|
+
} = _ref;
|
|
225
|
+
const provider = await this.getProvider();
|
|
226
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
227
|
+
return await provider.request({
|
|
228
|
+
method: 'wallet_watchAsset',
|
|
229
|
+
params: {
|
|
230
|
+
type: 'ERC20',
|
|
231
|
+
options: {
|
|
232
|
+
address,
|
|
233
|
+
decimals,
|
|
234
|
+
image,
|
|
235
|
+
symbol
|
|
530
236
|
}
|
|
531
|
-
}
|
|
532
|
-
})
|
|
237
|
+
}
|
|
238
|
+
});
|
|
533
239
|
}
|
|
534
240
|
|
|
535
241
|
}
|
|
536
242
|
|
|
537
|
-
|
|
243
|
+
const noopStorage = {
|
|
538
244
|
getItem: _key => '',
|
|
539
245
|
setItem: (_key, _value) => null,
|
|
540
246
|
removeItem: _key => null
|
|
541
247
|
};
|
|
542
248
|
function createStorage(_ref) {
|
|
543
|
-
|
|
249
|
+
let {
|
|
544
250
|
storage,
|
|
545
251
|
key: prefix = 'wagmi'
|
|
546
252
|
} = _ref;
|
|
547
|
-
return
|
|
548
|
-
getItem: function
|
|
549
|
-
|
|
550
|
-
|
|
253
|
+
return { ...storage,
|
|
254
|
+
getItem: function (key) {
|
|
255
|
+
let defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
256
|
+
const value = storage.getItem("".concat(prefix, ".").concat(key));
|
|
551
257
|
|
|
552
258
|
try {
|
|
553
259
|
return value ? JSON.parse(value) : defaultState;
|
|
@@ -568,40 +274,18 @@ function createStorage(_ref) {
|
|
|
568
274
|
}
|
|
569
275
|
},
|
|
570
276
|
removeItem: key => storage.removeItem("".concat(prefix, ".").concat(key))
|
|
571
|
-
}
|
|
277
|
+
};
|
|
572
278
|
}
|
|
573
279
|
|
|
574
|
-
var defaultConfig = {
|
|
575
|
-
connectors: [new InjectedConnector()],
|
|
576
|
-
provider: _ref => {
|
|
577
|
-
var {
|
|
578
|
-
chainId
|
|
579
|
-
} = _ref;
|
|
580
|
-
|
|
581
|
-
try {
|
|
582
|
-
return getDefaultProvider(chainId);
|
|
583
|
-
} catch (error) {
|
|
584
|
-
return getDefaultProvider();
|
|
585
|
-
}
|
|
586
|
-
},
|
|
587
|
-
storage: createStorage({
|
|
588
|
-
storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
|
|
589
|
-
})
|
|
590
|
-
};
|
|
591
|
-
|
|
592
280
|
var _lastUsedConnector = /*#__PURE__*/new WeakMap();
|
|
593
281
|
|
|
594
282
|
var _addEffects = /*#__PURE__*/new WeakSet();
|
|
595
283
|
|
|
596
284
|
class Client {
|
|
597
285
|
constructor() {
|
|
598
|
-
var
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
provider: _provider = defaultConfig.provider,
|
|
602
|
-
storage = defaultConfig.storage,
|
|
603
|
-
webSocketProvider: _webSocketProvider
|
|
604
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultConfig;
|
|
286
|
+
var _config$autoConnect, _config$connectors, _config$provider, _config$storage;
|
|
287
|
+
|
|
288
|
+
let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
605
289
|
|
|
606
290
|
_classPrivateMethodInitSpec(this, _addEffects);
|
|
607
291
|
|
|
@@ -616,53 +300,79 @@ class Client {
|
|
|
616
300
|
value: void 0
|
|
617
301
|
});
|
|
618
302
|
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
303
|
+
// Set default values for config
|
|
304
|
+
const autoConnect = (_config$autoConnect = config.autoConnect) !== null && _config$autoConnect !== void 0 ? _config$autoConnect : false;
|
|
305
|
+
|
|
306
|
+
const _connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
|
|
307
|
+
|
|
308
|
+
const _provider = (_config$provider = config.provider) !== null && _config$provider !== void 0 ? _config$provider : config => {
|
|
309
|
+
try {
|
|
310
|
+
return getDefaultProvider(config.chainId);
|
|
311
|
+
} catch {
|
|
312
|
+
return getDefaultProvider();
|
|
313
|
+
}
|
|
624
314
|
};
|
|
625
|
-
var status = 'disconnected';
|
|
626
315
|
|
|
627
|
-
|
|
316
|
+
const storage = (_config$storage = config.storage) !== null && _config$storage !== void 0 ? _config$storage : createStorage({
|
|
317
|
+
storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
|
|
318
|
+
});
|
|
319
|
+
const _webSocketProvider = config.webSocketProvider; // Check status for autoConnect flag
|
|
320
|
+
|
|
321
|
+
let status = 'disconnected';
|
|
322
|
+
|
|
323
|
+
let _chainId;
|
|
628
324
|
|
|
629
325
|
if (autoConnect) {
|
|
630
326
|
try {
|
|
631
327
|
var _JSON$parse, _JSON$parse$state, _data$chain;
|
|
632
328
|
|
|
633
|
-
|
|
634
|
-
|
|
329
|
+
const rawState = storage.getItem('state', '');
|
|
330
|
+
const data = (_JSON$parse = JSON.parse(rawState || '{}')) === null || _JSON$parse === void 0 ? void 0 : (_JSON$parse$state = _JSON$parse.state) === null || _JSON$parse$state === void 0 ? void 0 : _JSON$parse$state.data; // If account exists in localStorage, set status to reconnecting
|
|
635
331
|
|
|
636
332
|
status = data !== null && data !== void 0 && data.account ? 'reconnecting' : 'connecting';
|
|
637
333
|
_chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id; // eslint-disable-next-line no-empty
|
|
638
334
|
} catch (_error) {}
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
335
|
+
} // Evaluate initial store values
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
const connectors_ = typeof _connectors === 'function' ? _connectors({
|
|
339
|
+
chainId: _chainId
|
|
340
|
+
}) : _connectors;
|
|
341
|
+
const provider_ = typeof _provider === 'function' ? _provider({
|
|
342
|
+
chainId: _chainId
|
|
343
|
+
}) : _provider;
|
|
344
|
+
const webSocketProvider_ = typeof _webSocketProvider === 'function' ? _webSocketProvider({
|
|
345
|
+
chainId: _chainId
|
|
346
|
+
}) : _webSocketProvider; // Create store
|
|
347
|
+
|
|
348
|
+
this.store = create(subscribeWithSelector(persist(() => ({
|
|
349
|
+
connectors: connectors_,
|
|
350
|
+
provider: provider_,
|
|
648
351
|
status,
|
|
649
|
-
webSocketProvider:
|
|
650
|
-
chainId: _chainId
|
|
651
|
-
}) : _webSocketProvider
|
|
352
|
+
webSocketProvider: webSocketProvider_
|
|
652
353
|
}), {
|
|
653
354
|
name: 'state',
|
|
654
355
|
getStorage: () => storage,
|
|
655
356
|
partialize: state => {
|
|
656
357
|
var _state$data, _state$data2;
|
|
657
358
|
|
|
658
|
-
return {
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
359
|
+
return { ...(autoConnect && {
|
|
360
|
+
data: {
|
|
361
|
+
account: state === null || state === void 0 ? void 0 : (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.account,
|
|
362
|
+
chain: state === null || state === void 0 ? void 0 : (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.chain
|
|
363
|
+
}
|
|
364
|
+
}),
|
|
365
|
+
chains: state === null || state === void 0 ? void 0 : state.chains
|
|
663
366
|
};
|
|
664
367
|
}
|
|
665
368
|
})));
|
|
369
|
+
this.config = {
|
|
370
|
+
autoConnect,
|
|
371
|
+
connectors: _connectors,
|
|
372
|
+
provider: _provider,
|
|
373
|
+
storage,
|
|
374
|
+
webSocketProvider: _webSocketProvider
|
|
375
|
+
};
|
|
666
376
|
this.storage = storage;
|
|
667
377
|
|
|
668
378
|
_classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
|
|
@@ -670,6 +380,10 @@ class Client {
|
|
|
670
380
|
_classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
|
|
671
381
|
}
|
|
672
382
|
|
|
383
|
+
get chains() {
|
|
384
|
+
return this.store.getState().chains;
|
|
385
|
+
}
|
|
386
|
+
|
|
673
387
|
get connectors() {
|
|
674
388
|
return this.store.getState().connectors;
|
|
675
389
|
}
|
|
@@ -703,12 +417,12 @@ class Client {
|
|
|
703
417
|
}
|
|
704
418
|
|
|
705
419
|
setState(updater) {
|
|
706
|
-
|
|
420
|
+
const newState = typeof updater === 'function' ? updater(this.store.getState()) : updater;
|
|
707
421
|
this.store.setState(newState, true);
|
|
708
422
|
}
|
|
709
423
|
|
|
710
424
|
clearState() {
|
|
711
|
-
this.setState(x =>
|
|
425
|
+
this.setState(x => ({ ...x,
|
|
712
426
|
connector: undefined,
|
|
713
427
|
data: undefined,
|
|
714
428
|
error: undefined,
|
|
@@ -716,84 +430,74 @@ class Client {
|
|
|
716
430
|
}));
|
|
717
431
|
}
|
|
718
432
|
|
|
719
|
-
destroy() {
|
|
720
|
-
var _this
|
|
433
|
+
async destroy() {
|
|
434
|
+
var _this$connector$disco, _this$connector;
|
|
721
435
|
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
if (_this.connector) yield (_this$connector$disco = (_this$connector = _this.connector).disconnect) === null || _this$connector$disco === void 0 ? void 0 : _this$connector$disco.call(_this$connector);
|
|
726
|
-
|
|
727
|
-
_this.clearState();
|
|
728
|
-
|
|
729
|
-
_this.store.destroy();
|
|
730
|
-
})();
|
|
436
|
+
if (this.connector) await ((_this$connector$disco = (_this$connector = this.connector).disconnect) === null || _this$connector$disco === void 0 ? void 0 : _this$connector$disco.call(_this$connector));
|
|
437
|
+
this.clearState();
|
|
438
|
+
this.store.destroy();
|
|
731
439
|
}
|
|
732
440
|
|
|
733
|
-
autoConnect() {
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
connected = true;
|
|
755
|
-
return "break";
|
|
756
|
-
};
|
|
757
|
-
|
|
758
|
-
for (var connector of sorted) {
|
|
759
|
-
var _ret = yield* _loop(connector);
|
|
760
|
-
|
|
761
|
-
if (_ret === "continue") continue;
|
|
762
|
-
if (_ret === "break") break;
|
|
763
|
-
} // If connecting didn't succeed, set to disconnected
|
|
441
|
+
async autoConnect() {
|
|
442
|
+
if (!this.connectors.length) return; // Try last used connector first
|
|
443
|
+
|
|
444
|
+
const sorted = _classPrivateFieldGet(this, _lastUsedConnector) ? [...this.connectors].sort(x => x.id === _classPrivateFieldGet(this, _lastUsedConnector) ? -1 : 1) : this.connectors;
|
|
445
|
+
let connected = false;
|
|
446
|
+
|
|
447
|
+
for (const connector of sorted) {
|
|
448
|
+
if (!connector.ready || !connector.isAuthorized) continue;
|
|
449
|
+
const isAuthorized = await connector.isAuthorized();
|
|
450
|
+
if (!isAuthorized) continue;
|
|
451
|
+
const data = await connector.connect();
|
|
452
|
+
this.setState(x => ({ ...x,
|
|
453
|
+
connector,
|
|
454
|
+
chains: connector === null || connector === void 0 ? void 0 : connector.chains,
|
|
455
|
+
data,
|
|
456
|
+
status: 'connected'
|
|
457
|
+
}));
|
|
458
|
+
connected = true;
|
|
459
|
+
break;
|
|
460
|
+
} // If connecting didn't succeed, set to disconnected
|
|
764
461
|
|
|
765
462
|
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
})();
|
|
463
|
+
if (!connected) this.setState(x => ({ ...x,
|
|
464
|
+
status: 'disconnected'
|
|
465
|
+
}));
|
|
466
|
+
return this.data;
|
|
771
467
|
}
|
|
772
468
|
|
|
773
469
|
setLastUsedConnector() {
|
|
774
470
|
var _this$storage;
|
|
775
471
|
|
|
776
|
-
|
|
472
|
+
let lastUsedConnector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
777
473
|
(_this$storage = this.storage) === null || _this$storage === void 0 ? void 0 : _this$storage.setItem('wallet', lastUsedConnector);
|
|
778
474
|
}
|
|
779
475
|
|
|
780
476
|
}
|
|
781
477
|
|
|
782
478
|
function _addEffects2() {
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
479
|
+
const onChange = data => {
|
|
480
|
+
this.setState(x => ({ ...x,
|
|
481
|
+
data: { ...x.data,
|
|
482
|
+
...data
|
|
483
|
+
}
|
|
484
|
+
}));
|
|
485
|
+
};
|
|
786
486
|
|
|
787
|
-
|
|
487
|
+
const onDisconnect = () => {
|
|
488
|
+
this.clearState();
|
|
489
|
+
};
|
|
788
490
|
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
491
|
+
const onError = error => {
|
|
492
|
+
this.setState(x => ({ ...x,
|
|
493
|
+
error
|
|
494
|
+
}));
|
|
495
|
+
};
|
|
792
496
|
|
|
793
|
-
this.store.subscribe(
|
|
794
|
-
|
|
497
|
+
this.store.subscribe(_ref => {
|
|
498
|
+
let {
|
|
795
499
|
connector
|
|
796
|
-
} =
|
|
500
|
+
} = _ref;
|
|
797
501
|
return connector;
|
|
798
502
|
}, (connector, prevConnector) => {
|
|
799
503
|
var _prevConnector$off, _prevConnector$off2, _prevConnector$off3, _connector$on, _connector$on2, _connector$on3;
|
|
@@ -806,23 +510,23 @@ function _addEffects2() {
|
|
|
806
510
|
(_connector$on2 = connector.on) === null || _connector$on2 === void 0 ? void 0 : _connector$on2.call(connector, 'disconnect', onDisconnect);
|
|
807
511
|
(_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
|
|
808
512
|
});
|
|
809
|
-
|
|
513
|
+
const {
|
|
810
514
|
connectors,
|
|
811
515
|
provider,
|
|
812
516
|
webSocketProvider
|
|
813
517
|
} = this.config;
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
if (subscribeConnectors || subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(
|
|
518
|
+
const subscribeConnectors = typeof connectors === 'function';
|
|
519
|
+
const subscribeProvider = typeof provider === 'function';
|
|
520
|
+
const subscribeWebSocketProvider = typeof webSocketProvider === 'function';
|
|
521
|
+
if (subscribeConnectors || subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
|
|
818
522
|
var _data$chain2;
|
|
819
523
|
|
|
820
|
-
|
|
524
|
+
let {
|
|
821
525
|
data
|
|
822
|
-
} =
|
|
526
|
+
} = _ref2;
|
|
823
527
|
return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
|
|
824
528
|
}, chainId => {
|
|
825
|
-
this.setState(x =>
|
|
529
|
+
this.setState(x => ({ ...x,
|
|
826
530
|
connectors: subscribeConnectors ? connectors({
|
|
827
531
|
chainId
|
|
828
532
|
}) : x.connectors,
|
|
@@ -836,105 +540,83 @@ function _addEffects2() {
|
|
|
836
540
|
});
|
|
837
541
|
}
|
|
838
542
|
|
|
839
|
-
|
|
543
|
+
let client;
|
|
840
544
|
function createClient(config) {
|
|
841
|
-
|
|
545
|
+
const client_ = new Client(config);
|
|
842
546
|
client = client_;
|
|
843
547
|
return client_;
|
|
844
548
|
}
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
return _connect.apply(this, arguments);
|
|
848
|
-
}
|
|
849
|
-
|
|
850
|
-
function _connect() {
|
|
851
|
-
_connect = _asyncToGenerator(function* (connector) {
|
|
852
|
-
var activeConnector = client.connector;
|
|
853
|
-
if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new ConnectorAlreadyConnectedError();
|
|
854
|
-
var data = yield connector.connect();
|
|
855
|
-
client.setLastUsedConnector(connector.id);
|
|
856
|
-
client.setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
|
|
857
|
-
connector,
|
|
858
|
-
data
|
|
859
|
-
}));
|
|
860
|
-
client.storage.setItem('connected', true);
|
|
861
|
-
return {
|
|
862
|
-
data,
|
|
863
|
-
connector
|
|
864
|
-
};
|
|
865
|
-
});
|
|
866
|
-
return _connect.apply(this, arguments);
|
|
549
|
+
function getClient() {
|
|
550
|
+
return client;
|
|
867
551
|
}
|
|
868
552
|
|
|
869
|
-
function
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
553
|
+
async function connect(_ref) {
|
|
554
|
+
let {
|
|
555
|
+
connector
|
|
556
|
+
} = _ref;
|
|
557
|
+
const activeConnector = client.connector;
|
|
558
|
+
if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new ConnectorAlreadyConnectedError();
|
|
559
|
+
const data = await connector.connect();
|
|
560
|
+
client.setLastUsedConnector(connector.id);
|
|
561
|
+
client.setState(x => ({ ...x,
|
|
562
|
+
connector,
|
|
563
|
+
chains: connector === null || connector === void 0 ? void 0 : connector.chains,
|
|
564
|
+
data
|
|
565
|
+
}));
|
|
566
|
+
client.storage.setItem('connected', true);
|
|
567
|
+
return { ...data,
|
|
568
|
+
connector
|
|
569
|
+
};
|
|
880
570
|
}
|
|
881
571
|
|
|
882
|
-
function
|
|
883
|
-
|
|
572
|
+
async function disconnect() {
|
|
573
|
+
if (client.connector) await client.connector.disconnect();
|
|
574
|
+
client.clearState();
|
|
575
|
+
client.storage.removeItem('connected');
|
|
884
576
|
}
|
|
885
577
|
|
|
886
|
-
function
|
|
887
|
-
|
|
888
|
-
var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
|
|
578
|
+
async function fetchBalance(_ref) {
|
|
579
|
+
var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
|
|
889
580
|
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
if (token) {
|
|
897
|
-
var contract = new Contract(token, erc20ABI, client.provider);
|
|
898
|
-
var [_value, decimals, symbol] = yield Promise.all([contract.balanceOf(addressOrName), contract.decimals(), contract.symbol()]);
|
|
899
|
-
return {
|
|
900
|
-
decimals,
|
|
901
|
-
formatted: formatUnits(_value, unit),
|
|
902
|
-
symbol,
|
|
903
|
-
unit,
|
|
904
|
-
value: _value
|
|
905
|
-
};
|
|
906
|
-
}
|
|
581
|
+
let {
|
|
582
|
+
addressOrName,
|
|
583
|
+
formatUnits: unit = 'ether',
|
|
584
|
+
token
|
|
585
|
+
} = _ref;
|
|
907
586
|
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
587
|
+
if (token) {
|
|
588
|
+
const contract = new Contract(token, erc20ABI, client.provider);
|
|
589
|
+
const [value, decimals, symbol] = await Promise.all([contract.balanceOf(addressOrName), contract.decimals(), contract.symbol()]);
|
|
911
590
|
return {
|
|
912
|
-
decimals
|
|
591
|
+
decimals,
|
|
913
592
|
formatted: formatUnits(value, unit),
|
|
914
|
-
symbol
|
|
593
|
+
symbol,
|
|
915
594
|
unit,
|
|
916
595
|
value
|
|
917
596
|
};
|
|
918
|
-
}
|
|
919
|
-
return _fetchBalance.apply(this, arguments);
|
|
920
|
-
}
|
|
597
|
+
}
|
|
921
598
|
|
|
922
|
-
|
|
923
|
-
|
|
599
|
+
const chains = [...((_client$connector$cha = (_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : _client$connector.chains) !== null && _client$connector$cha !== void 0 ? _client$connector$cha : []), ...allChains];
|
|
600
|
+
const value = await client.provider.getBalance(addressOrName);
|
|
601
|
+
const chain = chains.find(x => x.id === client.provider.network.chainId);
|
|
602
|
+
return {
|
|
603
|
+
decimals: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.decimals) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 18,
|
|
604
|
+
formatted: formatUnits(value, unit),
|
|
605
|
+
symbol: (_chain$nativeCurrency3 = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency4 = chain.nativeCurrency) === null || _chain$nativeCurrency4 === void 0 ? void 0 : _chain$nativeCurrency4.symbol) !== null && _chain$nativeCurrency3 !== void 0 ? _chain$nativeCurrency3 : 'ETH',
|
|
606
|
+
unit,
|
|
607
|
+
value
|
|
608
|
+
};
|
|
924
609
|
}
|
|
925
610
|
|
|
926
|
-
function
|
|
927
|
-
|
|
928
|
-
var _client$connector, _client$connector$get;
|
|
611
|
+
async function fetchSigner() {
|
|
612
|
+
var _client$connector, _client$connector$get;
|
|
929
613
|
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
});
|
|
933
|
-
return _fetchSigner.apply(this, arguments);
|
|
614
|
+
const signer = await ((_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : (_client$connector$get = _client$connector.getSigner) === null || _client$connector$get === void 0 ? void 0 : _client$connector$get.call(_client$connector));
|
|
615
|
+
return signer;
|
|
934
616
|
}
|
|
935
617
|
|
|
936
618
|
function getAccount() {
|
|
937
|
-
|
|
619
|
+
const {
|
|
938
620
|
data,
|
|
939
621
|
connector
|
|
940
622
|
} = client;
|
|
@@ -945,88 +627,72 @@ function getAccount() {
|
|
|
945
627
|
}
|
|
946
628
|
|
|
947
629
|
function getNetwork() {
|
|
948
|
-
var _data$chain, _data$chain2,
|
|
630
|
+
var _data$chain, _data$chain2, _find;
|
|
949
631
|
|
|
950
|
-
|
|
951
|
-
|
|
632
|
+
const {
|
|
633
|
+
chains,
|
|
952
634
|
data
|
|
953
635
|
} = client;
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
636
|
+
const chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
|
|
637
|
+
const unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
|
|
638
|
+
const activeChains = chains !== null && chains !== void 0 ? chains : [];
|
|
639
|
+
const activeChain = (_find = [...activeChains, ...allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
|
|
958
640
|
id: chainId,
|
|
959
641
|
name: "Chain ".concat(chainId),
|
|
960
|
-
rpcUrls:
|
|
642
|
+
rpcUrls: {
|
|
643
|
+
default: []
|
|
644
|
+
}
|
|
961
645
|
};
|
|
962
646
|
return {
|
|
963
|
-
chain: chainId ?
|
|
647
|
+
chain: chainId ? { ...activeChain,
|
|
964
648
|
id: chainId,
|
|
965
649
|
unsupported
|
|
966
|
-
}
|
|
650
|
+
} : undefined,
|
|
967
651
|
chains: activeChains
|
|
968
652
|
};
|
|
969
653
|
}
|
|
970
654
|
|
|
971
|
-
function signMessage(
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
} catch (error_) {
|
|
982
|
-
var error = error_;
|
|
983
|
-
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
984
|
-
throw error;
|
|
985
|
-
}
|
|
986
|
-
});
|
|
987
|
-
return _signMessage.apply(this, arguments);
|
|
988
|
-
}
|
|
989
|
-
|
|
990
|
-
function signTypedData(_x) {
|
|
991
|
-
return _signTypedData.apply(this, arguments);
|
|
655
|
+
async function signMessage(args) {
|
|
656
|
+
try {
|
|
657
|
+
const signer = await fetchSigner();
|
|
658
|
+
if (!signer) throw new ConnectorNotFoundError();
|
|
659
|
+
return await signer.signMessage(args.message);
|
|
660
|
+
} catch (error_) {
|
|
661
|
+
let error = error_;
|
|
662
|
+
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
663
|
+
throw error;
|
|
664
|
+
}
|
|
992
665
|
}
|
|
993
666
|
|
|
994
|
-
function
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
if (!signer) throw new ConnectorNotFoundError(); // Method name may be changed in the future, see https://docs.ethers.io/v5/api/signer/#Signer-signTypedData
|
|
667
|
+
async function signTypedData(args) {
|
|
668
|
+
try {
|
|
669
|
+
const signer = await fetchSigner();
|
|
670
|
+
if (!signer) throw new ConnectorNotFoundError(); // Method name may be changed in the future, see https://docs.ethers.io/v5/api/signer/#Signer-signTypedData
|
|
999
671
|
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
});
|
|
1007
|
-
return _signTypedData.apply(this, arguments);
|
|
1008
|
-
}
|
|
1009
|
-
|
|
1010
|
-
function switchNetwork(_x) {
|
|
1011
|
-
return _switchNetwork.apply(this, arguments);
|
|
672
|
+
return await signer._signTypedData(args.domain, args.types, args.value);
|
|
673
|
+
} catch (error_) {
|
|
674
|
+
let error = error_;
|
|
675
|
+
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
676
|
+
throw error;
|
|
677
|
+
}
|
|
1012
678
|
}
|
|
1013
679
|
|
|
1014
|
-
function
|
|
1015
|
-
|
|
1016
|
-
var _client$connector;
|
|
680
|
+
async function switchNetwork(_ref) {
|
|
681
|
+
var _client$connector;
|
|
1017
682
|
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
683
|
+
let {
|
|
684
|
+
chainId
|
|
685
|
+
} = _ref;
|
|
686
|
+
if (!((_client$connector = client.connector) !== null && _client$connector !== void 0 && _client$connector.switchChain)) throw new SwitchChainNotSupportedError();
|
|
687
|
+
const chain = await client.connector.switchChain(chainId);
|
|
688
|
+
return chain;
|
|
1023
689
|
}
|
|
1024
690
|
|
|
1025
691
|
function watchAccount(callback) {
|
|
1026
|
-
|
|
692
|
+
const handleChange = () => callback(getAccount());
|
|
1027
693
|
|
|
1028
|
-
|
|
1029
|
-
|
|
694
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
695
|
+
let {
|
|
1030
696
|
data,
|
|
1031
697
|
connector
|
|
1032
698
|
} = _ref;
|
|
@@ -1041,22 +707,14 @@ function watchAccount(callback) {
|
|
|
1041
707
|
}
|
|
1042
708
|
|
|
1043
709
|
function watchBalance(args, callback) {
|
|
1044
|
-
|
|
1045
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1046
|
-
return callback(yield fetchBalance(args));
|
|
1047
|
-
});
|
|
710
|
+
const handleChange = async () => callback(await fetchBalance(args));
|
|
1048
711
|
|
|
1049
|
-
|
|
1050
|
-
return _ref.apply(this, arguments);
|
|
1051
|
-
};
|
|
1052
|
-
}();
|
|
1053
|
-
|
|
1054
|
-
var unsubscribe = client.subscribe(_ref2 => {
|
|
712
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1055
713
|
var _data$chain;
|
|
1056
714
|
|
|
1057
|
-
|
|
715
|
+
let {
|
|
1058
716
|
data
|
|
1059
|
-
} =
|
|
717
|
+
} = _ref;
|
|
1060
718
|
return {
|
|
1061
719
|
account: data === null || data === void 0 ? void 0 : data.account,
|
|
1062
720
|
chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id
|
|
@@ -1068,43 +726,35 @@ function watchBalance(args, callback) {
|
|
|
1068
726
|
}
|
|
1069
727
|
|
|
1070
728
|
function watchNetwork(callback) {
|
|
1071
|
-
|
|
729
|
+
const handleChange = () => callback(getNetwork());
|
|
1072
730
|
|
|
1073
|
-
|
|
731
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1074
732
|
var _data$chain;
|
|
1075
733
|
|
|
1076
|
-
|
|
734
|
+
let {
|
|
1077
735
|
data,
|
|
1078
|
-
|
|
736
|
+
chains
|
|
1079
737
|
} = _ref;
|
|
1080
738
|
return {
|
|
1081
739
|
chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
|
|
1082
|
-
|
|
740
|
+
chains
|
|
1083
741
|
};
|
|
1084
742
|
}, handleChange, {
|
|
1085
|
-
equalityFn: (selected, previous) => selected.chainId === previous.chainId && selected.
|
|
743
|
+
equalityFn: (selected, previous) => selected.chainId === previous.chainId && selected.chains === previous.chains
|
|
1086
744
|
});
|
|
1087
745
|
return unsubscribe;
|
|
1088
746
|
}
|
|
1089
747
|
|
|
1090
748
|
function watchSigner(callback) {
|
|
1091
|
-
|
|
1092
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1093
|
-
return callback(yield fetchSigner());
|
|
1094
|
-
});
|
|
749
|
+
const handleChange = async () => callback(await fetchSigner());
|
|
1095
750
|
|
|
1096
|
-
|
|
1097
|
-
return _ref.apply(this, arguments);
|
|
1098
|
-
};
|
|
1099
|
-
}();
|
|
1100
|
-
|
|
1101
|
-
var unsubscribe = client.subscribe(_ref2 => {
|
|
751
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1102
752
|
var _data$chain;
|
|
1103
753
|
|
|
1104
|
-
|
|
754
|
+
let {
|
|
1105
755
|
data,
|
|
1106
756
|
connector
|
|
1107
|
-
} =
|
|
757
|
+
} = _ref;
|
|
1108
758
|
return {
|
|
1109
759
|
account: data === null || data === void 0 ? void 0 : data.account,
|
|
1110
760
|
chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
|
|
@@ -1117,7 +767,7 @@ function watchSigner(callback) {
|
|
|
1117
767
|
}
|
|
1118
768
|
|
|
1119
769
|
function getContract(_ref) {
|
|
1120
|
-
|
|
770
|
+
let {
|
|
1121
771
|
addressOrName,
|
|
1122
772
|
contractInterface,
|
|
1123
773
|
signerOrProvider
|
|
@@ -1125,27 +775,21 @@ function getContract(_ref) {
|
|
|
1125
775
|
return new Contract(addressOrName, contractInterface, signerOrProvider);
|
|
1126
776
|
}
|
|
1127
777
|
|
|
1128
|
-
function readContract(
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
provider
|
|
1140
|
-
} = client;
|
|
1141
|
-
var contract = getContract(_objectSpread2({
|
|
1142
|
-
signerOrProvider: provider
|
|
1143
|
-
}, contractConfig));
|
|
1144
|
-
var params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
1145
|
-
var response = yield contract[functionName](...params);
|
|
1146
|
-
return response;
|
|
778
|
+
async function readContract(contractConfig, functionName) {
|
|
779
|
+
let {
|
|
780
|
+
args,
|
|
781
|
+
overrides
|
|
782
|
+
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
783
|
+
const {
|
|
784
|
+
provider
|
|
785
|
+
} = client;
|
|
786
|
+
const contract = getContract({
|
|
787
|
+
signerOrProvider: provider,
|
|
788
|
+
...contractConfig
|
|
1147
789
|
});
|
|
1148
|
-
|
|
790
|
+
const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
791
|
+
const response = await contract[functionName](...params);
|
|
792
|
+
return response;
|
|
1149
793
|
}
|
|
1150
794
|
|
|
1151
795
|
function watchContractEvent(
|
|
@@ -1153,36 +797,31 @@ function watchContractEvent(
|
|
|
1153
797
|
contractArgs,
|
|
1154
798
|
/** Event name to listen to */
|
|
1155
799
|
eventName, callback) {
|
|
1156
|
-
|
|
800
|
+
let {
|
|
1157
801
|
once
|
|
1158
802
|
} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
1159
|
-
|
|
803
|
+
let contract;
|
|
1160
804
|
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
var _contract;
|
|
805
|
+
const watchEvent = async () => {
|
|
806
|
+
if (contract) {
|
|
807
|
+
var _contract;
|
|
1165
808
|
|
|
1166
|
-
|
|
1167
|
-
|
|
809
|
+
(_contract = contract) === null || _contract === void 0 ? void 0 : _contract.off(eventName, callback);
|
|
810
|
+
}
|
|
1168
811
|
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
|
|
812
|
+
contract = getContract({
|
|
813
|
+
signerOrProvider: client.webSocketProvider || client.provider,
|
|
814
|
+
...contractArgs
|
|
1173
815
|
});
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
return _ref.apply(this, arguments);
|
|
1177
|
-
};
|
|
1178
|
-
}();
|
|
816
|
+
if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
|
|
817
|
+
};
|
|
1179
818
|
|
|
1180
819
|
watchEvent();
|
|
1181
|
-
|
|
1182
|
-
|
|
820
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
821
|
+
let {
|
|
1183
822
|
provider,
|
|
1184
823
|
webSocketProvider
|
|
1185
|
-
} =
|
|
824
|
+
} = _ref;
|
|
1186
825
|
return {
|
|
1187
826
|
provider,
|
|
1188
827
|
webSocketProvider
|
|
@@ -1198,23 +837,16 @@ eventName, callback) {
|
|
|
1198
837
|
};
|
|
1199
838
|
}
|
|
1200
839
|
|
|
1201
|
-
function fetchBlockNumber() {
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
function _fetchBlockNumber() {
|
|
1206
|
-
_fetchBlockNumber = _asyncToGenerator(function* () {
|
|
1207
|
-
var blockNumber = yield client.provider.getBlockNumber();
|
|
1208
|
-
return blockNumber;
|
|
1209
|
-
});
|
|
1210
|
-
return _fetchBlockNumber.apply(this, arguments);
|
|
840
|
+
async function fetchBlockNumber() {
|
|
841
|
+
const blockNumber = await client.provider.getBlockNumber();
|
|
842
|
+
return blockNumber;
|
|
1211
843
|
}
|
|
1212
844
|
|
|
1213
845
|
function watchBlockNumber(args, callback) {
|
|
1214
|
-
|
|
846
|
+
let prevProvider;
|
|
1215
847
|
|
|
1216
|
-
|
|
1217
|
-
|
|
848
|
+
const createListener = provider => {
|
|
849
|
+
const listener = blockNumber => {
|
|
1218
850
|
callback(blockNumber);
|
|
1219
851
|
};
|
|
1220
852
|
|
|
@@ -1228,14 +860,14 @@ function watchBlockNumber(args, callback) {
|
|
|
1228
860
|
prevProvider = provider;
|
|
1229
861
|
};
|
|
1230
862
|
|
|
1231
|
-
|
|
863
|
+
const {
|
|
1232
864
|
provider,
|
|
1233
865
|
webSocketProvider
|
|
1234
866
|
} = client;
|
|
1235
|
-
|
|
867
|
+
const provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
|
|
1236
868
|
if (args.listen) createListener(provider_);
|
|
1237
|
-
|
|
1238
|
-
|
|
869
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
870
|
+
let {
|
|
1239
871
|
provider,
|
|
1240
872
|
webSocketProvider
|
|
1241
873
|
} = _ref;
|
|
@@ -1243,25 +875,19 @@ function watchBlockNumber(args, callback) {
|
|
|
1243
875
|
provider,
|
|
1244
876
|
webSocketProvider
|
|
1245
877
|
};
|
|
1246
|
-
},
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
var provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
|
|
1253
|
-
|
|
1254
|
-
if (args.listen && provider_) {
|
|
1255
|
-
createListener(provider_);
|
|
1256
|
-
}
|
|
878
|
+
}, async _ref2 => {
|
|
879
|
+
let {
|
|
880
|
+
provider,
|
|
881
|
+
webSocketProvider
|
|
882
|
+
} = _ref2;
|
|
883
|
+
const provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
|
|
1257
884
|
|
|
1258
|
-
|
|
1259
|
-
|
|
885
|
+
if (args.listen && provider_) {
|
|
886
|
+
createListener(provider_);
|
|
887
|
+
}
|
|
1260
888
|
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
};
|
|
1264
|
-
}(), {
|
|
889
|
+
callback(await fetchBlockNumber());
|
|
890
|
+
}, {
|
|
1265
891
|
equalityFn: (selected, previous) => selected.provider === previous.provider && selected.webSocketProvider === previous.webSocketProvider
|
|
1266
892
|
});
|
|
1267
893
|
return unsubscribe;
|
|
@@ -1270,26 +896,18 @@ function watchBlockNumber(args, callback) {
|
|
|
1270
896
|
function watchReadContract(contractConfig, functionName) {
|
|
1271
897
|
var _config$listenToBlock;
|
|
1272
898
|
|
|
1273
|
-
|
|
1274
|
-
|
|
899
|
+
let config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
900
|
+
let callback = arguments.length > 3 ? arguments[3] : undefined;
|
|
1275
901
|
|
|
1276
|
-
|
|
1277
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1278
|
-
return callback(yield readContract(contractConfig, functionName, config));
|
|
1279
|
-
});
|
|
902
|
+
const handleChange = async () => callback(await readContract(contractConfig, functionName, config));
|
|
1280
903
|
|
|
1281
|
-
|
|
1282
|
-
return _ref.apply(this, arguments);
|
|
1283
|
-
};
|
|
1284
|
-
}();
|
|
1285
|
-
|
|
1286
|
-
var unwatch = ((_config$listenToBlock = config.listenToBlock) !== null && _config$listenToBlock !== void 0 ? _config$listenToBlock : true) ? watchBlockNumber({
|
|
904
|
+
const unwatch = ((_config$listenToBlock = config.listenToBlock) !== null && _config$listenToBlock !== void 0 ? _config$listenToBlock : true) ? watchBlockNumber({
|
|
1287
905
|
listen: true
|
|
1288
906
|
}, handleChange) : undefined;
|
|
1289
|
-
|
|
1290
|
-
|
|
907
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
908
|
+
let {
|
|
1291
909
|
provider
|
|
1292
|
-
} =
|
|
910
|
+
} = _ref;
|
|
1293
911
|
return provider;
|
|
1294
912
|
}, handleChange);
|
|
1295
913
|
return () => {
|
|
@@ -1298,224 +916,142 @@ function watchReadContract(contractConfig, functionName) {
|
|
|
1298
916
|
};
|
|
1299
917
|
}
|
|
1300
918
|
|
|
1301
|
-
function writeContract(
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
} catch (error_) {
|
|
1324
|
-
var error = error_;
|
|
1325
|
-
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
1326
|
-
throw error;
|
|
1327
|
-
}
|
|
1328
|
-
});
|
|
1329
|
-
return _writeContract.apply(this, arguments);
|
|
1330
|
-
}
|
|
1331
|
-
|
|
1332
|
-
function fetchEnsAddress(_x) {
|
|
1333
|
-
return _fetchEnsAddress.apply(this, arguments);
|
|
1334
|
-
}
|
|
1335
|
-
|
|
1336
|
-
function _fetchEnsAddress() {
|
|
1337
|
-
_fetchEnsAddress = _asyncToGenerator(function* (_ref) {
|
|
1338
|
-
var {
|
|
1339
|
-
name
|
|
1340
|
-
} = _ref;
|
|
1341
|
-
var address = yield client.provider.resolveName(name);
|
|
1342
|
-
|
|
1343
|
-
try {
|
|
1344
|
-
return address ? getAddress(address) : null;
|
|
1345
|
-
} catch (_error) {
|
|
1346
|
-
return null;
|
|
1347
|
-
}
|
|
1348
|
-
});
|
|
1349
|
-
return _fetchEnsAddress.apply(this, arguments);
|
|
1350
|
-
}
|
|
1351
|
-
|
|
1352
|
-
function fetchEnsAvatar(_x) {
|
|
1353
|
-
return _fetchEnsAvatar.apply(this, arguments);
|
|
919
|
+
async function writeContract(contractConfig, functionName) {
|
|
920
|
+
let {
|
|
921
|
+
args,
|
|
922
|
+
overrides
|
|
923
|
+
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
924
|
+
const {
|
|
925
|
+
connector
|
|
926
|
+
} = client;
|
|
927
|
+
const contract = getContract(contractConfig);
|
|
928
|
+
if (!connector) throw new ConnectorNotFoundError();
|
|
929
|
+
const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
930
|
+
|
|
931
|
+
try {
|
|
932
|
+
const signer = await connector.getSigner();
|
|
933
|
+
const contract_ = contract.connect(signer);
|
|
934
|
+
const response = await contract_[functionName](...params);
|
|
935
|
+
return response;
|
|
936
|
+
} catch (error_) {
|
|
937
|
+
let error = error_;
|
|
938
|
+
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
939
|
+
throw error;
|
|
940
|
+
}
|
|
1354
941
|
}
|
|
1355
942
|
|
|
1356
|
-
function
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
// TODO: Update with more advanced logic
|
|
1362
|
-
// https://github.com/ensdomains/ens-avatar
|
|
1363
|
-
var avatar = yield client.provider.getAvatar(addressOrName);
|
|
1364
|
-
return avatar;
|
|
1365
|
-
});
|
|
1366
|
-
return _fetchEnsAvatar.apply(this, arguments);
|
|
1367
|
-
}
|
|
943
|
+
async function fetchEnsAddress(_ref) {
|
|
944
|
+
let {
|
|
945
|
+
name
|
|
946
|
+
} = _ref;
|
|
947
|
+
const address = await client.provider.resolveName(name);
|
|
1368
948
|
|
|
1369
|
-
|
|
1370
|
-
|
|
949
|
+
try {
|
|
950
|
+
return address ? getAddress(address) : null;
|
|
951
|
+
} catch (_error) {
|
|
952
|
+
return null;
|
|
953
|
+
}
|
|
1371
954
|
}
|
|
1372
955
|
|
|
1373
|
-
function
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
return _fetchEnsName.apply(this, arguments);
|
|
956
|
+
async function fetchEnsAvatar(_ref) {
|
|
957
|
+
let {
|
|
958
|
+
addressOrName
|
|
959
|
+
} = _ref;
|
|
960
|
+
// TODO: Update with more advanced logic
|
|
961
|
+
// https://github.com/ensdomains/ens-avatar
|
|
962
|
+
const avatar = await client.provider.getAvatar(addressOrName);
|
|
963
|
+
return avatar;
|
|
1382
964
|
}
|
|
1383
965
|
|
|
1384
|
-
function
|
|
1385
|
-
|
|
966
|
+
async function fetchEnsName(_ref) {
|
|
967
|
+
let {
|
|
968
|
+
address
|
|
969
|
+
} = _ref;
|
|
970
|
+
const ensName = await client.provider.lookupAddress(address);
|
|
971
|
+
return ensName;
|
|
1386
972
|
}
|
|
1387
973
|
|
|
1388
|
-
function
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
return resolver;
|
|
1395
|
-
});
|
|
1396
|
-
return _fetchEnsResolver.apply(this, arguments);
|
|
974
|
+
async function fetchEnsResolver(_ref) {
|
|
975
|
+
let {
|
|
976
|
+
name
|
|
977
|
+
} = _ref;
|
|
978
|
+
const resolver = await client.provider.getResolver(name);
|
|
979
|
+
return resolver;
|
|
1397
980
|
}
|
|
1398
981
|
|
|
1399
982
|
function watchEnsAddress(args, callback) {
|
|
1400
|
-
|
|
1401
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1402
|
-
return callback(yield fetchEnsAddress(args));
|
|
1403
|
-
});
|
|
1404
|
-
|
|
1405
|
-
return function handleChange() {
|
|
1406
|
-
return _ref.apply(this, arguments);
|
|
1407
|
-
};
|
|
1408
|
-
}();
|
|
983
|
+
const handleChange = async () => callback(await fetchEnsAddress(args));
|
|
1409
984
|
|
|
1410
|
-
|
|
1411
|
-
|
|
985
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
986
|
+
let {
|
|
1412
987
|
provider
|
|
1413
|
-
} =
|
|
988
|
+
} = _ref;
|
|
1414
989
|
return provider;
|
|
1415
990
|
}, handleChange);
|
|
1416
991
|
return unsubscribe;
|
|
1417
992
|
}
|
|
1418
993
|
|
|
1419
994
|
function watchEnsAvatar(args, callback) {
|
|
1420
|
-
|
|
1421
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1422
|
-
return callback(yield fetchEnsAvatar(args));
|
|
1423
|
-
});
|
|
1424
|
-
|
|
1425
|
-
return function handleChange() {
|
|
1426
|
-
return _ref.apply(this, arguments);
|
|
1427
|
-
};
|
|
1428
|
-
}();
|
|
995
|
+
const handleChange = async () => callback(await fetchEnsAvatar(args));
|
|
1429
996
|
|
|
1430
|
-
|
|
1431
|
-
|
|
997
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
998
|
+
let {
|
|
1432
999
|
provider
|
|
1433
|
-
} =
|
|
1000
|
+
} = _ref;
|
|
1434
1001
|
return provider;
|
|
1435
1002
|
}, handleChange);
|
|
1436
1003
|
return unsubscribe;
|
|
1437
1004
|
}
|
|
1438
1005
|
|
|
1439
1006
|
function watchEnsName(args, callback) {
|
|
1440
|
-
|
|
1441
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1442
|
-
return callback(yield fetchEnsName(args));
|
|
1443
|
-
});
|
|
1444
|
-
|
|
1445
|
-
return function handleChange() {
|
|
1446
|
-
return _ref.apply(this, arguments);
|
|
1447
|
-
};
|
|
1448
|
-
}();
|
|
1007
|
+
const handleChange = async () => callback(await fetchEnsName(args));
|
|
1449
1008
|
|
|
1450
|
-
|
|
1451
|
-
|
|
1009
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1010
|
+
let {
|
|
1452
1011
|
provider
|
|
1453
|
-
} =
|
|
1012
|
+
} = _ref;
|
|
1454
1013
|
return provider;
|
|
1455
1014
|
}, handleChange);
|
|
1456
1015
|
return unsubscribe;
|
|
1457
1016
|
}
|
|
1458
1017
|
|
|
1459
1018
|
function watchEnsResolver(args, callback) {
|
|
1460
|
-
|
|
1461
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1462
|
-
return callback(yield fetchEnsResolver(args));
|
|
1463
|
-
});
|
|
1464
|
-
|
|
1465
|
-
return function handleChange() {
|
|
1466
|
-
return _ref.apply(this, arguments);
|
|
1467
|
-
};
|
|
1468
|
-
}();
|
|
1019
|
+
const handleChange = async () => callback(await fetchEnsResolver(args));
|
|
1469
1020
|
|
|
1470
|
-
|
|
1471
|
-
|
|
1021
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1022
|
+
let {
|
|
1472
1023
|
provider
|
|
1473
|
-
} =
|
|
1024
|
+
} = _ref;
|
|
1474
1025
|
return provider;
|
|
1475
1026
|
}, handleChange);
|
|
1476
1027
|
return unsubscribe;
|
|
1477
1028
|
}
|
|
1478
1029
|
|
|
1479
|
-
function fetchFeeData() {
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
maxPriorityFeePerGas: formatUnits(feeData.maxPriorityFeePerGas, units)
|
|
1493
|
-
};
|
|
1494
|
-
return _objectSpread2(_objectSpread2({}, feeData), {}, {
|
|
1495
|
-
formatted
|
|
1496
|
-
});
|
|
1497
|
-
});
|
|
1498
|
-
return _fetchFeeData.apply(this, arguments);
|
|
1030
|
+
async function fetchFeeData() {
|
|
1031
|
+
let {
|
|
1032
|
+
formatUnits: units = 'wei'
|
|
1033
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1034
|
+
const feeData = await client.provider.getFeeData();
|
|
1035
|
+
const formatted = {
|
|
1036
|
+
gasPrice: formatUnits(feeData.gasPrice, units),
|
|
1037
|
+
maxFeePerGas: formatUnits(feeData.maxFeePerGas, units),
|
|
1038
|
+
maxPriorityFeePerGas: formatUnits(feeData.maxPriorityFeePerGas, units)
|
|
1039
|
+
};
|
|
1040
|
+
return { ...feeData,
|
|
1041
|
+
formatted
|
|
1042
|
+
};
|
|
1499
1043
|
}
|
|
1500
1044
|
|
|
1501
1045
|
function watchFeeData(args, callback) {
|
|
1502
|
-
|
|
1503
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1504
|
-
return callback(yield fetchFeeData(args));
|
|
1505
|
-
});
|
|
1046
|
+
const handleChange = async () => callback(await fetchFeeData(args));
|
|
1506
1047
|
|
|
1507
|
-
|
|
1508
|
-
return _ref.apply(this, arguments);
|
|
1509
|
-
};
|
|
1510
|
-
}();
|
|
1511
|
-
|
|
1512
|
-
var unwatch = args.listenToBlock ? watchBlockNumber({
|
|
1048
|
+
const unwatch = args.listenToBlock ? watchBlockNumber({
|
|
1513
1049
|
listen: true
|
|
1514
1050
|
}, handleChange) : undefined;
|
|
1515
|
-
|
|
1516
|
-
|
|
1051
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1052
|
+
let {
|
|
1517
1053
|
provider
|
|
1518
|
-
} =
|
|
1054
|
+
} = _ref;
|
|
1519
1055
|
return provider;
|
|
1520
1056
|
}, handleChange);
|
|
1521
1057
|
return () => {
|
|
@@ -1525,99 +1061,70 @@ function watchFeeData(args, callback) {
|
|
|
1525
1061
|
}
|
|
1526
1062
|
|
|
1527
1063
|
function getProvider() {
|
|
1528
|
-
return
|
|
1064
|
+
return getClient().provider;
|
|
1529
1065
|
}
|
|
1530
1066
|
|
|
1531
1067
|
function getWebSocketProvider() {
|
|
1532
|
-
return
|
|
1533
|
-
}
|
|
1534
|
-
|
|
1535
|
-
function fetchToken(_x) {
|
|
1536
|
-
return _fetchToken.apply(this, arguments);
|
|
1068
|
+
return getClient().webSocketProvider;
|
|
1537
1069
|
}
|
|
1538
1070
|
|
|
1539
|
-
function
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
return token;
|
|
1561
|
-
});
|
|
1562
|
-
return _fetchToken.apply(this, arguments);
|
|
1071
|
+
async function fetchToken(_ref) {
|
|
1072
|
+
let {
|
|
1073
|
+
address,
|
|
1074
|
+
formatUnits: units = 'ether'
|
|
1075
|
+
} = _ref;
|
|
1076
|
+
if (!address) throw new Error('address is required');
|
|
1077
|
+
const {
|
|
1078
|
+
provider
|
|
1079
|
+
} = client;
|
|
1080
|
+
const contract = new Contract(address, erc20ABI, provider);
|
|
1081
|
+
const [symbol, decimals, totalSupply] = await Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
|
|
1082
|
+
const token = {
|
|
1083
|
+
address,
|
|
1084
|
+
decimals,
|
|
1085
|
+
symbol,
|
|
1086
|
+
totalSupply: {
|
|
1087
|
+
formatted: formatUnits(totalSupply, units),
|
|
1088
|
+
value: totalSupply
|
|
1089
|
+
}
|
|
1090
|
+
};
|
|
1091
|
+
return token;
|
|
1563
1092
|
}
|
|
1564
1093
|
|
|
1565
1094
|
function watchToken(args, callback) {
|
|
1566
|
-
|
|
1567
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1568
|
-
return callback(yield fetchToken(args));
|
|
1569
|
-
});
|
|
1570
|
-
|
|
1571
|
-
return function handleChange() {
|
|
1572
|
-
return _ref.apply(this, arguments);
|
|
1573
|
-
};
|
|
1574
|
-
}();
|
|
1095
|
+
const handleChange = async () => callback(await fetchToken(args));
|
|
1575
1096
|
|
|
1576
|
-
|
|
1577
|
-
|
|
1097
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1098
|
+
let {
|
|
1578
1099
|
provider
|
|
1579
|
-
} =
|
|
1100
|
+
} = _ref;
|
|
1580
1101
|
return provider;
|
|
1581
1102
|
}, handleChange);
|
|
1582
1103
|
return unsubscribe;
|
|
1583
1104
|
}
|
|
1584
1105
|
|
|
1585
|
-
function sendTransaction(
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
} catch (error_) {
|
|
1597
|
-
var error = error_;
|
|
1598
|
-
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
1599
|
-
throw error;
|
|
1600
|
-
}
|
|
1601
|
-
});
|
|
1602
|
-
return _sendTransaction.apply(this, arguments);
|
|
1603
|
-
}
|
|
1604
|
-
|
|
1605
|
-
function waitForTransaction(_x) {
|
|
1606
|
-
return _waitForTransaction.apply(this, arguments);
|
|
1106
|
+
async function sendTransaction(args) {
|
|
1107
|
+
try {
|
|
1108
|
+
const signer = await fetchSigner();
|
|
1109
|
+
if (!signer) throw new ConnectorNotFoundError();
|
|
1110
|
+
const transaction = await signer.sendTransaction(args.request);
|
|
1111
|
+
return transaction;
|
|
1112
|
+
} catch (error_) {
|
|
1113
|
+
let error = error_;
|
|
1114
|
+
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
1115
|
+
throw error;
|
|
1116
|
+
}
|
|
1607
1117
|
}
|
|
1608
1118
|
|
|
1609
|
-
function
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
var promise; // eslint-disable-next-line testing-library/await-async-utils
|
|
1119
|
+
async function waitForTransaction(args) {
|
|
1120
|
+
const {
|
|
1121
|
+
provider
|
|
1122
|
+
} = client;
|
|
1123
|
+
let promise; // eslint-disable-next-line testing-library/await-async-utils
|
|
1615
1124
|
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
});
|
|
1620
|
-
return _waitForTransaction.apply(this, arguments);
|
|
1125
|
+
if (args.wait) promise = args.wait(args.confirmations);else if (args.hash) promise = provider.waitForTransaction(args.hash, args.confirmations, args.timeout);else throw new Error('hash or wait is required');
|
|
1126
|
+
const receipt = await promise;
|
|
1127
|
+
return receipt;
|
|
1621
1128
|
}
|
|
1622
1129
|
|
|
1623
|
-
export { Client, InjectedConnector, Client as WagmiClient, connect, createClient, createStorage, createClient as createWagmiClient, createStorage as createWagmiStorage, disconnect,
|
|
1130
|
+
export { Client, InjectedConnector, Client as WagmiClient, connect, createClient, createStorage, createClient as createWagmiClient, createStorage as createWagmiStorage, disconnect, erc20ABI, erc721ABI, fetchBalance, fetchBlockNumber, fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, fetchFeeData, fetchSigner, fetchToken, getAccount, getContract, getNetwork, getProvider, getWebSocketProvider, noopStorage, readContract, sendTransaction, signMessage, signTypedData, switchNetwork, units, waitForTransaction, watchAccount, watchBalance, watchBlockNumber, watchContractEvent, watchEnsAddress, watchEnsAvatar, watchEnsName, watchEnsResolver, watchFeeData, watchNetwork, watchReadContract, watchSigner, watchToken, writeContract };
|