@wagmi/core 0.4.9 → 0.5.0-prepare-hooks.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/README.md +4 -4
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +26 -24
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +26 -24
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +3 -1
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.d.ts +1 -0
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.dev.js +200 -0
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.js +7 -0
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.prod.js +200 -0
- package/connectors/injected/dist/wagmi-core-connectors-injected.esm.js +196 -0
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +21 -22
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +21 -22
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +4 -5
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +30 -28
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +30 -28
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +3 -1
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +22 -23
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +22 -23
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +3 -4
- package/connectors/walletLink/dist/wagmi-core-connectors-walletLink.cjs.d.ts +11 -0
- package/connectors/walletLink/dist/wagmi-core-connectors-walletLink.cjs.js +16 -0
- package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +3 -3
- package/dist/declarations/src/actions/contracts/index.d.ts +2 -1
- package/dist/declarations/src/actions/contracts/prepareWriteContract.d.ts +37 -0
- package/dist/declarations/src/actions/contracts/writeContract.d.ts +44 -8
- package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +2 -1
- package/dist/declarations/src/actions/index.d.ts +2 -2
- package/dist/declarations/src/actions/transactions/index.d.ts +2 -1
- package/dist/declarations/src/actions/transactions/prepareSendTransaction.d.ts +36 -0
- package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +43 -8
- package/dist/declarations/src/client.d.ts +2 -2
- package/dist/declarations/src/connectors/base.d.ts +1 -2
- package/dist/declarations/src/connectors/coinbaseWallet.d.ts +1 -1
- package/dist/declarations/src/connectors/injected.d.ts +1 -1
- package/dist/declarations/src/connectors/mock/connector.d.ts +1 -1
- package/dist/declarations/src/connectors/mock/provider.d.ts +3 -3
- package/dist/declarations/src/connectors/walletConnect.d.ts +2 -1
- package/dist/declarations/src/errors.d.ts +10 -3
- package/dist/declarations/src/index.d.ts +4 -4
- package/dist/declarations/src/providers/alchemy.d.ts +1 -2
- package/dist/declarations/src/providers/infura.d.ts +1 -2
- package/dist/declarations/src/providers/jsonRpc.d.ts +1 -2
- package/dist/declarations/src/providers/public.d.ts +2 -4
- package/dist/declarations/src/types/index.d.ts +3 -1
- package/dist/declarations/src/utils/configureChains.d.ts +3 -1
- package/dist/{client-fbdcbdb2.esm.js → getProvider-048a69c4.esm.js} +365 -2
- package/dist/{client-4983a639.cjs.dev.js → getProvider-27edfd38.cjs.prod.js} +432 -44
- package/dist/{client-dfad744f.cjs.prod.js → getProvider-ec251513.cjs.dev.js} +432 -44
- package/dist/wagmi-core.cjs.dev.js +439 -278
- package/dist/wagmi-core.cjs.prod.js +439 -278
- package/dist/wagmi-core.esm.js +353 -196
- package/package.json +2 -2
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +0 -2
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +0 -2
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +0 -2
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +0 -2
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +0 -2
- package/providers/infura/dist/wagmi-core-providers-infura.esm.js +0 -2
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +0 -2
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +0 -2
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +0 -2
- package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +0 -2
- package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +0 -2
- package/providers/public/dist/wagmi-core-providers-public.esm.js +0 -2
- package/dist/base-337e6424.cjs.prod.js +0 -343
- package/dist/base-bd337280.cjs.dev.js +0 -343
- package/dist/base-f1bbf263.esm.js +0 -316
|
@@ -1,14 +1,94 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var base = require('./base-337e6424.cjs.prod.js');
|
|
4
3
|
var create = require('zustand/vanilla');
|
|
5
4
|
var middleware = require('zustand/middleware');
|
|
6
5
|
var ethers = require('ethers');
|
|
7
6
|
var utils = require('ethers/lib/utils');
|
|
7
|
+
var EventEmitter = require('eventemitter3');
|
|
8
|
+
var chains = require('./chains-ba6218fb.cjs.dev.js');
|
|
8
9
|
|
|
9
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
10
11
|
|
|
11
12
|
var create__default = /*#__PURE__*/_interopDefault(create);
|
|
13
|
+
var EventEmitter__default = /*#__PURE__*/_interopDefault(EventEmitter);
|
|
14
|
+
|
|
15
|
+
function _checkPrivateRedeclaration(obj, privateCollection) {
|
|
16
|
+
if (privateCollection.has(obj)) {
|
|
17
|
+
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function _classPrivateMethodInitSpec(obj, privateSet) {
|
|
22
|
+
_checkPrivateRedeclaration(obj, privateSet);
|
|
23
|
+
privateSet.add(obj);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) {
|
|
27
|
+
_checkPrivateRedeclaration(obj, privateMap);
|
|
28
|
+
privateMap.set(obj, value);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function _defineProperty(obj, key, value) {
|
|
32
|
+
if (key in obj) {
|
|
33
|
+
Object.defineProperty(obj, key, {
|
|
34
|
+
value: value,
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: true,
|
|
37
|
+
writable: true
|
|
38
|
+
});
|
|
39
|
+
} else {
|
|
40
|
+
obj[key] = value;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return obj;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function _classApplyDescriptorGet(receiver, descriptor) {
|
|
47
|
+
if (descriptor.get) {
|
|
48
|
+
return descriptor.get.call(receiver);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return descriptor.value;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) {
|
|
55
|
+
if (!privateMap.has(receiver)) {
|
|
56
|
+
throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return privateMap.get(receiver);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function _classPrivateFieldGet(receiver, privateMap) {
|
|
63
|
+
var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get");
|
|
64
|
+
return _classApplyDescriptorGet(receiver, descriptor);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) {
|
|
68
|
+
if (!privateSet.has(receiver)) {
|
|
69
|
+
throw new TypeError("attempted to get private field on non-instance");
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return fn;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function _classApplyDescriptorSet(receiver, descriptor, value) {
|
|
76
|
+
if (descriptor.set) {
|
|
77
|
+
descriptor.set.call(receiver, value);
|
|
78
|
+
} else {
|
|
79
|
+
if (!descriptor.writable) {
|
|
80
|
+
throw new TypeError("attempted to set read only private field");
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
descriptor.value = value;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function _classPrivateFieldSet(receiver, privateMap, value) {
|
|
88
|
+
var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set");
|
|
89
|
+
_classApplyDescriptorSet(receiver, descriptor, value);
|
|
90
|
+
return value;
|
|
91
|
+
}
|
|
12
92
|
|
|
13
93
|
function getInjectedName(ethereum) {
|
|
14
94
|
var _ethereum$providers, _getName;
|
|
@@ -56,11 +136,284 @@ function getInjectedName(ethereum) {
|
|
|
56
136
|
return (_getName = getName(ethereum)) !== null && _getName !== void 0 ? _getName : 'Injected';
|
|
57
137
|
}
|
|
58
138
|
|
|
139
|
+
function normalizeChainId(chainId) {
|
|
140
|
+
if (typeof chainId === 'string') return Number.parseInt(chainId, chainId.trim().substring(0, 2) === '0x' ? 16 : 10);
|
|
141
|
+
if (typeof chainId === 'bigint') return Number(chainId);
|
|
142
|
+
return chainId;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors per EIP-1474.
|
|
147
|
+
* @see https://eips.ethereum.org/EIPS/eip-1474
|
|
148
|
+
*/
|
|
149
|
+
class RpcError extends Error {
|
|
150
|
+
constructor(
|
|
151
|
+
/** Number error code */
|
|
152
|
+
code,
|
|
153
|
+
/** Human-readable string */
|
|
154
|
+
message,
|
|
155
|
+
/** Low-level error */
|
|
156
|
+
internal,
|
|
157
|
+
/** Other useful information about error */
|
|
158
|
+
data) {
|
|
159
|
+
if (!Number.isInteger(code)) throw new Error('"code" must be an integer.');
|
|
160
|
+
if (!message || typeof message !== 'string') throw new Error('"message" must be a nonempty string.');
|
|
161
|
+
super(message);
|
|
162
|
+
|
|
163
|
+
_defineProperty(this, "code", void 0);
|
|
164
|
+
|
|
165
|
+
_defineProperty(this, "data", void 0);
|
|
166
|
+
|
|
167
|
+
_defineProperty(this, "internal", void 0);
|
|
168
|
+
|
|
169
|
+
this.code = code;
|
|
170
|
+
this.data = data;
|
|
171
|
+
this.internal = internal;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Error subclass implementing Ethereum Provider errors per EIP-1193.
|
|
177
|
+
* @see https://eips.ethereum.org/EIPS/eip-1193
|
|
178
|
+
*/
|
|
179
|
+
|
|
180
|
+
class ProviderRpcError extends RpcError {
|
|
181
|
+
/**
|
|
182
|
+
* Create an Ethereum Provider JSON-RPC error.
|
|
183
|
+
* `code` must be an integer in the 1000 <= 4999 range.
|
|
184
|
+
*/
|
|
185
|
+
constructor(
|
|
186
|
+
/**
|
|
187
|
+
* Number error code
|
|
188
|
+
* @see https://eips.ethereum.org/EIPS/eip-1193#error-standards
|
|
189
|
+
*/
|
|
190
|
+
code,
|
|
191
|
+
/** Human-readable string */
|
|
192
|
+
message,
|
|
193
|
+
/** Low-level error */
|
|
194
|
+
internal,
|
|
195
|
+
/** Other useful information about error */
|
|
196
|
+
data) {
|
|
197
|
+
if (!(Number.isInteger(code) && code >= 1000 && code <= 4999)) throw new Error('"code" must be an integer such that: 1000 <= code <= 4999');
|
|
198
|
+
super(code, message, internal, data);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
}
|
|
202
|
+
class AddChainError extends Error {
|
|
203
|
+
constructor() {
|
|
204
|
+
super(...arguments);
|
|
205
|
+
|
|
206
|
+
_defineProperty(this, "name", 'AddChainError');
|
|
207
|
+
|
|
208
|
+
_defineProperty(this, "message", 'Error adding chain');
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
}
|
|
212
|
+
class ChainDoesNotSupportMulticallError extends Error {
|
|
213
|
+
constructor(_ref) {
|
|
214
|
+
let {
|
|
215
|
+
blockNumber,
|
|
216
|
+
chain
|
|
217
|
+
} = _ref;
|
|
218
|
+
super("Chain \"".concat(chain.name, "\" does not support multicall").concat(blockNumber ? " on block ".concat(blockNumber) : '', "."));
|
|
219
|
+
|
|
220
|
+
_defineProperty(this, "name", 'ChainDoesNotSupportMulticall');
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
}
|
|
224
|
+
class ChainMismatchError extends Error {
|
|
225
|
+
constructor(_ref2) {
|
|
226
|
+
let {
|
|
227
|
+
activeChain,
|
|
228
|
+
targetChain
|
|
229
|
+
} = _ref2;
|
|
230
|
+
super("Chain mismatch: Expected \"".concat(targetChain, "\", received \"").concat(activeChain, "."));
|
|
231
|
+
|
|
232
|
+
_defineProperty(this, "name", 'ChainMismatchError');
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
}
|
|
236
|
+
class ChainNotConfiguredError extends Error {
|
|
237
|
+
constructor() {
|
|
238
|
+
super(...arguments);
|
|
239
|
+
|
|
240
|
+
_defineProperty(this, "name", 'ChainNotConfigured');
|
|
241
|
+
|
|
242
|
+
_defineProperty(this, "message", 'Chain not configured');
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
}
|
|
246
|
+
class ConnectorAlreadyConnectedError extends Error {
|
|
247
|
+
constructor() {
|
|
248
|
+
super(...arguments);
|
|
249
|
+
|
|
250
|
+
_defineProperty(this, "name", 'ConnectorAlreadyConnectedError');
|
|
251
|
+
|
|
252
|
+
_defineProperty(this, "message", 'Connector already connected');
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
}
|
|
256
|
+
class ConnectorNotFoundError extends Error {
|
|
257
|
+
constructor() {
|
|
258
|
+
super(...arguments);
|
|
259
|
+
|
|
260
|
+
_defineProperty(this, "name", 'ConnectorNotFoundError');
|
|
261
|
+
|
|
262
|
+
_defineProperty(this, "message", 'Connector not found');
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
}
|
|
266
|
+
class ContractMethodDoesNotExistError extends Error {
|
|
267
|
+
constructor(_ref3) {
|
|
268
|
+
var _chain$blockExplorers;
|
|
269
|
+
|
|
270
|
+
let {
|
|
271
|
+
addressOrName,
|
|
272
|
+
chainId,
|
|
273
|
+
functionName
|
|
274
|
+
} = _ref3;
|
|
275
|
+
const {
|
|
276
|
+
chains,
|
|
277
|
+
network
|
|
278
|
+
} = getProvider();
|
|
279
|
+
const chain = chains === null || chains === void 0 ? void 0 : chains.find(_ref4 => {
|
|
280
|
+
let {
|
|
281
|
+
id
|
|
282
|
+
} = _ref4;
|
|
283
|
+
return id === (chainId || network.chainId);
|
|
284
|
+
});
|
|
285
|
+
const blockExplorer = chain === null || chain === void 0 ? void 0 : (_chain$blockExplorers = chain.blockExplorers) === null || _chain$blockExplorers === void 0 ? void 0 : _chain$blockExplorers.default;
|
|
286
|
+
super(["Function \"".concat(functionName, "\" on contract \"").concat(addressOrName, "\" does not exist."), ...(blockExplorer ? ['', "".concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.name, ": ").concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.url, "/address/").concat(addressOrName, "#readContract")] : [])].join('\n'));
|
|
287
|
+
|
|
288
|
+
_defineProperty(this, "name", 'ContractMethodDoesNotExistError');
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
}
|
|
292
|
+
class ContractMethodNoResultError extends Error {
|
|
293
|
+
constructor(_ref5) {
|
|
294
|
+
var _chain$blockExplorers2;
|
|
295
|
+
|
|
296
|
+
let {
|
|
297
|
+
addressOrName,
|
|
298
|
+
chainId,
|
|
299
|
+
functionName
|
|
300
|
+
} = _ref5;
|
|
301
|
+
const {
|
|
302
|
+
chains,
|
|
303
|
+
network
|
|
304
|
+
} = getProvider();
|
|
305
|
+
const chain = chains === null || chains === void 0 ? void 0 : chains.find(_ref6 => {
|
|
306
|
+
let {
|
|
307
|
+
id
|
|
308
|
+
} = _ref6;
|
|
309
|
+
return id === (chainId || network.chainId);
|
|
310
|
+
});
|
|
311
|
+
const blockExplorer = chain === null || chain === void 0 ? void 0 : (_chain$blockExplorers2 = chain.blockExplorers) === null || _chain$blockExplorers2 === void 0 ? void 0 : _chain$blockExplorers2.default;
|
|
312
|
+
super(["Function \"".concat(functionName, "\" on contract \"").concat(addressOrName, "\" returned an empty response."), '', "Are you sure the function \"".concat(functionName, "\" exists on this contract?"), ...(blockExplorer ? ['', "".concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.name, ": ").concat(blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.url, "/address/").concat(addressOrName, "#readContract")] : [])].join('\n'));
|
|
313
|
+
|
|
314
|
+
_defineProperty(this, "name", 'ContractMethodNoResultError');
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
}
|
|
318
|
+
class ProviderChainsNotFound extends Error {
|
|
319
|
+
constructor() {
|
|
320
|
+
super(...arguments);
|
|
321
|
+
|
|
322
|
+
_defineProperty(this, "name", 'ProviderChainsNotFound');
|
|
323
|
+
|
|
324
|
+
_defineProperty(this, "message", ['No chains were found on the wagmi provider. Some functions that require a chain may not work.', '', 'It is recommended to add a list of chains to the provider in `createClient`.', '', 'Example:', '', '```', "import { getDefaultProvider } from 'ethers'", "import { chain, createClient } from 'wagmi'", '', 'createClient({', ' provider: Object.assign(getDefaultProvider(), { chains: [chain.mainnet] })', '})', '```'].join('\n'));
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
}
|
|
328
|
+
class ResourceUnavailableError extends RpcError {
|
|
329
|
+
constructor(error) {
|
|
330
|
+
super(-32002, 'Resource unavailable', error);
|
|
331
|
+
|
|
332
|
+
_defineProperty(this, "name", 'ResourceUnavailable');
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
}
|
|
336
|
+
class SwitchChainError extends ProviderRpcError {
|
|
337
|
+
constructor(error) {
|
|
338
|
+
super(4902, 'Error switching chain', error);
|
|
339
|
+
|
|
340
|
+
_defineProperty(this, "name", 'SwitchChainError');
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
}
|
|
344
|
+
class SwitchChainNotSupportedError extends Error {
|
|
345
|
+
constructor(_ref7) {
|
|
346
|
+
let {
|
|
347
|
+
connector
|
|
348
|
+
} = _ref7;
|
|
349
|
+
super("\"".concat(connector.name, "\" does not support programmatic chain switching."));
|
|
350
|
+
|
|
351
|
+
_defineProperty(this, "name", 'SwitchChainNotSupportedError');
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
}
|
|
355
|
+
class UserRejectedRequestError extends ProviderRpcError {
|
|
356
|
+
constructor(error) {
|
|
357
|
+
super(4001, 'User rejected request', error);
|
|
358
|
+
|
|
359
|
+
_defineProperty(this, "name", 'UserRejectedRequestError');
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
class Connector extends EventEmitter__default["default"] {
|
|
365
|
+
/** Unique connector id */
|
|
366
|
+
|
|
367
|
+
/** Connector name */
|
|
368
|
+
|
|
369
|
+
/** Chains connector supports */
|
|
370
|
+
|
|
371
|
+
/** Options to use with connector */
|
|
372
|
+
|
|
373
|
+
/** Whether connector is usable */
|
|
374
|
+
constructor(_ref) {
|
|
375
|
+
let {
|
|
376
|
+
chains: chains$1 = chains.defaultChains,
|
|
377
|
+
options
|
|
378
|
+
} = _ref;
|
|
379
|
+
super();
|
|
380
|
+
|
|
381
|
+
_defineProperty(this, "id", void 0);
|
|
382
|
+
|
|
383
|
+
_defineProperty(this, "name", void 0);
|
|
384
|
+
|
|
385
|
+
_defineProperty(this, "chains", void 0);
|
|
386
|
+
|
|
387
|
+
_defineProperty(this, "options", void 0);
|
|
388
|
+
|
|
389
|
+
_defineProperty(this, "ready", void 0);
|
|
390
|
+
|
|
391
|
+
this.chains = chains$1;
|
|
392
|
+
this.options = options;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
getBlockExplorerUrls(chain) {
|
|
396
|
+
var _chain$blockExplorers;
|
|
397
|
+
|
|
398
|
+
const {
|
|
399
|
+
default: blockExplorer,
|
|
400
|
+
...blockExplorers
|
|
401
|
+
} = (_chain$blockExplorers = chain.blockExplorers) !== null && _chain$blockExplorers !== void 0 ? _chain$blockExplorers : {};
|
|
402
|
+
if (blockExplorer) return [blockExplorer.url, ...Object.values(blockExplorers).map(x => x.url)];
|
|
403
|
+
return [];
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
isChainUnsupported(chainId) {
|
|
407
|
+
return !this.chains.some(x => x.id === chainId);
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
}
|
|
411
|
+
|
|
59
412
|
var _provider = /*#__PURE__*/new WeakMap();
|
|
60
413
|
|
|
61
414
|
var _switchingChains = /*#__PURE__*/new WeakMap();
|
|
62
415
|
|
|
63
|
-
class InjectedConnector extends
|
|
416
|
+
class InjectedConnector extends Connector {
|
|
64
417
|
constructor() {
|
|
65
418
|
let {
|
|
66
419
|
chains,
|
|
@@ -73,32 +426,32 @@ class InjectedConnector extends base.Connector {
|
|
|
73
426
|
options
|
|
74
427
|
});
|
|
75
428
|
|
|
76
|
-
|
|
429
|
+
_defineProperty(this, "id", void 0);
|
|
77
430
|
|
|
78
|
-
|
|
431
|
+
_defineProperty(this, "name", void 0);
|
|
79
432
|
|
|
80
|
-
|
|
433
|
+
_defineProperty(this, "ready", typeof window != 'undefined' && !!window.ethereum);
|
|
81
434
|
|
|
82
|
-
|
|
435
|
+
_classPrivateFieldInitSpec(this, _provider, {
|
|
83
436
|
writable: true,
|
|
84
437
|
value: void 0
|
|
85
438
|
});
|
|
86
439
|
|
|
87
|
-
|
|
440
|
+
_classPrivateFieldInitSpec(this, _switchingChains, {
|
|
88
441
|
writable: true,
|
|
89
442
|
value: void 0
|
|
90
443
|
});
|
|
91
444
|
|
|
92
|
-
|
|
445
|
+
_defineProperty(this, "shimDisconnectKey", 'injected.shimDisconnect');
|
|
93
446
|
|
|
94
|
-
|
|
447
|
+
_defineProperty(this, "onAccountsChanged", accounts => {
|
|
95
448
|
if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
|
|
96
449
|
account: utils.getAddress(accounts[0])
|
|
97
450
|
});
|
|
98
451
|
});
|
|
99
452
|
|
|
100
|
-
|
|
101
|
-
const id =
|
|
453
|
+
_defineProperty(this, "onChainChanged", chainId => {
|
|
454
|
+
const id = normalizeChainId(chainId);
|
|
102
455
|
const unsupported = this.isChainUnsupported(id);
|
|
103
456
|
this.emit('change', {
|
|
104
457
|
chain: {
|
|
@@ -108,14 +461,14 @@ class InjectedConnector extends base.Connector {
|
|
|
108
461
|
});
|
|
109
462
|
});
|
|
110
463
|
|
|
111
|
-
|
|
464
|
+
_defineProperty(this, "onDisconnect", () => {
|
|
112
465
|
var _this$options, _this$options2, _getClient$storage;
|
|
113
466
|
|
|
114
467
|
// We need this as MetaMask can emit the "disconnect" event
|
|
115
468
|
// upon switching chains. This workaround ensures that the
|
|
116
469
|
// user currently isn't in the process of switching chains.
|
|
117
|
-
if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimChainChangedDisconnect &&
|
|
118
|
-
|
|
470
|
+
if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimChainChangedDisconnect && _classPrivateFieldGet(this, _switchingChains)) {
|
|
471
|
+
_classPrivateFieldSet(this, _switchingChains, false);
|
|
119
472
|
|
|
120
473
|
return;
|
|
121
474
|
}
|
|
@@ -144,7 +497,7 @@ class InjectedConnector extends base.Connector {
|
|
|
144
497
|
var _this$options3, _getClient$storage2;
|
|
145
498
|
|
|
146
499
|
const provider = await this.getProvider();
|
|
147
|
-
if (!provider) throw new
|
|
500
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
148
501
|
|
|
149
502
|
if (provider.on) {
|
|
150
503
|
provider.on('accountsChanged', this.onAccountsChanged);
|
|
@@ -177,8 +530,8 @@ class InjectedConnector extends base.Connector {
|
|
|
177
530
|
provider
|
|
178
531
|
};
|
|
179
532
|
} catch (error) {
|
|
180
|
-
if (this.isUserRejectedRequestError(error)) throw new
|
|
181
|
-
if (error.code === -32002) throw new
|
|
533
|
+
if (this.isUserRejectedRequestError(error)) throw new UserRejectedRequestError(error);
|
|
534
|
+
if (error.code === -32002) throw new ResourceUnavailableError(error);
|
|
182
535
|
throw error;
|
|
183
536
|
}
|
|
184
537
|
}
|
|
@@ -197,7 +550,7 @@ class InjectedConnector extends base.Connector {
|
|
|
197
550
|
|
|
198
551
|
async getAccount() {
|
|
199
552
|
const provider = await this.getProvider();
|
|
200
|
-
if (!provider) throw new
|
|
553
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
201
554
|
const accounts = await provider.request({
|
|
202
555
|
method: 'eth_requestAccounts'
|
|
203
556
|
}); // return checksum address
|
|
@@ -207,15 +560,15 @@ class InjectedConnector extends base.Connector {
|
|
|
207
560
|
|
|
208
561
|
async getChainId() {
|
|
209
562
|
const provider = await this.getProvider();
|
|
210
|
-
if (!provider) throw new
|
|
563
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
211
564
|
return await provider.request({
|
|
212
565
|
method: 'eth_chainId'
|
|
213
|
-
}).then(
|
|
566
|
+
}).then(normalizeChainId);
|
|
214
567
|
}
|
|
215
568
|
|
|
216
569
|
async getProvider() {
|
|
217
|
-
if (typeof window !== 'undefined' && !!window.ethereum)
|
|
218
|
-
return
|
|
570
|
+
if (typeof window !== 'undefined' && !!window.ethereum) _classPrivateFieldSet(this, _provider, window.ethereum);
|
|
571
|
+
return _classPrivateFieldGet(this, _provider);
|
|
219
572
|
}
|
|
220
573
|
|
|
221
574
|
async getSigner() {
|
|
@@ -230,7 +583,7 @@ class InjectedConnector extends base.Connector {
|
|
|
230
583
|
if ((_this$options5 = this.options) !== null && _this$options5 !== void 0 && _this$options5.shimDisconnect && // If shim does not exist in storage, wallet is disconnected
|
|
231
584
|
!((_getClient$storage4 = getClient().storage) !== null && _getClient$storage4 !== void 0 && _getClient$storage4.getItem(this.shimDisconnectKey))) return false;
|
|
232
585
|
const provider = await this.getProvider();
|
|
233
|
-
if (!provider) throw new
|
|
586
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
234
587
|
const accounts = await provider.request({
|
|
235
588
|
method: 'eth_accounts'
|
|
236
589
|
});
|
|
@@ -244,9 +597,9 @@ class InjectedConnector extends base.Connector {
|
|
|
244
597
|
async switchChain(chainId) {
|
|
245
598
|
var _this$options6;
|
|
246
599
|
|
|
247
|
-
if ((_this$options6 = this.options) !== null && _this$options6 !== void 0 && _this$options6.shimChainChangedDisconnect)
|
|
600
|
+
if ((_this$options6 = this.options) !== null && _this$options6 !== void 0 && _this$options6.shimChainChangedDisconnect) _classPrivateFieldSet(this, _switchingChains, true);
|
|
248
601
|
const provider = await this.getProvider();
|
|
249
|
-
if (!provider) throw new
|
|
602
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
250
603
|
const id = utils.hexValue(chainId);
|
|
251
604
|
|
|
252
605
|
try {
|
|
@@ -270,7 +623,7 @@ class InjectedConnector extends base.Connector {
|
|
|
270
623
|
var _data, _data$originalError;
|
|
271
624
|
|
|
272
625
|
const chain = this.chains.find(x => x.id === chainId);
|
|
273
|
-
if (!chain) throw new
|
|
626
|
+
if (!chain) throw new ChainNotConfiguredError(); // Indicates chain is not added to provider
|
|
274
627
|
|
|
275
628
|
if (error.code === 4902 || // Unwrapping for MetaMask Mobile
|
|
276
629
|
// https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719
|
|
@@ -290,13 +643,13 @@ class InjectedConnector extends base.Connector {
|
|
|
290
643
|
});
|
|
291
644
|
return chain;
|
|
292
645
|
} catch (addError) {
|
|
293
|
-
if (this.isUserRejectedRequestError(addError)) throw new
|
|
294
|
-
throw new
|
|
646
|
+
if (this.isUserRejectedRequestError(addError)) throw new UserRejectedRequestError(error);
|
|
647
|
+
throw new AddChainError();
|
|
295
648
|
}
|
|
296
649
|
}
|
|
297
650
|
|
|
298
|
-
if (this.isUserRejectedRequestError(error)) throw new
|
|
299
|
-
throw new
|
|
651
|
+
if (this.isUserRejectedRequestError(error)) throw new UserRejectedRequestError(error);
|
|
652
|
+
throw new SwitchChainError(error);
|
|
300
653
|
}
|
|
301
654
|
}
|
|
302
655
|
|
|
@@ -308,7 +661,7 @@ class InjectedConnector extends base.Connector {
|
|
|
308
661
|
symbol
|
|
309
662
|
} = _ref;
|
|
310
663
|
const provider = await this.getProvider();
|
|
311
|
-
if (!provider) throw new
|
|
664
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
312
665
|
return await provider.request({
|
|
313
666
|
method: 'wallet_watchAsset',
|
|
314
667
|
params: {
|
|
@@ -386,20 +739,20 @@ class Client {
|
|
|
386
739
|
webSocketProvider: _webSocketProvider
|
|
387
740
|
} = _ref;
|
|
388
741
|
|
|
389
|
-
|
|
742
|
+
_classPrivateMethodInitSpec(this, _addEffects);
|
|
390
743
|
|
|
391
|
-
|
|
744
|
+
_defineProperty(this, "config", void 0);
|
|
392
745
|
|
|
393
|
-
|
|
746
|
+
_defineProperty(this, "storage", void 0);
|
|
394
747
|
|
|
395
|
-
|
|
748
|
+
_defineProperty(this, "store", void 0);
|
|
396
749
|
|
|
397
|
-
|
|
750
|
+
_classPrivateFieldInitSpec(this, _isAutoConnecting, {
|
|
398
751
|
writable: true,
|
|
399
752
|
value: void 0
|
|
400
753
|
});
|
|
401
754
|
|
|
402
|
-
|
|
755
|
+
_classPrivateFieldInitSpec(this, _lastUsedConnector, {
|
|
403
756
|
writable: true,
|
|
404
757
|
value: void 0
|
|
405
758
|
});
|
|
@@ -457,9 +810,9 @@ class Client {
|
|
|
457
810
|
};
|
|
458
811
|
this.storage = storage;
|
|
459
812
|
|
|
460
|
-
|
|
813
|
+
_classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
|
|
461
814
|
|
|
462
|
-
|
|
815
|
+
_classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
|
|
463
816
|
}
|
|
464
817
|
|
|
465
818
|
get chains() {
|
|
@@ -523,16 +876,16 @@ class Client {
|
|
|
523
876
|
|
|
524
877
|
if (this.connector) await ((_this$connector$disco = (_this$connector = this.connector).disconnect) === null || _this$connector$disco === void 0 ? void 0 : _this$connector$disco.call(_this$connector));
|
|
525
878
|
|
|
526
|
-
|
|
879
|
+
_classPrivateFieldSet(this, _isAutoConnecting, false);
|
|
527
880
|
|
|
528
881
|
this.clearState();
|
|
529
882
|
this.store.destroy();
|
|
530
883
|
}
|
|
531
884
|
|
|
532
885
|
async autoConnect() {
|
|
533
|
-
if (
|
|
886
|
+
if (_classPrivateFieldGet(this, _isAutoConnecting)) return;
|
|
534
887
|
|
|
535
|
-
|
|
888
|
+
_classPrivateFieldSet(this, _isAutoConnecting, true);
|
|
536
889
|
|
|
537
890
|
this.setState(x => {
|
|
538
891
|
var _x$data;
|
|
@@ -542,7 +895,7 @@ class Client {
|
|
|
542
895
|
};
|
|
543
896
|
}); // Try last used connector first
|
|
544
897
|
|
|
545
|
-
const sorted =
|
|
898
|
+
const sorted = _classPrivateFieldGet(this, _lastUsedConnector) ? [...this.connectors].sort(x => x.id === _classPrivateFieldGet(this, _lastUsedConnector) ? -1 : 1) : this.connectors;
|
|
546
899
|
let connected = false;
|
|
547
900
|
|
|
548
901
|
for (const connector of sorted) {
|
|
@@ -566,7 +919,7 @@ class Client {
|
|
|
566
919
|
status: 'disconnected'
|
|
567
920
|
}));
|
|
568
921
|
|
|
569
|
-
|
|
922
|
+
_classPrivateFieldSet(this, _isAutoConnecting, false);
|
|
570
923
|
|
|
571
924
|
return this.data;
|
|
572
925
|
}
|
|
@@ -654,9 +1007,44 @@ function getClient() {
|
|
|
654
1007
|
return client;
|
|
655
1008
|
}
|
|
656
1009
|
|
|
1010
|
+
function getProvider() {
|
|
1011
|
+
let {
|
|
1012
|
+
chainId
|
|
1013
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1014
|
+
const client = getClient();
|
|
1015
|
+
if (chainId && typeof client.config.provider === 'function') return client.config.provider({
|
|
1016
|
+
chainId
|
|
1017
|
+
});
|
|
1018
|
+
return client.provider;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
exports.AddChainError = AddChainError;
|
|
1022
|
+
exports.ChainDoesNotSupportMulticallError = ChainDoesNotSupportMulticallError;
|
|
1023
|
+
exports.ChainMismatchError = ChainMismatchError;
|
|
1024
|
+
exports.ChainNotConfiguredError = ChainNotConfiguredError;
|
|
657
1025
|
exports.Client = Client;
|
|
1026
|
+
exports.Connector = Connector;
|
|
1027
|
+
exports.ConnectorAlreadyConnectedError = ConnectorAlreadyConnectedError;
|
|
1028
|
+
exports.ConnectorNotFoundError = ConnectorNotFoundError;
|
|
1029
|
+
exports.ContractMethodDoesNotExistError = ContractMethodDoesNotExistError;
|
|
1030
|
+
exports.ContractMethodNoResultError = ContractMethodNoResultError;
|
|
658
1031
|
exports.InjectedConnector = InjectedConnector;
|
|
1032
|
+
exports.ProviderChainsNotFound = ProviderChainsNotFound;
|
|
1033
|
+
exports.ProviderRpcError = ProviderRpcError;
|
|
1034
|
+
exports.ResourceUnavailableError = ResourceUnavailableError;
|
|
1035
|
+
exports.RpcError = RpcError;
|
|
1036
|
+
exports.SwitchChainError = SwitchChainError;
|
|
1037
|
+
exports.SwitchChainNotSupportedError = SwitchChainNotSupportedError;
|
|
1038
|
+
exports.UserRejectedRequestError = UserRejectedRequestError;
|
|
1039
|
+
exports._classPrivateFieldGet = _classPrivateFieldGet;
|
|
1040
|
+
exports._classPrivateFieldInitSpec = _classPrivateFieldInitSpec;
|
|
1041
|
+
exports._classPrivateFieldSet = _classPrivateFieldSet;
|
|
1042
|
+
exports._classPrivateMethodGet = _classPrivateMethodGet;
|
|
1043
|
+
exports._classPrivateMethodInitSpec = _classPrivateMethodInitSpec;
|
|
1044
|
+
exports._defineProperty = _defineProperty;
|
|
659
1045
|
exports.createClient = createClient;
|
|
660
1046
|
exports.createStorage = createStorage;
|
|
661
1047
|
exports.getClient = getClient;
|
|
1048
|
+
exports.getProvider = getProvider;
|
|
662
1049
|
exports.noopStorage = noopStorage;
|
|
1050
|
+
exports.normalizeChainId = normalizeChainId;
|