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