@wagmi/core 0.4.9 → 0.5.1
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 +6 -6
- package/chains/dist/wagmi-core-chains.cjs.dev.js +4 -2
- package/chains/dist/wagmi-core-chains.cjs.prod.js +4 -2
- package/chains/dist/wagmi-core-chains.esm.js +2 -2
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +28 -26
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +28 -26
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +5 -3
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +22 -23
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +22 -23
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +5 -6
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +33 -31
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +33 -31
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +6 -4
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +24 -25
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +24 -25
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +5 -6
- package/dist/{chains-b8e32454.cjs.prod.js → chains-acd25777.cjs.prod.js} +68 -9
- package/dist/{chains-174cf4b4.esm.js → chains-ce86f5e0.esm.js} +67 -10
- package/dist/{chains-ba6218fb.cjs.dev.js → chains-e81629e7.cjs.dev.js} +68 -9
- package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +0 -1
- package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +3 -3
- package/dist/declarations/src/actions/contracts/deprecatedWriteContract.d.ts +16 -0
- package/dist/declarations/src/actions/{tokens → contracts}/fetchToken.d.ts +0 -0
- package/dist/declarations/src/actions/contracts/index.d.ts +4 -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 -3
- package/dist/declarations/src/actions/transactions/deprecatedSendTransaction.d.ts +12 -0
- package/dist/declarations/src/actions/transactions/fetchTransaction.d.ts +21 -0
- package/dist/declarations/src/actions/transactions/index.d.ts +4 -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/chains.d.ts +1 -1
- 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 +2 -2
- package/dist/declarations/src/connectors/injected.d.ts +1 -1
- package/dist/declarations/src/connectors/mock/provider.d.ts +3 -2
- package/dist/declarations/src/connectors/walletConnect.d.ts +3 -2
- package/dist/declarations/src/constants/chains.d.ts +5 -0
- package/dist/declarations/src/constants/index.d.ts +1 -1
- package/dist/declarations/src/constants/rpcs.d.ts +5 -5
- 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 +2 -3
- package/dist/declarations/src/providers/infura.d.ts +2 -3
- 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 +6 -1
- package/dist/declarations/src/utils/configureChains.d.ts +3 -1
- package/dist/{client-fbdcbdb2.esm.js → getProvider-073f640f.esm.js} +369 -3
- package/dist/{client-4983a639.cjs.dev.js → getProvider-5c497ca0.cjs.dev.js} +436 -45
- package/dist/{client-dfad744f.cjs.prod.js → getProvider-868752e4.cjs.prod.js} +436 -45
- package/dist/{rpcs-1fd0a12f.cjs.prod.js → rpcs-3cf5a783.cjs.dev.js} +18 -12
- package/dist/{rpcs-f1d24f0e.cjs.dev.js → rpcs-afd1cc09.cjs.prod.js} +18 -12
- package/dist/{rpcs-b73a8f60.esm.js → rpcs-e837abf2.esm.js} +17 -11
- package/dist/wagmi-core.cjs.dev.js +586 -308
- package/dist/wagmi-core.cjs.prod.js +586 -308
- package/dist/wagmi-core.esm.js +493 -222
- package/package.json +9 -5
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +5 -7
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +5 -7
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +5 -7
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +5 -7
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +5 -7
- package/providers/infura/dist/wagmi-core-providers-infura.esm.js +5 -7
- 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
- package/dist/declarations/src/actions/tokens/index.d.ts +0 -1
|
@@ -1,14 +1,313 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var base = require('./base-bd337280.cjs.dev.js');
|
|
4
|
-
var create = require('zustand/vanilla');
|
|
5
3
|
var middleware = require('zustand/middleware');
|
|
4
|
+
var create = require('zustand/vanilla');
|
|
6
5
|
var ethers = require('ethers');
|
|
7
6
|
var utils = require('ethers/lib/utils');
|
|
7
|
+
var EventEmitter = require('eventemitter3');
|
|
8
|
+
var chains = require('./chains-e81629e7.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
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors per EIP-1474.
|
|
95
|
+
* @see https://eips.ethereum.org/EIPS/eip-1474
|
|
96
|
+
*/
|
|
97
|
+
class RpcError extends Error {
|
|
98
|
+
constructor(
|
|
99
|
+
/** Number error code */
|
|
100
|
+
code,
|
|
101
|
+
/** Human-readable string */
|
|
102
|
+
message,
|
|
103
|
+
/** Low-level error */
|
|
104
|
+
internal,
|
|
105
|
+
/** Other useful information about error */
|
|
106
|
+
data) {
|
|
107
|
+
if (!Number.isInteger(code)) throw new Error('"code" must be an integer.');
|
|
108
|
+
if (!message || typeof message !== 'string') throw new Error('"message" must be a nonempty string.');
|
|
109
|
+
super(message);
|
|
110
|
+
|
|
111
|
+
_defineProperty(this, "code", void 0);
|
|
112
|
+
|
|
113
|
+
_defineProperty(this, "data", void 0);
|
|
114
|
+
|
|
115
|
+
_defineProperty(this, "internal", void 0);
|
|
116
|
+
|
|
117
|
+
this.code = code;
|
|
118
|
+
this.data = data;
|
|
119
|
+
this.internal = internal;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Error subclass implementing Ethereum Provider errors per EIP-1193.
|
|
125
|
+
* @see https://eips.ethereum.org/EIPS/eip-1193
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
class ProviderRpcError extends RpcError {
|
|
129
|
+
/**
|
|
130
|
+
* Create an Ethereum Provider JSON-RPC error.
|
|
131
|
+
* `code` must be an integer in the 1000 <= 4999 range.
|
|
132
|
+
*/
|
|
133
|
+
constructor(
|
|
134
|
+
/**
|
|
135
|
+
* Number error code
|
|
136
|
+
* @see https://eips.ethereum.org/EIPS/eip-1193#error-standards
|
|
137
|
+
*/
|
|
138
|
+
code,
|
|
139
|
+
/** Human-readable string */
|
|
140
|
+
message,
|
|
141
|
+
/** Low-level error */
|
|
142
|
+
internal,
|
|
143
|
+
/** Other useful information about error */
|
|
144
|
+
data) {
|
|
145
|
+
if (!(Number.isInteger(code) && code >= 1000 && code <= 4999)) throw new Error('"code" must be an integer such that: 1000 <= code <= 4999');
|
|
146
|
+
super(code, message, internal, data);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
}
|
|
150
|
+
class AddChainError extends Error {
|
|
151
|
+
constructor() {
|
|
152
|
+
super(...arguments);
|
|
153
|
+
|
|
154
|
+
_defineProperty(this, "name", 'AddChainError');
|
|
155
|
+
|
|
156
|
+
_defineProperty(this, "message", 'Error adding chain');
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
}
|
|
160
|
+
class ChainDoesNotSupportMulticallError extends Error {
|
|
161
|
+
constructor(_ref) {
|
|
162
|
+
let {
|
|
163
|
+
blockNumber,
|
|
164
|
+
chain
|
|
165
|
+
} = _ref;
|
|
166
|
+
super("Chain \"".concat(chain.name, "\" does not support multicall").concat(blockNumber ? " on block ".concat(blockNumber) : '', "."));
|
|
167
|
+
|
|
168
|
+
_defineProperty(this, "name", 'ChainDoesNotSupportMulticall');
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
}
|
|
172
|
+
class ChainMismatchError extends Error {
|
|
173
|
+
constructor(_ref2) {
|
|
174
|
+
let {
|
|
175
|
+
activeChain,
|
|
176
|
+
targetChain
|
|
177
|
+
} = _ref2;
|
|
178
|
+
super("Chain mismatch: Expected \"".concat(targetChain, "\", received \"").concat(activeChain, "\"."));
|
|
179
|
+
|
|
180
|
+
_defineProperty(this, "name", 'ChainMismatchError');
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
}
|
|
184
|
+
class ChainNotConfiguredError extends Error {
|
|
185
|
+
constructor() {
|
|
186
|
+
super(...arguments);
|
|
187
|
+
|
|
188
|
+
_defineProperty(this, "name", 'ChainNotConfigured');
|
|
189
|
+
|
|
190
|
+
_defineProperty(this, "message", 'Chain not configured');
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
}
|
|
194
|
+
class ConnectorAlreadyConnectedError extends Error {
|
|
195
|
+
constructor() {
|
|
196
|
+
super(...arguments);
|
|
197
|
+
|
|
198
|
+
_defineProperty(this, "name", 'ConnectorAlreadyConnectedError');
|
|
199
|
+
|
|
200
|
+
_defineProperty(this, "message", 'Connector already connected');
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
}
|
|
204
|
+
class ConnectorNotFoundError extends Error {
|
|
205
|
+
constructor() {
|
|
206
|
+
super(...arguments);
|
|
207
|
+
|
|
208
|
+
_defineProperty(this, "name", 'ConnectorNotFoundError');
|
|
209
|
+
|
|
210
|
+
_defineProperty(this, "message", 'Connector not found');
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
}
|
|
214
|
+
class ContractMethodDoesNotExistError extends Error {
|
|
215
|
+
constructor(_ref3) {
|
|
216
|
+
var _chain$blockExplorers;
|
|
217
|
+
|
|
218
|
+
let {
|
|
219
|
+
addressOrName,
|
|
220
|
+
chainId,
|
|
221
|
+
functionName
|
|
222
|
+
} = _ref3;
|
|
223
|
+
const {
|
|
224
|
+
chains,
|
|
225
|
+
network
|
|
226
|
+
} = getProvider();
|
|
227
|
+
const chain = chains === null || chains === void 0 ? void 0 : chains.find(_ref4 => {
|
|
228
|
+
let {
|
|
229
|
+
id
|
|
230
|
+
} = _ref4;
|
|
231
|
+
return id === (chainId || network.chainId);
|
|
232
|
+
});
|
|
233
|
+
const blockExplorer = chain === null || chain === void 0 ? void 0 : (_chain$blockExplorers = chain.blockExplorers) === null || _chain$blockExplorers === void 0 ? void 0 : _chain$blockExplorers.default;
|
|
234
|
+
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'));
|
|
235
|
+
|
|
236
|
+
_defineProperty(this, "name", 'ContractMethodDoesNotExistError');
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
}
|
|
240
|
+
class ContractMethodNoResultError extends Error {
|
|
241
|
+
constructor(_ref5) {
|
|
242
|
+
var _chain$blockExplorers2;
|
|
243
|
+
|
|
244
|
+
let {
|
|
245
|
+
addressOrName,
|
|
246
|
+
chainId,
|
|
247
|
+
functionName
|
|
248
|
+
} = _ref5;
|
|
249
|
+
const {
|
|
250
|
+
chains,
|
|
251
|
+
network
|
|
252
|
+
} = getProvider();
|
|
253
|
+
const chain = chains === null || chains === void 0 ? void 0 : chains.find(_ref6 => {
|
|
254
|
+
let {
|
|
255
|
+
id
|
|
256
|
+
} = _ref6;
|
|
257
|
+
return id === (chainId || network.chainId);
|
|
258
|
+
});
|
|
259
|
+
const blockExplorer = chain === null || chain === void 0 ? void 0 : (_chain$blockExplorers2 = chain.blockExplorers) === null || _chain$blockExplorers2 === void 0 ? void 0 : _chain$blockExplorers2.default;
|
|
260
|
+
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'));
|
|
261
|
+
|
|
262
|
+
_defineProperty(this, "name", 'ContractMethodNoResultError');
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
}
|
|
266
|
+
class ProviderChainsNotFound extends Error {
|
|
267
|
+
constructor() {
|
|
268
|
+
super(...arguments);
|
|
269
|
+
|
|
270
|
+
_defineProperty(this, "name", 'ProviderChainsNotFound');
|
|
271
|
+
|
|
272
|
+
_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'));
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
}
|
|
276
|
+
class ResourceUnavailableError extends RpcError {
|
|
277
|
+
constructor(error) {
|
|
278
|
+
super(-32002, 'Resource unavailable', error);
|
|
279
|
+
|
|
280
|
+
_defineProperty(this, "name", 'ResourceUnavailable');
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
}
|
|
284
|
+
class SwitchChainError extends ProviderRpcError {
|
|
285
|
+
constructor(error) {
|
|
286
|
+
super(4902, 'Error switching chain', error);
|
|
287
|
+
|
|
288
|
+
_defineProperty(this, "name", 'SwitchChainError');
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
}
|
|
292
|
+
class SwitchChainNotSupportedError extends Error {
|
|
293
|
+
constructor(_ref7) {
|
|
294
|
+
let {
|
|
295
|
+
connector
|
|
296
|
+
} = _ref7;
|
|
297
|
+
super("\"".concat(connector.name, "\" does not support programmatic chain switching."));
|
|
298
|
+
|
|
299
|
+
_defineProperty(this, "name", 'SwitchChainNotSupportedError');
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
}
|
|
303
|
+
class UserRejectedRequestError extends ProviderRpcError {
|
|
304
|
+
constructor(error) {
|
|
305
|
+
super(4001, 'User rejected request', error);
|
|
306
|
+
|
|
307
|
+
_defineProperty(this, "name", 'UserRejectedRequestError');
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
}
|
|
12
311
|
|
|
13
312
|
function getInjectedName(ethereum) {
|
|
14
313
|
var _ethereum$providers, _getName;
|
|
@@ -25,6 +324,7 @@ function getInjectedName(ethereum) {
|
|
|
25
324
|
if (provider.isTokenPocket) return 'TokenPocket';
|
|
26
325
|
if (provider.isTokenary) return 'Tokenary';
|
|
27
326
|
if (provider.isTrust) return 'Trust Wallet';
|
|
327
|
+
if (provider.isOneInchIOSWallet || provider.isOneInchAndroidWallet) return '1inch Wallet';
|
|
28
328
|
if (provider.isMetaMask) return 'MetaMask';
|
|
29
329
|
}; // Some injected providers detect multiple other providers and create a list at `ethers.providers`
|
|
30
330
|
|
|
@@ -56,11 +356,65 @@ function getInjectedName(ethereum) {
|
|
|
56
356
|
return (_getName = getName(ethereum)) !== null && _getName !== void 0 ? _getName : 'Injected';
|
|
57
357
|
}
|
|
58
358
|
|
|
359
|
+
function normalizeChainId(chainId) {
|
|
360
|
+
if (typeof chainId === 'string') return Number.parseInt(chainId, chainId.trim().substring(0, 2) === '0x' ? 16 : 10);
|
|
361
|
+
if (typeof chainId === 'bigint') return Number(chainId);
|
|
362
|
+
return chainId;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
class Connector extends EventEmitter__default["default"] {
|
|
366
|
+
/** Unique connector id */
|
|
367
|
+
|
|
368
|
+
/** Connector name */
|
|
369
|
+
|
|
370
|
+
/** Chains connector supports */
|
|
371
|
+
|
|
372
|
+
/** Options to use with connector */
|
|
373
|
+
|
|
374
|
+
/** Whether connector is usable */
|
|
375
|
+
constructor(_ref) {
|
|
376
|
+
let {
|
|
377
|
+
chains: chains$1 = chains.defaultChains,
|
|
378
|
+
options
|
|
379
|
+
} = _ref;
|
|
380
|
+
super();
|
|
381
|
+
|
|
382
|
+
_defineProperty(this, "id", void 0);
|
|
383
|
+
|
|
384
|
+
_defineProperty(this, "name", void 0);
|
|
385
|
+
|
|
386
|
+
_defineProperty(this, "chains", void 0);
|
|
387
|
+
|
|
388
|
+
_defineProperty(this, "options", void 0);
|
|
389
|
+
|
|
390
|
+
_defineProperty(this, "ready", void 0);
|
|
391
|
+
|
|
392
|
+
this.chains = chains$1;
|
|
393
|
+
this.options = options;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
getBlockExplorerUrls(chain) {
|
|
397
|
+
var _chain$blockExplorers;
|
|
398
|
+
|
|
399
|
+
const {
|
|
400
|
+
default: blockExplorer,
|
|
401
|
+
...blockExplorers
|
|
402
|
+
} = (_chain$blockExplorers = chain.blockExplorers) !== null && _chain$blockExplorers !== void 0 ? _chain$blockExplorers : {};
|
|
403
|
+
if (blockExplorer) return [blockExplorer.url, ...Object.values(blockExplorers).map(x => x.url)];
|
|
404
|
+
return [];
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
isChainUnsupported(chainId) {
|
|
408
|
+
return !this.chains.some(x => x.id === chainId);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
}
|
|
412
|
+
|
|
59
413
|
var _provider = /*#__PURE__*/new WeakMap();
|
|
60
414
|
|
|
61
415
|
var _switchingChains = /*#__PURE__*/new WeakMap();
|
|
62
416
|
|
|
63
|
-
class InjectedConnector extends
|
|
417
|
+
class InjectedConnector extends Connector {
|
|
64
418
|
constructor() {
|
|
65
419
|
let {
|
|
66
420
|
chains,
|
|
@@ -73,32 +427,32 @@ class InjectedConnector extends base.Connector {
|
|
|
73
427
|
options
|
|
74
428
|
});
|
|
75
429
|
|
|
76
|
-
|
|
430
|
+
_defineProperty(this, "id", void 0);
|
|
77
431
|
|
|
78
|
-
|
|
432
|
+
_defineProperty(this, "name", void 0);
|
|
79
433
|
|
|
80
|
-
|
|
434
|
+
_defineProperty(this, "ready", typeof window != 'undefined' && !!window.ethereum);
|
|
81
435
|
|
|
82
|
-
|
|
436
|
+
_classPrivateFieldInitSpec(this, _provider, {
|
|
83
437
|
writable: true,
|
|
84
438
|
value: void 0
|
|
85
439
|
});
|
|
86
440
|
|
|
87
|
-
|
|
441
|
+
_classPrivateFieldInitSpec(this, _switchingChains, {
|
|
88
442
|
writable: true,
|
|
89
443
|
value: void 0
|
|
90
444
|
});
|
|
91
445
|
|
|
92
|
-
|
|
446
|
+
_defineProperty(this, "shimDisconnectKey", 'injected.shimDisconnect');
|
|
93
447
|
|
|
94
|
-
|
|
448
|
+
_defineProperty(this, "onAccountsChanged", accounts => {
|
|
95
449
|
if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
|
|
96
450
|
account: utils.getAddress(accounts[0])
|
|
97
451
|
});
|
|
98
452
|
});
|
|
99
453
|
|
|
100
|
-
|
|
101
|
-
const id =
|
|
454
|
+
_defineProperty(this, "onChainChanged", chainId => {
|
|
455
|
+
const id = normalizeChainId(chainId);
|
|
102
456
|
const unsupported = this.isChainUnsupported(id);
|
|
103
457
|
this.emit('change', {
|
|
104
458
|
chain: {
|
|
@@ -108,14 +462,14 @@ class InjectedConnector extends base.Connector {
|
|
|
108
462
|
});
|
|
109
463
|
});
|
|
110
464
|
|
|
111
|
-
|
|
465
|
+
_defineProperty(this, "onDisconnect", () => {
|
|
112
466
|
var _this$options, _this$options2, _getClient$storage;
|
|
113
467
|
|
|
114
468
|
// We need this as MetaMask can emit the "disconnect" event
|
|
115
469
|
// upon switching chains. This workaround ensures that the
|
|
116
470
|
// 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
|
-
|
|
471
|
+
if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimChainChangedDisconnect && _classPrivateFieldGet(this, _switchingChains)) {
|
|
472
|
+
_classPrivateFieldSet(this, _switchingChains, false);
|
|
119
473
|
|
|
120
474
|
return;
|
|
121
475
|
}
|
|
@@ -144,7 +498,7 @@ class InjectedConnector extends base.Connector {
|
|
|
144
498
|
var _this$options3, _getClient$storage2;
|
|
145
499
|
|
|
146
500
|
const provider = await this.getProvider();
|
|
147
|
-
if (!provider) throw new
|
|
501
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
148
502
|
|
|
149
503
|
if (provider.on) {
|
|
150
504
|
provider.on('accountsChanged', this.onAccountsChanged);
|
|
@@ -177,8 +531,8 @@ class InjectedConnector extends base.Connector {
|
|
|
177
531
|
provider
|
|
178
532
|
};
|
|
179
533
|
} catch (error) {
|
|
180
|
-
if (this.isUserRejectedRequestError(error)) throw new
|
|
181
|
-
if (error.code === -32002) throw new
|
|
534
|
+
if (this.isUserRejectedRequestError(error)) throw new UserRejectedRequestError(error);
|
|
535
|
+
if (error.code === -32002) throw new ResourceUnavailableError(error);
|
|
182
536
|
throw error;
|
|
183
537
|
}
|
|
184
538
|
}
|
|
@@ -197,7 +551,7 @@ class InjectedConnector extends base.Connector {
|
|
|
197
551
|
|
|
198
552
|
async getAccount() {
|
|
199
553
|
const provider = await this.getProvider();
|
|
200
|
-
if (!provider) throw new
|
|
554
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
201
555
|
const accounts = await provider.request({
|
|
202
556
|
method: 'eth_requestAccounts'
|
|
203
557
|
}); // return checksum address
|
|
@@ -207,15 +561,15 @@ class InjectedConnector extends base.Connector {
|
|
|
207
561
|
|
|
208
562
|
async getChainId() {
|
|
209
563
|
const provider = await this.getProvider();
|
|
210
|
-
if (!provider) throw new
|
|
564
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
211
565
|
return await provider.request({
|
|
212
566
|
method: 'eth_chainId'
|
|
213
|
-
}).then(
|
|
567
|
+
}).then(normalizeChainId);
|
|
214
568
|
}
|
|
215
569
|
|
|
216
570
|
async getProvider() {
|
|
217
|
-
if (typeof window !== 'undefined' && !!window.ethereum)
|
|
218
|
-
return
|
|
571
|
+
if (typeof window !== 'undefined' && !!window.ethereum) _classPrivateFieldSet(this, _provider, window.ethereum);
|
|
572
|
+
return _classPrivateFieldGet(this, _provider);
|
|
219
573
|
}
|
|
220
574
|
|
|
221
575
|
async getSigner() {
|
|
@@ -230,7 +584,7 @@ class InjectedConnector extends base.Connector {
|
|
|
230
584
|
if ((_this$options5 = this.options) !== null && _this$options5 !== void 0 && _this$options5.shimDisconnect && // If shim does not exist in storage, wallet is disconnected
|
|
231
585
|
!((_getClient$storage4 = getClient().storage) !== null && _getClient$storage4 !== void 0 && _getClient$storage4.getItem(this.shimDisconnectKey))) return false;
|
|
232
586
|
const provider = await this.getProvider();
|
|
233
|
-
if (!provider) throw new
|
|
587
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
234
588
|
const accounts = await provider.request({
|
|
235
589
|
method: 'eth_accounts'
|
|
236
590
|
});
|
|
@@ -244,9 +598,9 @@ class InjectedConnector extends base.Connector {
|
|
|
244
598
|
async switchChain(chainId) {
|
|
245
599
|
var _this$options6;
|
|
246
600
|
|
|
247
|
-
if ((_this$options6 = this.options) !== null && _this$options6 !== void 0 && _this$options6.shimChainChangedDisconnect)
|
|
601
|
+
if ((_this$options6 = this.options) !== null && _this$options6 !== void 0 && _this$options6.shimChainChangedDisconnect) _classPrivateFieldSet(this, _switchingChains, true);
|
|
248
602
|
const provider = await this.getProvider();
|
|
249
|
-
if (!provider) throw new
|
|
603
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
250
604
|
const id = utils.hexValue(chainId);
|
|
251
605
|
|
|
252
606
|
try {
|
|
@@ -270,7 +624,7 @@ class InjectedConnector extends base.Connector {
|
|
|
270
624
|
var _data, _data$originalError;
|
|
271
625
|
|
|
272
626
|
const chain = this.chains.find(x => x.id === chainId);
|
|
273
|
-
if (!chain) throw new
|
|
627
|
+
if (!chain) throw new ChainNotConfiguredError(); // Indicates chain is not added to provider
|
|
274
628
|
|
|
275
629
|
if (error.code === 4902 || // Unwrapping for MetaMask Mobile
|
|
276
630
|
// https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719
|
|
@@ -290,13 +644,13 @@ class InjectedConnector extends base.Connector {
|
|
|
290
644
|
});
|
|
291
645
|
return chain;
|
|
292
646
|
} catch (addError) {
|
|
293
|
-
if (this.isUserRejectedRequestError(addError)) throw new
|
|
294
|
-
throw new
|
|
647
|
+
if (this.isUserRejectedRequestError(addError)) throw new UserRejectedRequestError(error);
|
|
648
|
+
throw new AddChainError();
|
|
295
649
|
}
|
|
296
650
|
}
|
|
297
651
|
|
|
298
|
-
if (this.isUserRejectedRequestError(error)) throw new
|
|
299
|
-
throw new
|
|
652
|
+
if (this.isUserRejectedRequestError(error)) throw new UserRejectedRequestError(error);
|
|
653
|
+
throw new SwitchChainError(error);
|
|
300
654
|
}
|
|
301
655
|
}
|
|
302
656
|
|
|
@@ -308,7 +662,7 @@ class InjectedConnector extends base.Connector {
|
|
|
308
662
|
symbol
|
|
309
663
|
} = _ref;
|
|
310
664
|
const provider = await this.getProvider();
|
|
311
|
-
if (!provider) throw new
|
|
665
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
312
666
|
return await provider.request({
|
|
313
667
|
method: 'wallet_watchAsset',
|
|
314
668
|
params: {
|
|
@@ -386,20 +740,20 @@ class Client {
|
|
|
386
740
|
webSocketProvider: _webSocketProvider
|
|
387
741
|
} = _ref;
|
|
388
742
|
|
|
389
|
-
|
|
743
|
+
_classPrivateMethodInitSpec(this, _addEffects);
|
|
390
744
|
|
|
391
|
-
|
|
745
|
+
_defineProperty(this, "config", void 0);
|
|
392
746
|
|
|
393
|
-
|
|
747
|
+
_defineProperty(this, "storage", void 0);
|
|
394
748
|
|
|
395
|
-
|
|
749
|
+
_defineProperty(this, "store", void 0);
|
|
396
750
|
|
|
397
|
-
|
|
751
|
+
_classPrivateFieldInitSpec(this, _isAutoConnecting, {
|
|
398
752
|
writable: true,
|
|
399
753
|
value: void 0
|
|
400
754
|
});
|
|
401
755
|
|
|
402
|
-
|
|
756
|
+
_classPrivateFieldInitSpec(this, _lastUsedConnector, {
|
|
403
757
|
writable: true,
|
|
404
758
|
value: void 0
|
|
405
759
|
});
|
|
@@ -457,9 +811,11 @@ class Client {
|
|
|
457
811
|
};
|
|
458
812
|
this.storage = storage;
|
|
459
813
|
|
|
460
|
-
|
|
814
|
+
_classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
|
|
815
|
+
|
|
816
|
+
_classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
|
|
461
817
|
|
|
462
|
-
|
|
818
|
+
if (autoConnect && typeof window !== 'undefined') setTimeout(async () => await this.autoConnect(), 0);
|
|
463
819
|
}
|
|
464
820
|
|
|
465
821
|
get chains() {
|
|
@@ -523,16 +879,16 @@ class Client {
|
|
|
523
879
|
|
|
524
880
|
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
881
|
|
|
526
|
-
|
|
882
|
+
_classPrivateFieldSet(this, _isAutoConnecting, false);
|
|
527
883
|
|
|
528
884
|
this.clearState();
|
|
529
885
|
this.store.destroy();
|
|
530
886
|
}
|
|
531
887
|
|
|
532
888
|
async autoConnect() {
|
|
533
|
-
if (
|
|
889
|
+
if (_classPrivateFieldGet(this, _isAutoConnecting)) return;
|
|
534
890
|
|
|
535
|
-
|
|
891
|
+
_classPrivateFieldSet(this, _isAutoConnecting, true);
|
|
536
892
|
|
|
537
893
|
this.setState(x => {
|
|
538
894
|
var _x$data;
|
|
@@ -542,7 +898,7 @@ class Client {
|
|
|
542
898
|
};
|
|
543
899
|
}); // Try last used connector first
|
|
544
900
|
|
|
545
|
-
const sorted =
|
|
901
|
+
const sorted = _classPrivateFieldGet(this, _lastUsedConnector) ? [...this.connectors].sort(x => x.id === _classPrivateFieldGet(this, _lastUsedConnector) ? -1 : 1) : this.connectors;
|
|
546
902
|
let connected = false;
|
|
547
903
|
|
|
548
904
|
for (const connector of sorted) {
|
|
@@ -566,7 +922,7 @@ class Client {
|
|
|
566
922
|
status: 'disconnected'
|
|
567
923
|
}));
|
|
568
924
|
|
|
569
|
-
|
|
925
|
+
_classPrivateFieldSet(this, _isAutoConnecting, false);
|
|
570
926
|
|
|
571
927
|
return this.data;
|
|
572
928
|
}
|
|
@@ -654,9 +1010,44 @@ function getClient() {
|
|
|
654
1010
|
return client;
|
|
655
1011
|
}
|
|
656
1012
|
|
|
1013
|
+
function getProvider() {
|
|
1014
|
+
let {
|
|
1015
|
+
chainId
|
|
1016
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1017
|
+
const client = getClient();
|
|
1018
|
+
if (chainId && typeof client.config.provider === 'function') return client.config.provider({
|
|
1019
|
+
chainId
|
|
1020
|
+
});
|
|
1021
|
+
return client.provider;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
exports.AddChainError = AddChainError;
|
|
1025
|
+
exports.ChainDoesNotSupportMulticallError = ChainDoesNotSupportMulticallError;
|
|
1026
|
+
exports.ChainMismatchError = ChainMismatchError;
|
|
1027
|
+
exports.ChainNotConfiguredError = ChainNotConfiguredError;
|
|
657
1028
|
exports.Client = Client;
|
|
1029
|
+
exports.Connector = Connector;
|
|
1030
|
+
exports.ConnectorAlreadyConnectedError = ConnectorAlreadyConnectedError;
|
|
1031
|
+
exports.ConnectorNotFoundError = ConnectorNotFoundError;
|
|
1032
|
+
exports.ContractMethodDoesNotExistError = ContractMethodDoesNotExistError;
|
|
1033
|
+
exports.ContractMethodNoResultError = ContractMethodNoResultError;
|
|
658
1034
|
exports.InjectedConnector = InjectedConnector;
|
|
1035
|
+
exports.ProviderChainsNotFound = ProviderChainsNotFound;
|
|
1036
|
+
exports.ProviderRpcError = ProviderRpcError;
|
|
1037
|
+
exports.ResourceUnavailableError = ResourceUnavailableError;
|
|
1038
|
+
exports.RpcError = RpcError;
|
|
1039
|
+
exports.SwitchChainError = SwitchChainError;
|
|
1040
|
+
exports.SwitchChainNotSupportedError = SwitchChainNotSupportedError;
|
|
1041
|
+
exports.UserRejectedRequestError = UserRejectedRequestError;
|
|
1042
|
+
exports._classPrivateFieldGet = _classPrivateFieldGet;
|
|
1043
|
+
exports._classPrivateFieldInitSpec = _classPrivateFieldInitSpec;
|
|
1044
|
+
exports._classPrivateFieldSet = _classPrivateFieldSet;
|
|
1045
|
+
exports._classPrivateMethodGet = _classPrivateMethodGet;
|
|
1046
|
+
exports._classPrivateMethodInitSpec = _classPrivateMethodInitSpec;
|
|
1047
|
+
exports._defineProperty = _defineProperty;
|
|
659
1048
|
exports.createClient = createClient;
|
|
660
1049
|
exports.createStorage = createStorage;
|
|
661
1050
|
exports.getClient = getClient;
|
|
1051
|
+
exports.getProvider = getProvider;
|
|
662
1052
|
exports.noopStorage = noopStorage;
|
|
1053
|
+
exports.normalizeChainId = normalizeChainId;
|