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