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