@wagmi/core 0.5.8 → 0.6.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/chains/dist/wagmi-core-chains.cjs.dev.js +2 -2
- package/chains/dist/wagmi-core-chains.cjs.prod.js +2 -2
- package/chains/dist/wagmi-core-chains.esm.js +2 -2
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +11 -12
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +11 -12
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +11 -12
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +4 -3
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +4 -3
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +4 -3
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +9 -13
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +9 -13
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +9 -13
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +9 -11
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +9 -11
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +9 -11
- package/dist/{chains-8c76af1b.esm.js → chains-2970e5fa.esm.js} +17 -11
- package/dist/{chains-ec1de502.cjs.dev.js → chains-45d5aa86.cjs.prod.js} +17 -11
- package/dist/{chains-789e0c2e.cjs.prod.js → chains-524f4950.cjs.dev.js} +17 -11
- package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +4 -4
- package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +5 -1
- package/dist/declarations/src/actions/accounts/index.d.ts +1 -1
- package/dist/declarations/src/actions/accounts/signMessage.d.ts +3 -5
- package/dist/declarations/src/actions/accounts/signTypedData.d.ts +19 -20
- package/dist/declarations/src/actions/accounts/watchSigner.d.ts +5 -3
- package/dist/declarations/src/actions/contracts/fetchToken.d.ts +5 -5
- package/dist/declarations/src/actions/contracts/getContract.d.ts +111 -8
- package/dist/declarations/src/actions/contracts/index.d.ts +5 -4
- package/dist/declarations/src/actions/contracts/multicall.d.ts +11 -15
- package/dist/declarations/src/actions/contracts/prepareWriteContract.d.ts +26 -16
- package/dist/declarations/src/actions/contracts/readContract.d.ts +12 -14
- package/dist/declarations/src/actions/contracts/readContracts.d.ts +25 -16
- package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +22 -8
- package/dist/declarations/src/actions/contracts/watchMulticall.d.ts +10 -0
- package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +4 -3
- package/dist/declarations/src/actions/contracts/watchReadContracts.d.ts +7 -3
- package/dist/declarations/src/actions/contracts/writeContract.d.ts +43 -23
- package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +1 -1
- package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +2 -1
- package/dist/declarations/src/actions/index.d.ts +3 -3
- package/dist/declarations/src/actions/transactions/index.d.ts +0 -1
- package/dist/declarations/src/actions/transactions/prepareSendTransaction.d.ts +5 -4
- package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +3 -2
- package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +2 -1
- package/dist/declarations/src/connectors/base.d.ts +5 -4
- package/dist/declarations/src/connectors/coinbaseWallet.d.ts +5 -3
- package/dist/declarations/src/connectors/injected.d.ts +10 -9
- package/dist/declarations/src/connectors/metaMask.d.ts +1 -1
- package/dist/declarations/src/connectors/mock/connector.d.ts +1 -1
- package/dist/declarations/src/connectors/mock/provider.d.ts +1 -1
- package/dist/declarations/src/connectors/walletConnect.d.ts +2 -2
- package/dist/declarations/src/constants/abis.d.ts +421 -2
- package/dist/declarations/src/constants/blockExplorers.d.ts +1 -1
- package/dist/declarations/src/constants/index.d.ts +1 -2
- package/dist/declarations/src/errors.d.ts +8 -8
- package/dist/declarations/src/index.d.ts +4 -3
- package/dist/declarations/src/internal.d.ts +2 -0
- package/dist/declarations/src/types/contracts.d.ts +241 -0
- package/dist/declarations/src/types/index.d.ts +31 -9
- package/dist/declarations/src/types/utils.d.ts +103 -0
- package/dist/declarations/src/utils/assertActiveChain.d.ts +3 -0
- package/dist/declarations/src/utils/configureChains.d.ts +3 -5
- package/dist/declarations/src/utils/index.d.ts +2 -0
- package/dist/declarations/src/utils/minimizeContractInterface.d.ts +5 -5
- package/dist/declarations/src/utils/normalizeFunctionName.d.ts +17 -0
- package/dist/declarations/src/utils/parseContractResult.d.ts +4 -4
- package/dist/{getProvider-5b4b62c3.esm.js → getProvider-24ec6544.esm.js} +49 -50
- package/dist/{getProvider-1b3eeda8.cjs.dev.js → getProvider-ed469b94.cjs.prod.js} +48 -49
- package/dist/{getProvider-ad4ce6a4.cjs.prod.js → getProvider-f6f17fa1.cjs.dev.js} +48 -49
- package/dist/{rpcs-d2cd65f1.cjs.dev.js → rpcs-0d21dfe8.cjs.dev.js} +5 -5
- package/dist/{rpcs-8d636858.esm.js → rpcs-b4aa70b9.esm.js} +6 -6
- package/dist/{rpcs-edec227e.cjs.prod.js → rpcs-c62bf9b0.cjs.prod.js} +5 -5
- package/dist/wagmi-core.cjs.dev.js +847 -395
- package/dist/wagmi-core.cjs.prod.js +847 -395
- package/dist/wagmi-core.esm.js +849 -397
- package/package.json +3 -2
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +2 -2
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +2 -2
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +2 -2
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +2 -2
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +2 -2
- package/providers/infura/dist/wagmi-core-providers-infura.esm.js +2 -2
- package/dist/declarations/src/actions/contracts/deprecatedWriteContract.d.ts +0 -16
- package/dist/declarations/src/actions/transactions/deprecatedSendTransaction.d.ts +0 -12
- package/dist/declarations/src/constants/multicall.d.ts +0 -25
- package/providers/coinbaseNode/dist/wagmi-core-providers-coinbaseNode.cjs.d.ts +0 -11
- package/providers/coinbaseNode/dist/wagmi-core-providers-coinbaseNode.cjs.js +0 -16
|
@@ -3,7 +3,7 @@ import create from 'zustand/vanilla';
|
|
|
3
3
|
import { providers } from 'ethers';
|
|
4
4
|
import { getAddress, hexValue } from 'ethers/lib/utils';
|
|
5
5
|
import EventEmitter from 'eventemitter3';
|
|
6
|
-
import { d as defaultChains } from './chains-
|
|
6
|
+
import { d as defaultChains } from './chains-2970e5fa.esm.js';
|
|
7
7
|
|
|
8
8
|
function _checkPrivateRedeclaration(obj, privateCollection) {
|
|
9
9
|
if (privateCollection.has(obj)) {
|
|
@@ -156,7 +156,7 @@ class ChainDoesNotSupportMulticallError extends Error {
|
|
|
156
156
|
blockNumber,
|
|
157
157
|
chain
|
|
158
158
|
} = _ref;
|
|
159
|
-
super(
|
|
159
|
+
super(`Chain "${chain.name}" does not support multicall${blockNumber ? ` on block ${blockNumber}` : ''}.`);
|
|
160
160
|
|
|
161
161
|
_defineProperty(this, "name", 'ChainDoesNotSupportMulticall');
|
|
162
162
|
}
|
|
@@ -168,7 +168,7 @@ class ChainMismatchError extends Error {
|
|
|
168
168
|
activeChain,
|
|
169
169
|
targetChain
|
|
170
170
|
} = _ref2;
|
|
171
|
-
super(
|
|
171
|
+
super(`Chain mismatch: Expected "${targetChain}", received "${activeChain}".`);
|
|
172
172
|
|
|
173
173
|
_defineProperty(this, "name", 'ChainMismatchError');
|
|
174
174
|
}
|
|
@@ -209,7 +209,7 @@ class ContractMethodDoesNotExistError extends Error {
|
|
|
209
209
|
var _chain$blockExplorers;
|
|
210
210
|
|
|
211
211
|
let {
|
|
212
|
-
|
|
212
|
+
address,
|
|
213
213
|
chainId,
|
|
214
214
|
functionName
|
|
215
215
|
} = _ref3;
|
|
@@ -224,7 +224,7 @@ class ContractMethodDoesNotExistError extends Error {
|
|
|
224
224
|
return id === (chainId || network.chainId);
|
|
225
225
|
});
|
|
226
226
|
const blockExplorer = chain === null || chain === void 0 ? void 0 : (_chain$blockExplorers = chain.blockExplorers) === null || _chain$blockExplorers === void 0 ? void 0 : _chain$blockExplorers.default;
|
|
227
|
-
super([
|
|
227
|
+
super([`Function "${functionName}" on contract "${address}" does not exist.`, ...(blockExplorer ? ['', `${blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.name}: ${blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.url}/address/${address}#readContract`] : [])].join('\n'));
|
|
228
228
|
|
|
229
229
|
_defineProperty(this, "name", 'ContractMethodDoesNotExistError');
|
|
230
230
|
}
|
|
@@ -233,14 +233,14 @@ class ContractMethodDoesNotExistError extends Error {
|
|
|
233
233
|
class ContractMethodNoResultError extends Error {
|
|
234
234
|
constructor(_ref5) {
|
|
235
235
|
let {
|
|
236
|
-
|
|
236
|
+
address,
|
|
237
237
|
args,
|
|
238
238
|
chainId,
|
|
239
239
|
functionName
|
|
240
240
|
} = _ref5;
|
|
241
|
-
super(['Contract read returned an empty response. This could be due to any of the following:',
|
|
242
|
-
|
|
243
|
-
|
|
241
|
+
super(['Contract read returned an empty response. This could be due to any of the following:', `- The contract does not have the function "${functionName}",`, '- The parameters passed to the contract function may be invalid, or', '- The address is not a contract.', '', `Config:`, JSON.stringify({
|
|
242
|
+
address,
|
|
243
|
+
abi: '...',
|
|
244
244
|
functionName,
|
|
245
245
|
chainId,
|
|
246
246
|
args
|
|
@@ -253,19 +253,19 @@ class ContractMethodNoResultError extends Error {
|
|
|
253
253
|
class ContractMethodRevertedError extends Error {
|
|
254
254
|
constructor(_ref6) {
|
|
255
255
|
let {
|
|
256
|
-
|
|
256
|
+
address,
|
|
257
257
|
args,
|
|
258
258
|
chainId,
|
|
259
259
|
functionName,
|
|
260
260
|
errorMessage
|
|
261
261
|
} = _ref6;
|
|
262
|
-
super(['Contract method reverted with an error.', '',
|
|
263
|
-
|
|
264
|
-
|
|
262
|
+
super(['Contract method reverted with an error.', '', `Config:`, JSON.stringify({
|
|
263
|
+
address,
|
|
264
|
+
abi: '...',
|
|
265
265
|
functionName,
|
|
266
266
|
chainId,
|
|
267
267
|
args
|
|
268
|
-
}, null, 2), '',
|
|
268
|
+
}, null, 2), '', `Details: ${errorMessage}`].join('\n'));
|
|
269
269
|
|
|
270
270
|
_defineProperty(this, "name", 'ContractMethodRevertedError');
|
|
271
271
|
}
|
|
@@ -274,19 +274,19 @@ class ContractMethodRevertedError extends Error {
|
|
|
274
274
|
class ContractResultDecodeError extends Error {
|
|
275
275
|
constructor(_ref7) {
|
|
276
276
|
let {
|
|
277
|
-
|
|
277
|
+
address,
|
|
278
278
|
args,
|
|
279
279
|
chainId,
|
|
280
280
|
functionName,
|
|
281
281
|
errorMessage
|
|
282
282
|
} = _ref7;
|
|
283
|
-
super(['Failed to decode contract function result.', '',
|
|
284
|
-
|
|
285
|
-
|
|
283
|
+
super(['Failed to decode contract function result.', '', `Config:`, JSON.stringify({
|
|
284
|
+
address,
|
|
285
|
+
abi: '...',
|
|
286
286
|
functionName,
|
|
287
287
|
chainId,
|
|
288
288
|
args
|
|
289
|
-
}, null, 2), '',
|
|
289
|
+
}, null, 2), '', `Details: ${errorMessage}`].join('\n'));
|
|
290
290
|
|
|
291
291
|
_defineProperty(this, "name", 'ContractResultDecodeError');
|
|
292
292
|
}
|
|
@@ -323,7 +323,7 @@ class SwitchChainNotSupportedError extends Error {
|
|
|
323
323
|
let {
|
|
324
324
|
connector
|
|
325
325
|
} = _ref8;
|
|
326
|
-
super("
|
|
326
|
+
super(`"${connector.name}" does not support programmatic chain switching.`);
|
|
327
327
|
|
|
328
328
|
_defineProperty(this, "name", 'SwitchChainNotSupportedError');
|
|
329
329
|
}
|
|
@@ -339,11 +339,12 @@ class UserRejectedRequestError extends ProviderRpcError {
|
|
|
339
339
|
}
|
|
340
340
|
|
|
341
341
|
function getInjectedName(ethereum) {
|
|
342
|
-
var _ethereum$providers
|
|
342
|
+
var _ethereum$providers;
|
|
343
343
|
|
|
344
344
|
if (!ethereum) return 'Injected';
|
|
345
345
|
|
|
346
346
|
const getName = provider => {
|
|
347
|
+
if (provider.isAvalanche) return 'Core Wallet';
|
|
347
348
|
if (provider.isBitKeep) return 'BitKeep';
|
|
348
349
|
if (provider.isBraveWallet) return 'Brave Wallet';
|
|
349
350
|
if (provider.isCoinbaseWallet) return 'Coinbase Wallet';
|
|
@@ -361,8 +362,6 @@ function getInjectedName(ethereum) {
|
|
|
361
362
|
|
|
362
363
|
|
|
363
364
|
if ((_ethereum$providers = ethereum.providers) !== null && _ethereum$providers !== void 0 && _ethereum$providers.length) {
|
|
364
|
-
var _names$;
|
|
365
|
-
|
|
366
365
|
// Deduplicate names using Set
|
|
367
366
|
// Coinbase Wallet puts multiple providers in `ethereum.providers`
|
|
368
367
|
const nameSet = new Set();
|
|
@@ -372,7 +371,7 @@ function getInjectedName(ethereum) {
|
|
|
372
371
|
let name = getName(provider);
|
|
373
372
|
|
|
374
373
|
if (!name) {
|
|
375
|
-
name =
|
|
374
|
+
name = `Unknown Wallet #${unknownCount}`;
|
|
376
375
|
unknownCount += 1;
|
|
377
376
|
}
|
|
378
377
|
|
|
@@ -381,10 +380,10 @@ function getInjectedName(ethereum) {
|
|
|
381
380
|
|
|
382
381
|
const names = [...nameSet];
|
|
383
382
|
if (names.length) return names;
|
|
384
|
-
return
|
|
383
|
+
return names[0] ?? 'Injected';
|
|
385
384
|
}
|
|
386
385
|
|
|
387
|
-
return
|
|
386
|
+
return getName(ethereum) ?? 'Injected';
|
|
388
387
|
}
|
|
389
388
|
|
|
390
389
|
function normalizeChainId(chainId) {
|
|
@@ -425,12 +424,10 @@ class Connector extends EventEmitter {
|
|
|
425
424
|
}
|
|
426
425
|
|
|
427
426
|
getBlockExplorerUrls(chain) {
|
|
428
|
-
var _chain$blockExplorers;
|
|
429
|
-
|
|
430
427
|
const {
|
|
431
428
|
default: blockExplorer,
|
|
432
429
|
...blockExplorers
|
|
433
|
-
} =
|
|
430
|
+
} = chain.blockExplorers ?? {};
|
|
434
431
|
if (blockExplorer) return [blockExplorer.url, ...Object.values(blockExplorers).map(x => x.url)];
|
|
435
432
|
return [];
|
|
436
433
|
}
|
|
@@ -449,10 +446,13 @@ class InjectedConnector extends Connector {
|
|
|
449
446
|
constructor() {
|
|
450
447
|
let {
|
|
451
448
|
chains,
|
|
452
|
-
options
|
|
453
|
-
shimDisconnect: true
|
|
454
|
-
}
|
|
449
|
+
options: options_
|
|
455
450
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
451
|
+
const options = {
|
|
452
|
+
shimDisconnect: true,
|
|
453
|
+
shimChainChangedDisconnect: true,
|
|
454
|
+
...options_
|
|
455
|
+
};
|
|
456
456
|
super({
|
|
457
457
|
chains,
|
|
458
458
|
options
|
|
@@ -604,8 +604,11 @@ class InjectedConnector extends Connector {
|
|
|
604
604
|
}
|
|
605
605
|
|
|
606
606
|
async getSigner() {
|
|
607
|
+
let {
|
|
608
|
+
chainId
|
|
609
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
607
610
|
const [provider, account] = await Promise.all([this.getProvider(), this.getAccount()]);
|
|
608
|
-
return new providers.Web3Provider(provider).getSigner(account);
|
|
611
|
+
return new providers.Web3Provider(provider, chainId).getSigner(account);
|
|
609
612
|
}
|
|
610
613
|
|
|
611
614
|
async isAuthorized() {
|
|
@@ -635,18 +638,16 @@ class InjectedConnector extends Connector {
|
|
|
635
638
|
const id = hexValue(chainId);
|
|
636
639
|
|
|
637
640
|
try {
|
|
638
|
-
var _this$chains$find;
|
|
639
|
-
|
|
640
641
|
await provider.request({
|
|
641
642
|
method: 'wallet_switchEthereumChain',
|
|
642
643
|
params: [{
|
|
643
644
|
chainId: id
|
|
644
645
|
}]
|
|
645
646
|
});
|
|
646
|
-
return
|
|
647
|
+
return this.chains.find(x => x.id === chainId) ?? {
|
|
647
648
|
id: chainId,
|
|
648
|
-
name:
|
|
649
|
-
network:
|
|
649
|
+
name: `Chain ${id}`,
|
|
650
|
+
network: `${id}`,
|
|
650
651
|
rpcUrls: {
|
|
651
652
|
default: ''
|
|
652
653
|
}
|
|
@@ -661,15 +662,13 @@ class InjectedConnector extends Connector {
|
|
|
661
662
|
// https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719
|
|
662
663
|
(error === null || error === void 0 ? void 0 : (_data = error.data) === null || _data === void 0 ? void 0 : (_data$originalError = _data.originalError) === null || _data$originalError === void 0 ? void 0 : _data$originalError.code) === 4902) {
|
|
663
664
|
try {
|
|
664
|
-
var _chain$rpcUrls$public;
|
|
665
|
-
|
|
666
665
|
await provider.request({
|
|
667
666
|
method: 'wallet_addEthereumChain',
|
|
668
667
|
params: [{
|
|
669
668
|
chainId: id,
|
|
670
669
|
chainName: chain.name,
|
|
671
670
|
nativeCurrency: chain.nativeCurrency,
|
|
672
|
-
rpcUrls: [
|
|
671
|
+
rpcUrls: [chain.rpcUrls.public ?? chain.rpcUrls.default],
|
|
673
672
|
blockExplorerUrls: this.getBlockExplorerUrls(chain)
|
|
674
673
|
}]
|
|
675
674
|
});
|
|
@@ -727,7 +726,7 @@ function createStorage(_ref) {
|
|
|
727
726
|
return { ...storage,
|
|
728
727
|
getItem: function (key) {
|
|
729
728
|
let defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
730
|
-
const value = storage.getItem(
|
|
729
|
+
const value = storage.getItem(`${prefix}.${key}`);
|
|
731
730
|
|
|
732
731
|
try {
|
|
733
732
|
return value ? JSON.parse(value) : defaultState;
|
|
@@ -738,16 +737,16 @@ function createStorage(_ref) {
|
|
|
738
737
|
},
|
|
739
738
|
setItem: (key, value) => {
|
|
740
739
|
if (value === null) {
|
|
741
|
-
storage.removeItem(
|
|
740
|
+
storage.removeItem(`${prefix}.${key}`);
|
|
742
741
|
} else {
|
|
743
742
|
try {
|
|
744
|
-
storage.setItem(
|
|
743
|
+
storage.setItem(`${prefix}.${key}`, JSON.stringify(value));
|
|
745
744
|
} catch (err) {
|
|
746
745
|
console.error(err);
|
|
747
746
|
}
|
|
748
747
|
}
|
|
749
748
|
},
|
|
750
|
-
removeItem: key => storage.removeItem(
|
|
749
|
+
removeItem: key => storage.removeItem(`${prefix}.${key}`)
|
|
751
750
|
};
|
|
752
751
|
}
|
|
753
752
|
|
|
@@ -971,7 +970,7 @@ class Client {
|
|
|
971
970
|
bust,
|
|
972
971
|
chainId
|
|
973
972
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
974
|
-
let provider_ = this.providers.get(chainId
|
|
973
|
+
let provider_ = this.providers.get(chainId ?? -1);
|
|
975
974
|
if (provider_ && !bust) return provider_;
|
|
976
975
|
const {
|
|
977
976
|
provider
|
|
@@ -979,7 +978,7 @@ class Client {
|
|
|
979
978
|
provider_ = typeof provider === 'function' ? provider({
|
|
980
979
|
chainId
|
|
981
980
|
}) : provider;
|
|
982
|
-
this.providers.set(chainId
|
|
981
|
+
this.providers.set(chainId ?? -1, provider_);
|
|
983
982
|
return provider_;
|
|
984
983
|
}
|
|
985
984
|
|
|
@@ -988,7 +987,7 @@ class Client {
|
|
|
988
987
|
bust,
|
|
989
988
|
chainId
|
|
990
989
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
991
|
-
let webSocketProvider_ = this.webSocketProviders.get(chainId
|
|
990
|
+
let webSocketProvider_ = this.webSocketProviders.get(chainId ?? -1);
|
|
992
991
|
if (webSocketProvider_ && !bust) return webSocketProvider_;
|
|
993
992
|
const {
|
|
994
993
|
webSocketProvider
|
|
@@ -996,7 +995,7 @@ class Client {
|
|
|
996
995
|
webSocketProvider_ = typeof webSocketProvider === 'function' ? webSocketProvider({
|
|
997
996
|
chainId
|
|
998
997
|
}) : webSocketProvider;
|
|
999
|
-
if (webSocketProvider_) this.webSocketProviders.set(chainId
|
|
998
|
+
if (webSocketProvider_) this.webSocketProviders.set(chainId ?? -1, webSocketProvider_);
|
|
1000
999
|
return webSocketProvider_;
|
|
1001
1000
|
}
|
|
1002
1001
|
|
|
@@ -1096,4 +1095,4 @@ function getProvider() {
|
|
|
1096
1095
|
return client.provider;
|
|
1097
1096
|
}
|
|
1098
1097
|
|
|
1099
|
-
export { AddChainError as A,
|
|
1098
|
+
export { AddChainError as A, ChainMismatchError as C, InjectedConnector as I, ProviderChainsNotFound as P, ResourceUnavailableError as R, SwitchChainNotSupportedError as S, UserRejectedRequestError as U, _classPrivateMethodInitSpec as _, ConnectorAlreadyConnectedError as a, ContractResultDecodeError as b, ConnectorNotFoundError as c, ContractMethodDoesNotExistError as d, getProvider as e, ChainDoesNotSupportMulticallError as f, getClient as g, ContractMethodRevertedError as h, ContractMethodNoResultError as i, createClient as j, Client as k, Connector as l, ChainNotConfiguredError as m, normalizeChainId as n, ProviderRpcError as o, RpcError as p, SwitchChainError as q, createStorage as r, noopStorage as s, _defineProperty as t, _classPrivateMethodGet as u, _classPrivateFieldInitSpec as v, _classPrivateFieldSet as w, _classPrivateFieldGet as x };
|
|
@@ -5,7 +5,7 @@ var create = require('zustand/vanilla');
|
|
|
5
5
|
var ethers = require('ethers');
|
|
6
6
|
var utils = require('ethers/lib/utils');
|
|
7
7
|
var EventEmitter = require('eventemitter3');
|
|
8
|
-
var chains = require('./chains-
|
|
8
|
+
var chains = require('./chains-45d5aa86.cjs.prod.js');
|
|
9
9
|
|
|
10
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
11
11
|
|
|
@@ -163,7 +163,7 @@ class ChainDoesNotSupportMulticallError extends Error {
|
|
|
163
163
|
blockNumber,
|
|
164
164
|
chain
|
|
165
165
|
} = _ref;
|
|
166
|
-
super(
|
|
166
|
+
super(`Chain "${chain.name}" does not support multicall${blockNumber ? ` on block ${blockNumber}` : ''}.`);
|
|
167
167
|
|
|
168
168
|
_defineProperty(this, "name", 'ChainDoesNotSupportMulticall');
|
|
169
169
|
}
|
|
@@ -175,7 +175,7 @@ class ChainMismatchError extends Error {
|
|
|
175
175
|
activeChain,
|
|
176
176
|
targetChain
|
|
177
177
|
} = _ref2;
|
|
178
|
-
super(
|
|
178
|
+
super(`Chain mismatch: Expected "${targetChain}", received "${activeChain}".`);
|
|
179
179
|
|
|
180
180
|
_defineProperty(this, "name", 'ChainMismatchError');
|
|
181
181
|
}
|
|
@@ -216,7 +216,7 @@ class ContractMethodDoesNotExistError extends Error {
|
|
|
216
216
|
var _chain$blockExplorers;
|
|
217
217
|
|
|
218
218
|
let {
|
|
219
|
-
|
|
219
|
+
address,
|
|
220
220
|
chainId,
|
|
221
221
|
functionName
|
|
222
222
|
} = _ref3;
|
|
@@ -231,7 +231,7 @@ class ContractMethodDoesNotExistError extends Error {
|
|
|
231
231
|
return id === (chainId || network.chainId);
|
|
232
232
|
});
|
|
233
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([
|
|
234
|
+
super([`Function "${functionName}" on contract "${address}" does not exist.`, ...(blockExplorer ? ['', `${blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.name}: ${blockExplorer === null || blockExplorer === void 0 ? void 0 : blockExplorer.url}/address/${address}#readContract`] : [])].join('\n'));
|
|
235
235
|
|
|
236
236
|
_defineProperty(this, "name", 'ContractMethodDoesNotExistError');
|
|
237
237
|
}
|
|
@@ -240,14 +240,14 @@ class ContractMethodDoesNotExistError extends Error {
|
|
|
240
240
|
class ContractMethodNoResultError extends Error {
|
|
241
241
|
constructor(_ref5) {
|
|
242
242
|
let {
|
|
243
|
-
|
|
243
|
+
address,
|
|
244
244
|
args,
|
|
245
245
|
chainId,
|
|
246
246
|
functionName
|
|
247
247
|
} = _ref5;
|
|
248
|
-
super(['Contract read returned an empty response. This could be due to any of the following:',
|
|
249
|
-
|
|
250
|
-
|
|
248
|
+
super(['Contract read returned an empty response. This could be due to any of the following:', `- The contract does not have the function "${functionName}",`, '- The parameters passed to the contract function may be invalid, or', '- The address is not a contract.', '', `Config:`, JSON.stringify({
|
|
249
|
+
address,
|
|
250
|
+
abi: '...',
|
|
251
251
|
functionName,
|
|
252
252
|
chainId,
|
|
253
253
|
args
|
|
@@ -260,19 +260,19 @@ class ContractMethodNoResultError extends Error {
|
|
|
260
260
|
class ContractMethodRevertedError extends Error {
|
|
261
261
|
constructor(_ref6) {
|
|
262
262
|
let {
|
|
263
|
-
|
|
263
|
+
address,
|
|
264
264
|
args,
|
|
265
265
|
chainId,
|
|
266
266
|
functionName,
|
|
267
267
|
errorMessage
|
|
268
268
|
} = _ref6;
|
|
269
|
-
super(['Contract method reverted with an error.', '',
|
|
270
|
-
|
|
271
|
-
|
|
269
|
+
super(['Contract method reverted with an error.', '', `Config:`, JSON.stringify({
|
|
270
|
+
address,
|
|
271
|
+
abi: '...',
|
|
272
272
|
functionName,
|
|
273
273
|
chainId,
|
|
274
274
|
args
|
|
275
|
-
}, null, 2), '',
|
|
275
|
+
}, null, 2), '', `Details: ${errorMessage}`].join('\n'));
|
|
276
276
|
|
|
277
277
|
_defineProperty(this, "name", 'ContractMethodRevertedError');
|
|
278
278
|
}
|
|
@@ -281,19 +281,19 @@ class ContractMethodRevertedError extends Error {
|
|
|
281
281
|
class ContractResultDecodeError extends Error {
|
|
282
282
|
constructor(_ref7) {
|
|
283
283
|
let {
|
|
284
|
-
|
|
284
|
+
address,
|
|
285
285
|
args,
|
|
286
286
|
chainId,
|
|
287
287
|
functionName,
|
|
288
288
|
errorMessage
|
|
289
289
|
} = _ref7;
|
|
290
|
-
super(['Failed to decode contract function result.', '',
|
|
291
|
-
|
|
292
|
-
|
|
290
|
+
super(['Failed to decode contract function result.', '', `Config:`, JSON.stringify({
|
|
291
|
+
address,
|
|
292
|
+
abi: '...',
|
|
293
293
|
functionName,
|
|
294
294
|
chainId,
|
|
295
295
|
args
|
|
296
|
-
}, null, 2), '',
|
|
296
|
+
}, null, 2), '', `Details: ${errorMessage}`].join('\n'));
|
|
297
297
|
|
|
298
298
|
_defineProperty(this, "name", 'ContractResultDecodeError');
|
|
299
299
|
}
|
|
@@ -330,7 +330,7 @@ class SwitchChainNotSupportedError extends Error {
|
|
|
330
330
|
let {
|
|
331
331
|
connector
|
|
332
332
|
} = _ref8;
|
|
333
|
-
super("
|
|
333
|
+
super(`"${connector.name}" does not support programmatic chain switching.`);
|
|
334
334
|
|
|
335
335
|
_defineProperty(this, "name", 'SwitchChainNotSupportedError');
|
|
336
336
|
}
|
|
@@ -346,11 +346,12 @@ class UserRejectedRequestError extends ProviderRpcError {
|
|
|
346
346
|
}
|
|
347
347
|
|
|
348
348
|
function getInjectedName(ethereum) {
|
|
349
|
-
var _ethereum$providers
|
|
349
|
+
var _ethereum$providers;
|
|
350
350
|
|
|
351
351
|
if (!ethereum) return 'Injected';
|
|
352
352
|
|
|
353
353
|
const getName = provider => {
|
|
354
|
+
if (provider.isAvalanche) return 'Core Wallet';
|
|
354
355
|
if (provider.isBitKeep) return 'BitKeep';
|
|
355
356
|
if (provider.isBraveWallet) return 'Brave Wallet';
|
|
356
357
|
if (provider.isCoinbaseWallet) return 'Coinbase Wallet';
|
|
@@ -368,8 +369,6 @@ function getInjectedName(ethereum) {
|
|
|
368
369
|
|
|
369
370
|
|
|
370
371
|
if ((_ethereum$providers = ethereum.providers) !== null && _ethereum$providers !== void 0 && _ethereum$providers.length) {
|
|
371
|
-
var _names$;
|
|
372
|
-
|
|
373
372
|
// Deduplicate names using Set
|
|
374
373
|
// Coinbase Wallet puts multiple providers in `ethereum.providers`
|
|
375
374
|
const nameSet = new Set();
|
|
@@ -379,7 +378,7 @@ function getInjectedName(ethereum) {
|
|
|
379
378
|
let name = getName(provider);
|
|
380
379
|
|
|
381
380
|
if (!name) {
|
|
382
|
-
name =
|
|
381
|
+
name = `Unknown Wallet #${unknownCount}`;
|
|
383
382
|
unknownCount += 1;
|
|
384
383
|
}
|
|
385
384
|
|
|
@@ -388,10 +387,10 @@ function getInjectedName(ethereum) {
|
|
|
388
387
|
|
|
389
388
|
const names = [...nameSet];
|
|
390
389
|
if (names.length) return names;
|
|
391
|
-
return
|
|
390
|
+
return names[0] ?? 'Injected';
|
|
392
391
|
}
|
|
393
392
|
|
|
394
|
-
return
|
|
393
|
+
return getName(ethereum) ?? 'Injected';
|
|
395
394
|
}
|
|
396
395
|
|
|
397
396
|
function normalizeChainId(chainId) {
|
|
@@ -432,12 +431,10 @@ class Connector extends EventEmitter__default["default"] {
|
|
|
432
431
|
}
|
|
433
432
|
|
|
434
433
|
getBlockExplorerUrls(chain) {
|
|
435
|
-
var _chain$blockExplorers;
|
|
436
|
-
|
|
437
434
|
const {
|
|
438
435
|
default: blockExplorer,
|
|
439
436
|
...blockExplorers
|
|
440
|
-
} =
|
|
437
|
+
} = chain.blockExplorers ?? {};
|
|
441
438
|
if (blockExplorer) return [blockExplorer.url, ...Object.values(blockExplorers).map(x => x.url)];
|
|
442
439
|
return [];
|
|
443
440
|
}
|
|
@@ -456,10 +453,13 @@ class InjectedConnector extends Connector {
|
|
|
456
453
|
constructor() {
|
|
457
454
|
let {
|
|
458
455
|
chains,
|
|
459
|
-
options
|
|
460
|
-
shimDisconnect: true
|
|
461
|
-
}
|
|
456
|
+
options: options_
|
|
462
457
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
458
|
+
const options = {
|
|
459
|
+
shimDisconnect: true,
|
|
460
|
+
shimChainChangedDisconnect: true,
|
|
461
|
+
...options_
|
|
462
|
+
};
|
|
463
463
|
super({
|
|
464
464
|
chains,
|
|
465
465
|
options
|
|
@@ -611,8 +611,11 @@ class InjectedConnector extends Connector {
|
|
|
611
611
|
}
|
|
612
612
|
|
|
613
613
|
async getSigner() {
|
|
614
|
+
let {
|
|
615
|
+
chainId
|
|
616
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
614
617
|
const [provider, account] = await Promise.all([this.getProvider(), this.getAccount()]);
|
|
615
|
-
return new ethers.providers.Web3Provider(provider).getSigner(account);
|
|
618
|
+
return new ethers.providers.Web3Provider(provider, chainId).getSigner(account);
|
|
616
619
|
}
|
|
617
620
|
|
|
618
621
|
async isAuthorized() {
|
|
@@ -642,18 +645,16 @@ class InjectedConnector extends Connector {
|
|
|
642
645
|
const id = utils.hexValue(chainId);
|
|
643
646
|
|
|
644
647
|
try {
|
|
645
|
-
var _this$chains$find;
|
|
646
|
-
|
|
647
648
|
await provider.request({
|
|
648
649
|
method: 'wallet_switchEthereumChain',
|
|
649
650
|
params: [{
|
|
650
651
|
chainId: id
|
|
651
652
|
}]
|
|
652
653
|
});
|
|
653
|
-
return
|
|
654
|
+
return this.chains.find(x => x.id === chainId) ?? {
|
|
654
655
|
id: chainId,
|
|
655
|
-
name:
|
|
656
|
-
network:
|
|
656
|
+
name: `Chain ${id}`,
|
|
657
|
+
network: `${id}`,
|
|
657
658
|
rpcUrls: {
|
|
658
659
|
default: ''
|
|
659
660
|
}
|
|
@@ -668,15 +669,13 @@ class InjectedConnector extends Connector {
|
|
|
668
669
|
// https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719
|
|
669
670
|
(error === null || error === void 0 ? void 0 : (_data = error.data) === null || _data === void 0 ? void 0 : (_data$originalError = _data.originalError) === null || _data$originalError === void 0 ? void 0 : _data$originalError.code) === 4902) {
|
|
670
671
|
try {
|
|
671
|
-
var _chain$rpcUrls$public;
|
|
672
|
-
|
|
673
672
|
await provider.request({
|
|
674
673
|
method: 'wallet_addEthereumChain',
|
|
675
674
|
params: [{
|
|
676
675
|
chainId: id,
|
|
677
676
|
chainName: chain.name,
|
|
678
677
|
nativeCurrency: chain.nativeCurrency,
|
|
679
|
-
rpcUrls: [
|
|
678
|
+
rpcUrls: [chain.rpcUrls.public ?? chain.rpcUrls.default],
|
|
680
679
|
blockExplorerUrls: this.getBlockExplorerUrls(chain)
|
|
681
680
|
}]
|
|
682
681
|
});
|
|
@@ -734,7 +733,7 @@ function createStorage(_ref) {
|
|
|
734
733
|
return { ...storage,
|
|
735
734
|
getItem: function (key) {
|
|
736
735
|
let defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
737
|
-
const value = storage.getItem(
|
|
736
|
+
const value = storage.getItem(`${prefix}.${key}`);
|
|
738
737
|
|
|
739
738
|
try {
|
|
740
739
|
return value ? JSON.parse(value) : defaultState;
|
|
@@ -745,16 +744,16 @@ function createStorage(_ref) {
|
|
|
745
744
|
},
|
|
746
745
|
setItem: (key, value) => {
|
|
747
746
|
if (value === null) {
|
|
748
|
-
storage.removeItem(
|
|
747
|
+
storage.removeItem(`${prefix}.${key}`);
|
|
749
748
|
} else {
|
|
750
749
|
try {
|
|
751
|
-
storage.setItem(
|
|
750
|
+
storage.setItem(`${prefix}.${key}`, JSON.stringify(value));
|
|
752
751
|
} catch (err) {
|
|
753
752
|
console.error(err);
|
|
754
753
|
}
|
|
755
754
|
}
|
|
756
755
|
},
|
|
757
|
-
removeItem: key => storage.removeItem(
|
|
756
|
+
removeItem: key => storage.removeItem(`${prefix}.${key}`)
|
|
758
757
|
};
|
|
759
758
|
}
|
|
760
759
|
|
|
@@ -978,7 +977,7 @@ class Client {
|
|
|
978
977
|
bust,
|
|
979
978
|
chainId
|
|
980
979
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
981
|
-
let provider_ = this.providers.get(chainId
|
|
980
|
+
let provider_ = this.providers.get(chainId ?? -1);
|
|
982
981
|
if (provider_ && !bust) return provider_;
|
|
983
982
|
const {
|
|
984
983
|
provider
|
|
@@ -986,7 +985,7 @@ class Client {
|
|
|
986
985
|
provider_ = typeof provider === 'function' ? provider({
|
|
987
986
|
chainId
|
|
988
987
|
}) : provider;
|
|
989
|
-
this.providers.set(chainId
|
|
988
|
+
this.providers.set(chainId ?? -1, provider_);
|
|
990
989
|
return provider_;
|
|
991
990
|
}
|
|
992
991
|
|
|
@@ -995,7 +994,7 @@ class Client {
|
|
|
995
994
|
bust,
|
|
996
995
|
chainId
|
|
997
996
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
998
|
-
let webSocketProvider_ = this.webSocketProviders.get(chainId
|
|
997
|
+
let webSocketProvider_ = this.webSocketProviders.get(chainId ?? -1);
|
|
999
998
|
if (webSocketProvider_ && !bust) return webSocketProvider_;
|
|
1000
999
|
const {
|
|
1001
1000
|
webSocketProvider
|
|
@@ -1003,7 +1002,7 @@ class Client {
|
|
|
1003
1002
|
webSocketProvider_ = typeof webSocketProvider === 'function' ? webSocketProvider({
|
|
1004
1003
|
chainId
|
|
1005
1004
|
}) : webSocketProvider;
|
|
1006
|
-
if (webSocketProvider_) this.webSocketProviders.set(chainId
|
|
1005
|
+
if (webSocketProvider_) this.webSocketProviders.set(chainId ?? -1, webSocketProvider_);
|
|
1007
1006
|
return webSocketProvider_;
|
|
1008
1007
|
}
|
|
1009
1008
|
|