@wagmi/core 0.6.12 → 0.7.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/chains/package.json +2 -2
- package/connectors/coinbaseWallet/package.json +2 -2
- package/connectors/metaMask/package.json +2 -2
- package/connectors/mock/package.json +2 -2
- package/connectors/walletConnect/package.json +2 -2
- package/dist/{declarations/src/connectors/base.d.ts → base-5bd9b5ed.d.ts} +8 -5
- package/dist/chains.d.ts +3 -0
- package/dist/chains.js +29 -0
- package/dist/chunk-2EDVJWOA.js +3496 -0
- package/dist/chunk-4DNFSL2K.js +376 -0
- package/dist/chunk-MQXBDTVK.js +29 -0
- package/dist/{declarations/src/connectors → connectors}/coinbaseWallet.d.ts +10 -6
- package/dist/connectors/coinbaseWallet.js +215 -0
- package/dist/{declarations/src/connectors → connectors}/metaMask.d.ts +11 -4
- package/dist/connectors/metaMask.js +115 -0
- package/dist/connectors/mock/index.d.ts +78 -0
- package/dist/connectors/mock/index.js +190 -0
- package/dist/{declarations/src/connectors → connectors}/walletConnect.d.ts +9 -5
- package/dist/connectors/walletConnect.js +160 -0
- package/dist/{declarations/src/types/contracts.d.ts → contracts-fb6a6ff0.d.ts} +122 -17
- package/dist/{declarations/src/types/index.d.ts → index-bacc1c49.d.ts} +83 -15
- package/dist/index.d.ts +1738 -0
- package/dist/index.js +165 -0
- package/dist/{declarations/src/connectors/injected.d.ts → injected-6980e5c3.d.ts} +9 -6
- package/dist/internal.d.ts +8 -0
- package/dist/internal.js +8 -0
- package/dist/providers/alchemy.d.ts +11 -0
- package/dist/providers/alchemy.js +32 -0
- package/dist/providers/infura.d.ts +11 -0
- package/dist/providers/infura.js +32 -0
- package/dist/providers/jsonRpc.d.ts +14 -0
- package/dist/providers/jsonRpc.js +44 -0
- package/dist/providers/public.d.ts +8 -0
- package/dist/providers/public.js +30 -0
- package/internal/package.json +2 -2
- package/package.json +40 -51
- package/providers/alchemy/package.json +2 -2
- package/providers/infura/package.json +2 -2
- package/providers/jsonRpc/package.json +2 -2
- package/providers/public/package.json +2 -2
- package/chains/dist/wagmi-core-chains.cjs.d.ts +0 -1
- package/chains/dist/wagmi-core-chains.cjs.dev.js +0 -26
- package/chains/dist/wagmi-core-chains.cjs.js +0 -7
- package/chains/dist/wagmi-core-chains.cjs.prod.js +0 -26
- package/chains/dist/wagmi-core-chains.esm.js +0 -2
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.d.ts +0 -1
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +0 -274
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.js +0 -7
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +0 -274
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +0 -252
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.d.ts +0 -1
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +0 -153
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.js +0 -7
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +0 -153
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +0 -149
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.d.ts +0 -1
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +0 -262
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.js +0 -7
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +0 -262
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +0 -253
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.d.ts +0 -1
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +0 -228
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.js +0 -7
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +0 -228
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +0 -206
- package/dist/chains-73cc6c23.cjs.prod.js +0 -526
- package/dist/chains-8fce19d8.esm.js +0 -502
- package/dist/chains-fe1f4131.cjs.dev.js +0 -526
- package/dist/debounce-0862bf88.esm.js +0 -18
- package/dist/debounce-2d836dc9.cjs.prod.js +0 -20
- package/dist/debounce-46ac0312.cjs.dev.js +0 -20
- package/dist/declarations/src/actions/accounts/connect.d.ts +0 -18
- package/dist/declarations/src/actions/accounts/disconnect.d.ts +0 -1
- package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +0 -19
- package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +0 -7
- package/dist/declarations/src/actions/accounts/getAccount.d.ts +0 -36
- package/dist/declarations/src/actions/accounts/getNetwork.d.ts +0 -8
- package/dist/declarations/src/actions/accounts/index.d.ts +0 -12
- package/dist/declarations/src/actions/accounts/signMessage.d.ts +0 -7
- package/dist/declarations/src/actions/accounts/signTypedData.d.ts +0 -23
- package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +0 -6
- package/dist/declarations/src/actions/accounts/watchAccount.d.ts +0 -12
- package/dist/declarations/src/actions/accounts/watchNetwork.d.ts +0 -10
- package/dist/declarations/src/actions/accounts/watchSigner.d.ts +0 -5
- package/dist/declarations/src/actions/contracts/fetchToken.d.ts +0 -21
- package/dist/declarations/src/actions/contracts/getContract.d.ts +0 -113
- package/dist/declarations/src/actions/contracts/index.d.ts +0 -11
- package/dist/declarations/src/actions/contracts/multicall.d.ts +0 -17
- package/dist/declarations/src/actions/contracts/prepareWriteContract.d.ts +0 -47
- package/dist/declarations/src/actions/contracts/readContract.d.ts +0 -15
- package/dist/declarations/src/actions/contracts/readContracts.d.ts +0 -28
- package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +0 -28
- package/dist/declarations/src/actions/contracts/watchMulticall.d.ts +0 -10
- package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +0 -7
- package/dist/declarations/src/actions/contracts/watchReadContracts.d.ts +0 -10
- package/dist/declarations/src/actions/contracts/writeContract.d.ts +0 -72
- package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +0 -9
- package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +0 -8
- package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +0 -9
- package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +0 -9
- package/dist/declarations/src/actions/ens/index.d.ts +0 -4
- package/dist/declarations/src/actions/index.d.ts +0 -6
- package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +0 -5
- package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +0 -16
- package/dist/declarations/src/actions/network-status/index.d.ts +0 -3
- package/dist/declarations/src/actions/network-status/watchBlockNumber.d.ts +0 -7
- package/dist/declarations/src/actions/providers/getProvider.d.ts +0 -7
- package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +0 -7
- package/dist/declarations/src/actions/providers/index.d.ts +0 -4
- package/dist/declarations/src/actions/providers/watchProvider.d.ts +0 -4
- package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +0 -4
- package/dist/declarations/src/actions/transactions/fetchTransaction.d.ts +0 -21
- package/dist/declarations/src/actions/transactions/index.d.ts +0 -4
- package/dist/declarations/src/actions/transactions/prepareSendTransaction.d.ts +0 -37
- package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +0 -48
- package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +0 -18
- package/dist/declarations/src/chains.d.ts +0 -1
- package/dist/declarations/src/client.d.ts +0 -91
- package/dist/declarations/src/connectors/index.d.ts +0 -2
- package/dist/declarations/src/connectors/mock/connector.d.ts +0 -34
- package/dist/declarations/src/connectors/mock/index.d.ts +0 -2
- package/dist/declarations/src/connectors/mock/provider.d.ts +0 -41
- package/dist/declarations/src/constants/abis.d.ts +0 -941
- package/dist/declarations/src/constants/blockExplorers.d.ts +0 -9
- package/dist/declarations/src/constants/chains.d.ts +0 -64
- package/dist/declarations/src/constants/index.d.ts +0 -7
- package/dist/declarations/src/constants/rpcs.d.ts +0 -11
- package/dist/declarations/src/constants/units.d.ts +0 -1
- package/dist/declarations/src/errors.d.ts +0 -134
- package/dist/declarations/src/index.d.ts +0 -14
- package/dist/declarations/src/internal.d.ts +0 -3
- package/dist/declarations/src/providers/alchemy.d.ts +0 -6
- package/dist/declarations/src/providers/infura.d.ts +0 -6
- package/dist/declarations/src/providers/jsonRpc.d.ts +0 -10
- package/dist/declarations/src/providers/public.d.ts +0 -4
- package/dist/declarations/src/storage.d.ts +0 -12
- package/dist/declarations/src/types/utils.d.ts +0 -103
- package/dist/declarations/src/utils/assertActiveChain.d.ts +0 -5
- package/dist/declarations/src/utils/configureChains.d.ts +0 -26
- package/dist/declarations/src/utils/debounce.d.ts +0 -1
- package/dist/declarations/src/utils/deepEqual.d.ts +0 -2
- package/dist/declarations/src/utils/getInjectedName.d.ts +0 -2
- package/dist/declarations/src/utils/index.d.ts +0 -11
- package/dist/declarations/src/utils/logger.d.ts +0 -1
- package/dist/declarations/src/utils/minimizeContractInterface.d.ts +0 -5
- package/dist/declarations/src/utils/normalizeChainId.d.ts +0 -1
- package/dist/declarations/src/utils/normalizeFunctionName.d.ts +0 -17
- package/dist/declarations/src/utils/parseContractResult.d.ts +0 -7
- package/dist/getProvider-3b1af4e6.cjs.dev.js +0 -1143
- package/dist/getProvider-84f303a1.cjs.prod.js +0 -1143
- package/dist/getProvider-97db849e.esm.js +0 -1105
- package/dist/rpcs-38f4faba.cjs.prod.js +0 -57
- package/dist/rpcs-52ea3d8d.cjs.dev.js +0 -57
- package/dist/rpcs-d533516e.esm.js +0 -51
- package/dist/wagmi-core.cjs.d.ts +0 -1
- package/dist/wagmi-core.cjs.dev.js +0 -2683
- package/dist/wagmi-core.cjs.js +0 -7
- package/dist/wagmi-core.cjs.prod.js +0 -2683
- package/dist/wagmi-core.esm.js +0 -2599
- package/internal/dist/wagmi-core-internal.cjs.d.ts +0 -1
- package/internal/dist/wagmi-core-internal.cjs.dev.js +0 -9
- package/internal/dist/wagmi-core-internal.cjs.js +0 -7
- package/internal/dist/wagmi-core-internal.cjs.prod.js +0 -9
- package/internal/dist/wagmi-core-internal.esm.js +0 -1
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.d.ts +0 -1
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +0 -36
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.js +0 -7
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +0 -36
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +0 -32
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.d.ts +0 -1
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +0 -36
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.js +0 -7
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +0 -36
- package/providers/infura/dist/wagmi-core-providers-infura.esm.js +0 -32
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.d.ts +0 -1
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +0 -46
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.js +0 -7
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +0 -46
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +0 -42
- package/providers/public/dist/wagmi-core-providers-public.cjs.d.ts +0 -1
- package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +0 -32
- package/providers/public/dist/wagmi-core-providers-public.cjs.js +0 -7
- package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +0 -32
- package/providers/public/dist/wagmi-core-providers-public.esm.js +0 -28
|
@@ -1,1105 +0,0 @@
|
|
|
1
|
-
import { subscribeWithSelector, persist } from 'zustand/middleware';
|
|
2
|
-
import create from 'zustand/vanilla';
|
|
3
|
-
import { providers } from 'ethers';
|
|
4
|
-
import { getAddress, hexValue } from 'ethers/lib/utils';
|
|
5
|
-
import EventEmitter from 'eventemitter3';
|
|
6
|
-
import { d as defaultChains } from './chains-8fce19d8.esm.js';
|
|
7
|
-
|
|
8
|
-
function _checkPrivateRedeclaration(obj, privateCollection) {
|
|
9
|
-
if (privateCollection.has(obj)) {
|
|
10
|
-
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function _classPrivateMethodInitSpec(obj, privateSet) {
|
|
15
|
-
_checkPrivateRedeclaration(obj, privateSet);
|
|
16
|
-
privateSet.add(obj);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function _classPrivateFieldInitSpec(obj, privateMap, value) {
|
|
20
|
-
_checkPrivateRedeclaration(obj, privateMap);
|
|
21
|
-
privateMap.set(obj, value);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function _defineProperty(obj, key, value) {
|
|
25
|
-
if (key in obj) {
|
|
26
|
-
Object.defineProperty(obj, key, {
|
|
27
|
-
value: value,
|
|
28
|
-
enumerable: true,
|
|
29
|
-
configurable: true,
|
|
30
|
-
writable: true
|
|
31
|
-
});
|
|
32
|
-
} else {
|
|
33
|
-
obj[key] = value;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return obj;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function _classApplyDescriptorGet(receiver, descriptor) {
|
|
40
|
-
if (descriptor.get) {
|
|
41
|
-
return descriptor.get.call(receiver);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return descriptor.value;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) {
|
|
48
|
-
if (!privateMap.has(receiver)) {
|
|
49
|
-
throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
return privateMap.get(receiver);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function _classPrivateFieldGet(receiver, privateMap) {
|
|
56
|
-
var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get");
|
|
57
|
-
return _classApplyDescriptorGet(receiver, descriptor);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) {
|
|
61
|
-
if (!privateSet.has(receiver)) {
|
|
62
|
-
throw new TypeError("attempted to get private field on non-instance");
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return fn;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
function _classApplyDescriptorSet(receiver, descriptor, value) {
|
|
69
|
-
if (descriptor.set) {
|
|
70
|
-
descriptor.set.call(receiver, value);
|
|
71
|
-
} else {
|
|
72
|
-
if (!descriptor.writable) {
|
|
73
|
-
throw new TypeError("attempted to set read only private field");
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
descriptor.value = value;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function _classPrivateFieldSet(receiver, privateMap, value) {
|
|
81
|
-
var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set");
|
|
82
|
-
_classApplyDescriptorSet(receiver, descriptor, value);
|
|
83
|
-
return value;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors per EIP-1474.
|
|
88
|
-
* @see https://eips.ethereum.org/EIPS/eip-1474
|
|
89
|
-
*/
|
|
90
|
-
class RpcError extends Error {
|
|
91
|
-
constructor(
|
|
92
|
-
/** Number error code */
|
|
93
|
-
code,
|
|
94
|
-
/** Human-readable string */
|
|
95
|
-
message,
|
|
96
|
-
/** Low-level error */
|
|
97
|
-
internal,
|
|
98
|
-
/** Other useful information about error */
|
|
99
|
-
data) {
|
|
100
|
-
if (!Number.isInteger(code)) throw new Error('"code" must be an integer.');
|
|
101
|
-
if (!message || typeof message !== 'string') throw new Error('"message" must be a nonempty string.');
|
|
102
|
-
super(message);
|
|
103
|
-
|
|
104
|
-
_defineProperty(this, "code", void 0);
|
|
105
|
-
|
|
106
|
-
_defineProperty(this, "data", void 0);
|
|
107
|
-
|
|
108
|
-
_defineProperty(this, "internal", void 0);
|
|
109
|
-
|
|
110
|
-
this.code = code;
|
|
111
|
-
this.data = data;
|
|
112
|
-
this.internal = internal;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Error subclass implementing Ethereum Provider errors per EIP-1193.
|
|
118
|
-
* @see https://eips.ethereum.org/EIPS/eip-1193
|
|
119
|
-
*/
|
|
120
|
-
|
|
121
|
-
class ProviderRpcError extends RpcError {
|
|
122
|
-
/**
|
|
123
|
-
* Create an Ethereum Provider JSON-RPC error.
|
|
124
|
-
* `code` must be an integer in the 1000 <= 4999 range.
|
|
125
|
-
*/
|
|
126
|
-
constructor(
|
|
127
|
-
/**
|
|
128
|
-
* Number error code
|
|
129
|
-
* @see https://eips.ethereum.org/EIPS/eip-1193#error-standards
|
|
130
|
-
*/
|
|
131
|
-
code,
|
|
132
|
-
/** Human-readable string */
|
|
133
|
-
message,
|
|
134
|
-
/** Low-level error */
|
|
135
|
-
internal,
|
|
136
|
-
/** Other useful information about error */
|
|
137
|
-
data) {
|
|
138
|
-
if (!(Number.isInteger(code) && code >= 1000 && code <= 4999)) throw new Error('"code" must be an integer such that: 1000 <= code <= 4999');
|
|
139
|
-
super(code, message, internal, data);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
class AddChainError extends Error {
|
|
144
|
-
constructor() {
|
|
145
|
-
super(...arguments);
|
|
146
|
-
|
|
147
|
-
_defineProperty(this, "name", 'AddChainError');
|
|
148
|
-
|
|
149
|
-
_defineProperty(this, "message", 'Error adding chain');
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
class ChainDoesNotSupportMulticallError extends Error {
|
|
154
|
-
constructor(_ref) {
|
|
155
|
-
let {
|
|
156
|
-
blockNumber,
|
|
157
|
-
chain
|
|
158
|
-
} = _ref;
|
|
159
|
-
super(`Chain "${chain.name}" does not support multicall${blockNumber ? ` on block ${blockNumber}` : ''}.`);
|
|
160
|
-
|
|
161
|
-
_defineProperty(this, "name", 'ChainDoesNotSupportMulticall');
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
class ChainMismatchError extends Error {
|
|
166
|
-
constructor(_ref2) {
|
|
167
|
-
let {
|
|
168
|
-
activeChain,
|
|
169
|
-
targetChain
|
|
170
|
-
} = _ref2;
|
|
171
|
-
super(`Chain mismatch: Expected "${targetChain}", received "${activeChain}".`);
|
|
172
|
-
|
|
173
|
-
_defineProperty(this, "name", 'ChainMismatchError');
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
class ChainNotConfiguredError extends Error {
|
|
178
|
-
constructor(_ref3) {
|
|
179
|
-
let {
|
|
180
|
-
chainId,
|
|
181
|
-
connectorId
|
|
182
|
-
} = _ref3;
|
|
183
|
-
super(`Chain "${chainId}" not configured for connector "${connectorId}".`);
|
|
184
|
-
|
|
185
|
-
_defineProperty(this, "name", 'ChainNotConfigured');
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
}
|
|
189
|
-
class ConnectorAlreadyConnectedError extends Error {
|
|
190
|
-
constructor() {
|
|
191
|
-
super(...arguments);
|
|
192
|
-
|
|
193
|
-
_defineProperty(this, "name", 'ConnectorAlreadyConnectedError');
|
|
194
|
-
|
|
195
|
-
_defineProperty(this, "message", 'Connector already connected');
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
}
|
|
199
|
-
class ConnectorNotFoundError extends Error {
|
|
200
|
-
constructor() {
|
|
201
|
-
super(...arguments);
|
|
202
|
-
|
|
203
|
-
_defineProperty(this, "name", 'ConnectorNotFoundError');
|
|
204
|
-
|
|
205
|
-
_defineProperty(this, "message", 'Connector not found');
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
}
|
|
209
|
-
class ContractMethodDoesNotExistError extends Error {
|
|
210
|
-
constructor(_ref4) {
|
|
211
|
-
var _chain$blockExplorers;
|
|
212
|
-
|
|
213
|
-
let {
|
|
214
|
-
address,
|
|
215
|
-
chainId,
|
|
216
|
-
functionName
|
|
217
|
-
} = _ref4;
|
|
218
|
-
const {
|
|
219
|
-
chains,
|
|
220
|
-
network
|
|
221
|
-
} = getProvider();
|
|
222
|
-
const chain = chains === null || chains === void 0 ? void 0 : chains.find(_ref5 => {
|
|
223
|
-
let {
|
|
224
|
-
id
|
|
225
|
-
} = _ref5;
|
|
226
|
-
return id === (chainId || network.chainId);
|
|
227
|
-
});
|
|
228
|
-
const blockExplorer = chain === null || chain === void 0 ? void 0 : (_chain$blockExplorers = chain.blockExplorers) === null || _chain$blockExplorers === void 0 ? void 0 : _chain$blockExplorers.default;
|
|
229
|
-
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'));
|
|
230
|
-
|
|
231
|
-
_defineProperty(this, "name", 'ContractMethodDoesNotExistError');
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
}
|
|
235
|
-
class ContractMethodNoResultError extends Error {
|
|
236
|
-
constructor(_ref6) {
|
|
237
|
-
let {
|
|
238
|
-
address,
|
|
239
|
-
args,
|
|
240
|
-
chainId,
|
|
241
|
-
functionName
|
|
242
|
-
} = _ref6;
|
|
243
|
-
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({
|
|
244
|
-
address,
|
|
245
|
-
abi: '...',
|
|
246
|
-
functionName,
|
|
247
|
-
chainId,
|
|
248
|
-
args
|
|
249
|
-
}, null, 2)].join('\n'));
|
|
250
|
-
|
|
251
|
-
_defineProperty(this, "name", 'ContractMethodNoResultError');
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
}
|
|
255
|
-
class ContractMethodRevertedError extends Error {
|
|
256
|
-
constructor(_ref7) {
|
|
257
|
-
let {
|
|
258
|
-
address,
|
|
259
|
-
args,
|
|
260
|
-
chainId,
|
|
261
|
-
functionName,
|
|
262
|
-
errorMessage
|
|
263
|
-
} = _ref7;
|
|
264
|
-
super(['Contract method reverted with an error.', '', `Config:`, JSON.stringify({
|
|
265
|
-
address,
|
|
266
|
-
abi: '...',
|
|
267
|
-
functionName,
|
|
268
|
-
chainId,
|
|
269
|
-
args
|
|
270
|
-
}, null, 2), '', `Details: ${errorMessage}`].join('\n'));
|
|
271
|
-
|
|
272
|
-
_defineProperty(this, "name", 'ContractMethodRevertedError');
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
}
|
|
276
|
-
class ContractResultDecodeError extends Error {
|
|
277
|
-
constructor(_ref8) {
|
|
278
|
-
let {
|
|
279
|
-
address,
|
|
280
|
-
args,
|
|
281
|
-
chainId,
|
|
282
|
-
functionName,
|
|
283
|
-
errorMessage
|
|
284
|
-
} = _ref8;
|
|
285
|
-
super(['Failed to decode contract function result.', '', `Config:`, JSON.stringify({
|
|
286
|
-
address,
|
|
287
|
-
abi: '...',
|
|
288
|
-
functionName,
|
|
289
|
-
chainId,
|
|
290
|
-
args
|
|
291
|
-
}, null, 2), '', `Details: ${errorMessage}`].join('\n'));
|
|
292
|
-
|
|
293
|
-
_defineProperty(this, "name", 'ContractResultDecodeError');
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
}
|
|
297
|
-
class ProviderChainsNotFound extends Error {
|
|
298
|
-
constructor() {
|
|
299
|
-
super(...arguments);
|
|
300
|
-
|
|
301
|
-
_defineProperty(this, "name", 'ProviderChainsNotFound');
|
|
302
|
-
|
|
303
|
-
_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'));
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
}
|
|
307
|
-
class ResourceUnavailableError extends RpcError {
|
|
308
|
-
constructor(error) {
|
|
309
|
-
super(-32002, 'Resource unavailable', error);
|
|
310
|
-
|
|
311
|
-
_defineProperty(this, "name", 'ResourceUnavailable');
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
}
|
|
315
|
-
class SwitchChainError extends ProviderRpcError {
|
|
316
|
-
constructor(error) {
|
|
317
|
-
super(4902, 'Error switching chain', error);
|
|
318
|
-
|
|
319
|
-
_defineProperty(this, "name", 'SwitchChainError');
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
}
|
|
323
|
-
class SwitchChainNotSupportedError extends Error {
|
|
324
|
-
constructor(_ref9) {
|
|
325
|
-
let {
|
|
326
|
-
connector
|
|
327
|
-
} = _ref9;
|
|
328
|
-
super(`"${connector.name}" does not support programmatic chain switching.`);
|
|
329
|
-
|
|
330
|
-
_defineProperty(this, "name", 'SwitchChainNotSupportedError');
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
}
|
|
334
|
-
class UserRejectedRequestError extends ProviderRpcError {
|
|
335
|
-
constructor(error) {
|
|
336
|
-
super(4001, 'User rejected request', error);
|
|
337
|
-
|
|
338
|
-
_defineProperty(this, "name", 'UserRejectedRequestError');
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
function getInjectedName(ethereum) {
|
|
344
|
-
var _ethereum$providers;
|
|
345
|
-
|
|
346
|
-
if (!ethereum) return 'Injected';
|
|
347
|
-
|
|
348
|
-
const getName = provider => {
|
|
349
|
-
if (provider.isAvalanche) return 'Core Wallet';
|
|
350
|
-
if (provider.isBitKeep) return 'BitKeep';
|
|
351
|
-
if (provider.isBraveWallet) return 'Brave Wallet';
|
|
352
|
-
if (provider.isCoinbaseWallet) return 'Coinbase Wallet';
|
|
353
|
-
if (provider.isExodus) return 'Exodus';
|
|
354
|
-
if (provider.isFrame) return 'Frame';
|
|
355
|
-
if (provider.isKuCoinWallet) return 'KuCoin Wallet';
|
|
356
|
-
if (provider.isMathWallet) return 'MathWallet';
|
|
357
|
-
if (provider.isOneInchIOSWallet || provider.isOneInchAndroidWallet) return '1inch Wallet';
|
|
358
|
-
if (provider.isOpera) return 'Opera';
|
|
359
|
-
if (provider.isPortal) return 'Ripio Portal';
|
|
360
|
-
if (provider.isTally) return 'Tally';
|
|
361
|
-
if (provider.isTokenPocket) return 'TokenPocket';
|
|
362
|
-
if (provider.isTokenary) return 'Tokenary';
|
|
363
|
-
if (provider.isTrust || provider.isTrustWallet) return 'Trust Wallet';
|
|
364
|
-
if (provider.isMetaMask) return 'MetaMask';
|
|
365
|
-
}; // Some injected providers detect multiple other providers and create a list at `ethers.providers`
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
if ((_ethereum$providers = ethereum.providers) !== null && _ethereum$providers !== void 0 && _ethereum$providers.length) {
|
|
369
|
-
// Deduplicate names using Set
|
|
370
|
-
// Coinbase Wallet puts multiple providers in `ethereum.providers`
|
|
371
|
-
const nameSet = new Set();
|
|
372
|
-
let unknownCount = 1;
|
|
373
|
-
|
|
374
|
-
for (const provider of ethereum.providers) {
|
|
375
|
-
let name = getName(provider);
|
|
376
|
-
|
|
377
|
-
if (!name) {
|
|
378
|
-
name = `Unknown Wallet #${unknownCount}`;
|
|
379
|
-
unknownCount += 1;
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
nameSet.add(name);
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
const names = [...nameSet];
|
|
386
|
-
if (names.length) return names;
|
|
387
|
-
return names[0] ?? 'Injected';
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
return getName(ethereum) ?? 'Injected';
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
function normalizeChainId(chainId) {
|
|
394
|
-
if (typeof chainId === 'string') return Number.parseInt(chainId, chainId.trim().substring(0, 2) === '0x' ? 16 : 10);
|
|
395
|
-
if (typeof chainId === 'bigint') return Number(chainId);
|
|
396
|
-
return chainId;
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
class Connector extends EventEmitter {
|
|
400
|
-
/** Unique connector id */
|
|
401
|
-
|
|
402
|
-
/** Connector name */
|
|
403
|
-
|
|
404
|
-
/** Chains connector supports */
|
|
405
|
-
|
|
406
|
-
/** Options to use with connector */
|
|
407
|
-
|
|
408
|
-
/** Whether connector is usable */
|
|
409
|
-
constructor(_ref) {
|
|
410
|
-
let {
|
|
411
|
-
chains = defaultChains,
|
|
412
|
-
options
|
|
413
|
-
} = _ref;
|
|
414
|
-
super();
|
|
415
|
-
|
|
416
|
-
_defineProperty(this, "id", void 0);
|
|
417
|
-
|
|
418
|
-
_defineProperty(this, "name", void 0);
|
|
419
|
-
|
|
420
|
-
_defineProperty(this, "chains", void 0);
|
|
421
|
-
|
|
422
|
-
_defineProperty(this, "options", void 0);
|
|
423
|
-
|
|
424
|
-
_defineProperty(this, "ready", void 0);
|
|
425
|
-
|
|
426
|
-
this.chains = chains;
|
|
427
|
-
this.options = options;
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
getBlockExplorerUrls(chain) {
|
|
431
|
-
const {
|
|
432
|
-
default: blockExplorer,
|
|
433
|
-
...blockExplorers
|
|
434
|
-
} = chain.blockExplorers ?? {};
|
|
435
|
-
if (blockExplorer) return [blockExplorer.url, ...Object.values(blockExplorers).map(x => x.url)];
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
isChainUnsupported(chainId) {
|
|
439
|
-
return !this.chains.some(x => x.id === chainId);
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
var _provider = /*#__PURE__*/new WeakMap();
|
|
445
|
-
|
|
446
|
-
var _switchingChains = /*#__PURE__*/new WeakMap();
|
|
447
|
-
|
|
448
|
-
class InjectedConnector extends Connector {
|
|
449
|
-
constructor() {
|
|
450
|
-
let {
|
|
451
|
-
chains,
|
|
452
|
-
options: options_
|
|
453
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
454
|
-
const options = {
|
|
455
|
-
shimDisconnect: true,
|
|
456
|
-
shimChainChangedDisconnect: true,
|
|
457
|
-
...options_
|
|
458
|
-
};
|
|
459
|
-
super({
|
|
460
|
-
chains,
|
|
461
|
-
options
|
|
462
|
-
});
|
|
463
|
-
|
|
464
|
-
_defineProperty(this, "id", void 0);
|
|
465
|
-
|
|
466
|
-
_defineProperty(this, "name", void 0);
|
|
467
|
-
|
|
468
|
-
_defineProperty(this, "ready", typeof window != 'undefined' && !!window.ethereum);
|
|
469
|
-
|
|
470
|
-
_classPrivateFieldInitSpec(this, _provider, {
|
|
471
|
-
writable: true,
|
|
472
|
-
value: void 0
|
|
473
|
-
});
|
|
474
|
-
|
|
475
|
-
_classPrivateFieldInitSpec(this, _switchingChains, {
|
|
476
|
-
writable: true,
|
|
477
|
-
value: void 0
|
|
478
|
-
});
|
|
479
|
-
|
|
480
|
-
_defineProperty(this, "shimDisconnectKey", 'injected.shimDisconnect');
|
|
481
|
-
|
|
482
|
-
_defineProperty(this, "onAccountsChanged", accounts => {
|
|
483
|
-
if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
|
|
484
|
-
account: getAddress(accounts[0])
|
|
485
|
-
});
|
|
486
|
-
});
|
|
487
|
-
|
|
488
|
-
_defineProperty(this, "onChainChanged", chainId => {
|
|
489
|
-
const id = normalizeChainId(chainId);
|
|
490
|
-
const unsupported = this.isChainUnsupported(id);
|
|
491
|
-
this.emit('change', {
|
|
492
|
-
chain: {
|
|
493
|
-
id,
|
|
494
|
-
unsupported
|
|
495
|
-
}
|
|
496
|
-
});
|
|
497
|
-
});
|
|
498
|
-
|
|
499
|
-
_defineProperty(this, "onDisconnect", () => {
|
|
500
|
-
var _this$options, _this$options2, _getClient$storage;
|
|
501
|
-
|
|
502
|
-
// We need this as MetaMask can emit the "disconnect" event
|
|
503
|
-
// upon switching chains. This workaround ensures that the
|
|
504
|
-
// user currently isn't in the process of switching chains.
|
|
505
|
-
if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimChainChangedDisconnect && _classPrivateFieldGet(this, _switchingChains)) {
|
|
506
|
-
_classPrivateFieldSet(this, _switchingChains, false);
|
|
507
|
-
|
|
508
|
-
return;
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
this.emit('disconnect'); // Remove shim signalling wallet is disconnected
|
|
512
|
-
|
|
513
|
-
if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.shimDisconnect) (_getClient$storage = getClient().storage) === null || _getClient$storage === void 0 ? void 0 : _getClient$storage.removeItem(this.shimDisconnectKey);
|
|
514
|
-
});
|
|
515
|
-
|
|
516
|
-
let name = 'Injected';
|
|
517
|
-
const overrideName = options.name;
|
|
518
|
-
if (typeof overrideName === 'string') name = overrideName;else if (typeof window !== 'undefined') {
|
|
519
|
-
const detectedName = getInjectedName(window.ethereum);
|
|
520
|
-
if (overrideName) name = overrideName(detectedName);else name = typeof detectedName === 'string' ? detectedName : detectedName[0];
|
|
521
|
-
}
|
|
522
|
-
this.id = 'injected';
|
|
523
|
-
this.name = name;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
async connect() {
|
|
527
|
-
let {
|
|
528
|
-
chainId
|
|
529
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
530
|
-
|
|
531
|
-
try {
|
|
532
|
-
var _this$options3, _getClient$storage2;
|
|
533
|
-
|
|
534
|
-
const provider = await this.getProvider();
|
|
535
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
536
|
-
|
|
537
|
-
if (provider.on) {
|
|
538
|
-
provider.on('accountsChanged', this.onAccountsChanged);
|
|
539
|
-
provider.on('chainChanged', this.onChainChanged);
|
|
540
|
-
provider.on('disconnect', this.onDisconnect);
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
this.emit('message', {
|
|
544
|
-
type: 'connecting'
|
|
545
|
-
});
|
|
546
|
-
const account = await this.getAccount(); // Switch to chain if provided
|
|
547
|
-
|
|
548
|
-
let id = await this.getChainId();
|
|
549
|
-
let unsupported = this.isChainUnsupported(id);
|
|
550
|
-
|
|
551
|
-
if (chainId && id !== chainId) {
|
|
552
|
-
const chain = await this.switchChain(chainId);
|
|
553
|
-
id = chain.id;
|
|
554
|
-
unsupported = this.isChainUnsupported(id);
|
|
555
|
-
} // Add shim to storage signalling wallet is connected
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.shimDisconnect) (_getClient$storage2 = getClient().storage) === null || _getClient$storage2 === void 0 ? void 0 : _getClient$storage2.setItem(this.shimDisconnectKey, true);
|
|
559
|
-
return {
|
|
560
|
-
account,
|
|
561
|
-
chain: {
|
|
562
|
-
id,
|
|
563
|
-
unsupported
|
|
564
|
-
},
|
|
565
|
-
provider
|
|
566
|
-
};
|
|
567
|
-
} catch (error) {
|
|
568
|
-
if (this.isUserRejectedRequestError(error)) throw new UserRejectedRequestError(error);
|
|
569
|
-
if (error.code === -32002) throw new ResourceUnavailableError(error);
|
|
570
|
-
throw error;
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
async disconnect() {
|
|
575
|
-
var _this$options4, _getClient$storage3;
|
|
576
|
-
|
|
577
|
-
const provider = await this.getProvider();
|
|
578
|
-
if (!(provider !== null && provider !== void 0 && provider.removeListener)) return;
|
|
579
|
-
provider.removeListener('accountsChanged', this.onAccountsChanged);
|
|
580
|
-
provider.removeListener('chainChanged', this.onChainChanged);
|
|
581
|
-
provider.removeListener('disconnect', this.onDisconnect); // Remove shim signalling wallet is disconnected
|
|
582
|
-
|
|
583
|
-
if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.shimDisconnect) (_getClient$storage3 = getClient().storage) === null || _getClient$storage3 === void 0 ? void 0 : _getClient$storage3.removeItem(this.shimDisconnectKey);
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
async getAccount() {
|
|
587
|
-
const provider = await this.getProvider();
|
|
588
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
589
|
-
const accounts = await provider.request({
|
|
590
|
-
method: 'eth_requestAccounts'
|
|
591
|
-
}); // return checksum address
|
|
592
|
-
|
|
593
|
-
return getAddress(accounts[0]);
|
|
594
|
-
}
|
|
595
|
-
|
|
596
|
-
async getChainId() {
|
|
597
|
-
const provider = await this.getProvider();
|
|
598
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
599
|
-
return provider.request({
|
|
600
|
-
method: 'eth_chainId'
|
|
601
|
-
}).then(normalizeChainId);
|
|
602
|
-
}
|
|
603
|
-
|
|
604
|
-
async getProvider() {
|
|
605
|
-
if (typeof window !== 'undefined' && !!window.ethereum) _classPrivateFieldSet(this, _provider, window.ethereum);
|
|
606
|
-
return _classPrivateFieldGet(this, _provider);
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
async getSigner() {
|
|
610
|
-
let {
|
|
611
|
-
chainId
|
|
612
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
613
|
-
const [provider, account] = await Promise.all([this.getProvider(), this.getAccount()]);
|
|
614
|
-
return new providers.Web3Provider(provider, chainId).getSigner(account);
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
async isAuthorized() {
|
|
618
|
-
try {
|
|
619
|
-
var _this$options5, _getClient$storage4;
|
|
620
|
-
|
|
621
|
-
if ((_this$options5 = this.options) !== null && _this$options5 !== void 0 && _this$options5.shimDisconnect && // If shim does not exist in storage, wallet is disconnected
|
|
622
|
-
!((_getClient$storage4 = getClient().storage) !== null && _getClient$storage4 !== void 0 && _getClient$storage4.getItem(this.shimDisconnectKey))) return false;
|
|
623
|
-
const provider = await this.getProvider();
|
|
624
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
625
|
-
const accounts = await provider.request({
|
|
626
|
-
method: 'eth_accounts'
|
|
627
|
-
});
|
|
628
|
-
const account = accounts[0];
|
|
629
|
-
return !!account;
|
|
630
|
-
} catch {
|
|
631
|
-
return false;
|
|
632
|
-
}
|
|
633
|
-
}
|
|
634
|
-
|
|
635
|
-
async switchChain(chainId) {
|
|
636
|
-
var _this$options6;
|
|
637
|
-
|
|
638
|
-
if ((_this$options6 = this.options) !== null && _this$options6 !== void 0 && _this$options6.shimChainChangedDisconnect) _classPrivateFieldSet(this, _switchingChains, true);
|
|
639
|
-
const provider = await this.getProvider();
|
|
640
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
641
|
-
const id = hexValue(chainId);
|
|
642
|
-
|
|
643
|
-
try {
|
|
644
|
-
await provider.request({
|
|
645
|
-
method: 'wallet_switchEthereumChain',
|
|
646
|
-
params: [{
|
|
647
|
-
chainId: id
|
|
648
|
-
}]
|
|
649
|
-
});
|
|
650
|
-
return this.chains.find(x => x.id === chainId) ?? {
|
|
651
|
-
id: chainId,
|
|
652
|
-
name: `Chain ${id}`,
|
|
653
|
-
network: `${id}`,
|
|
654
|
-
rpcUrls: {
|
|
655
|
-
default: ''
|
|
656
|
-
}
|
|
657
|
-
};
|
|
658
|
-
} catch (error) {
|
|
659
|
-
var _data, _data$originalError;
|
|
660
|
-
|
|
661
|
-
const chain = this.chains.find(x => x.id === chainId);
|
|
662
|
-
if (!chain) throw new ChainNotConfiguredError({
|
|
663
|
-
chainId,
|
|
664
|
-
connectorId: this.id
|
|
665
|
-
}); // Indicates chain is not added to provider
|
|
666
|
-
|
|
667
|
-
if (error.code === 4902 || // Unwrapping for MetaMask Mobile
|
|
668
|
-
// https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719
|
|
669
|
-
(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
|
-
try {
|
|
671
|
-
await provider.request({
|
|
672
|
-
method: 'wallet_addEthereumChain',
|
|
673
|
-
params: [{
|
|
674
|
-
chainId: id,
|
|
675
|
-
chainName: chain.name,
|
|
676
|
-
nativeCurrency: chain.nativeCurrency,
|
|
677
|
-
rpcUrls: [chain.rpcUrls.public ?? chain.rpcUrls.default],
|
|
678
|
-
blockExplorerUrls: this.getBlockExplorerUrls(chain)
|
|
679
|
-
}]
|
|
680
|
-
});
|
|
681
|
-
return chain;
|
|
682
|
-
} catch (addError) {
|
|
683
|
-
if (this.isUserRejectedRequestError(addError)) throw new UserRejectedRequestError(error);
|
|
684
|
-
throw new AddChainError();
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
|
|
688
|
-
if (this.isUserRejectedRequestError(error)) throw new UserRejectedRequestError(error);
|
|
689
|
-
throw new SwitchChainError(error);
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
|
-
|
|
693
|
-
async watchAsset(_ref) {
|
|
694
|
-
let {
|
|
695
|
-
address,
|
|
696
|
-
decimals = 18,
|
|
697
|
-
image,
|
|
698
|
-
symbol
|
|
699
|
-
} = _ref;
|
|
700
|
-
const provider = await this.getProvider();
|
|
701
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
702
|
-
return provider.request({
|
|
703
|
-
method: 'wallet_watchAsset',
|
|
704
|
-
params: {
|
|
705
|
-
type: 'ERC20',
|
|
706
|
-
options: {
|
|
707
|
-
address,
|
|
708
|
-
decimals,
|
|
709
|
-
image,
|
|
710
|
-
symbol
|
|
711
|
-
}
|
|
712
|
-
}
|
|
713
|
-
});
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
isUserRejectedRequestError(error) {
|
|
717
|
-
return error.code === 4001;
|
|
718
|
-
}
|
|
719
|
-
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
const noopStorage = {
|
|
723
|
-
getItem: _key => '',
|
|
724
|
-
setItem: (_key, _value) => null,
|
|
725
|
-
removeItem: _key => null
|
|
726
|
-
};
|
|
727
|
-
function createStorage(_ref) {
|
|
728
|
-
let {
|
|
729
|
-
storage,
|
|
730
|
-
key: prefix = 'wagmi'
|
|
731
|
-
} = _ref;
|
|
732
|
-
return { ...storage,
|
|
733
|
-
getItem: function (key) {
|
|
734
|
-
let defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
735
|
-
const value = storage.getItem(`${prefix}.${key}`);
|
|
736
|
-
|
|
737
|
-
try {
|
|
738
|
-
return value ? JSON.parse(value) : defaultState;
|
|
739
|
-
} catch (error) {
|
|
740
|
-
console.warn(error);
|
|
741
|
-
return defaultState;
|
|
742
|
-
}
|
|
743
|
-
},
|
|
744
|
-
setItem: (key, value) => {
|
|
745
|
-
if (value === null) {
|
|
746
|
-
storage.removeItem(`${prefix}.${key}`);
|
|
747
|
-
} else {
|
|
748
|
-
try {
|
|
749
|
-
storage.setItem(`${prefix}.${key}`, JSON.stringify(value));
|
|
750
|
-
} catch (err) {
|
|
751
|
-
console.error(err);
|
|
752
|
-
}
|
|
753
|
-
}
|
|
754
|
-
},
|
|
755
|
-
removeItem: key => storage.removeItem(`${prefix}.${key}`)
|
|
756
|
-
};
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
const storeKey = 'store';
|
|
760
|
-
|
|
761
|
-
var _isAutoConnecting = /*#__PURE__*/new WeakMap();
|
|
762
|
-
|
|
763
|
-
var _lastUsedConnector = /*#__PURE__*/new WeakMap();
|
|
764
|
-
|
|
765
|
-
var _addEffects = /*#__PURE__*/new WeakSet();
|
|
766
|
-
|
|
767
|
-
class Client {
|
|
768
|
-
constructor(_ref) {
|
|
769
|
-
let {
|
|
770
|
-
autoConnect = false,
|
|
771
|
-
connectors = [new InjectedConnector()],
|
|
772
|
-
provider: _provider,
|
|
773
|
-
storage = createStorage({
|
|
774
|
-
storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
|
|
775
|
-
}),
|
|
776
|
-
logger = {
|
|
777
|
-
warn: console.warn
|
|
778
|
-
},
|
|
779
|
-
webSocketProvider: _webSocketProvider
|
|
780
|
-
} = _ref;
|
|
781
|
-
|
|
782
|
-
_classPrivateMethodInitSpec(this, _addEffects);
|
|
783
|
-
|
|
784
|
-
_defineProperty(this, "config", void 0);
|
|
785
|
-
|
|
786
|
-
_defineProperty(this, "providers", new Map());
|
|
787
|
-
|
|
788
|
-
_defineProperty(this, "storage", void 0);
|
|
789
|
-
|
|
790
|
-
_defineProperty(this, "store", void 0);
|
|
791
|
-
|
|
792
|
-
_defineProperty(this, "webSocketProviders", new Map());
|
|
793
|
-
|
|
794
|
-
_classPrivateFieldInitSpec(this, _isAutoConnecting, {
|
|
795
|
-
writable: true,
|
|
796
|
-
value: void 0
|
|
797
|
-
});
|
|
798
|
-
|
|
799
|
-
_classPrivateFieldInitSpec(this, _lastUsedConnector, {
|
|
800
|
-
writable: true,
|
|
801
|
-
value: void 0
|
|
802
|
-
});
|
|
803
|
-
|
|
804
|
-
this.config = {
|
|
805
|
-
autoConnect,
|
|
806
|
-
connectors,
|
|
807
|
-
logger,
|
|
808
|
-
provider: _provider,
|
|
809
|
-
storage,
|
|
810
|
-
webSocketProvider: _webSocketProvider
|
|
811
|
-
}; // Check status for autoConnect flag
|
|
812
|
-
|
|
813
|
-
let status = 'disconnected';
|
|
814
|
-
|
|
815
|
-
let _chainId;
|
|
816
|
-
|
|
817
|
-
if (autoConnect) {
|
|
818
|
-
try {
|
|
819
|
-
var _JSON$parse, _JSON$parse$state, _data$chain;
|
|
820
|
-
|
|
821
|
-
const rawState = storage.getItem(storeKey, '');
|
|
822
|
-
const data = (_JSON$parse = JSON.parse(rawState || '{}')) === null || _JSON$parse === void 0 ? void 0 : (_JSON$parse$state = _JSON$parse.state) === null || _JSON$parse$state === void 0 ? void 0 : _JSON$parse$state.data; // If account exists in localStorage, set status to reconnecting
|
|
823
|
-
|
|
824
|
-
status = data !== null && data !== void 0 && data.account ? 'reconnecting' : 'connecting';
|
|
825
|
-
_chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id; // eslint-disable-next-line no-empty
|
|
826
|
-
} catch (_error) {}
|
|
827
|
-
} // Create store
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
this.store = create(subscribeWithSelector(persist(() => ({
|
|
831
|
-
connectors: typeof connectors === 'function' ? connectors() : connectors,
|
|
832
|
-
provider: this.getProvider({
|
|
833
|
-
chainId: _chainId
|
|
834
|
-
}),
|
|
835
|
-
status,
|
|
836
|
-
webSocketProvider: this.getWebSocketProvider({
|
|
837
|
-
chainId: _chainId
|
|
838
|
-
})
|
|
839
|
-
}), {
|
|
840
|
-
name: storeKey,
|
|
841
|
-
getStorage: () => storage,
|
|
842
|
-
partialize: state => {
|
|
843
|
-
var _state$data, _state$data2;
|
|
844
|
-
|
|
845
|
-
return { ...(autoConnect && {
|
|
846
|
-
data: {
|
|
847
|
-
account: state === null || state === void 0 ? void 0 : (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.account,
|
|
848
|
-
chain: state === null || state === void 0 ? void 0 : (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.chain
|
|
849
|
-
}
|
|
850
|
-
}),
|
|
851
|
-
chains: state === null || state === void 0 ? void 0 : state.chains
|
|
852
|
-
};
|
|
853
|
-
},
|
|
854
|
-
version: 1
|
|
855
|
-
})));
|
|
856
|
-
this.storage = storage;
|
|
857
|
-
|
|
858
|
-
_classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
|
|
859
|
-
|
|
860
|
-
_classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
|
|
861
|
-
|
|
862
|
-
if (autoConnect && typeof window !== 'undefined') setTimeout(async () => await this.autoConnect(), 0);
|
|
863
|
-
}
|
|
864
|
-
|
|
865
|
-
get chains() {
|
|
866
|
-
return this.store.getState().chains;
|
|
867
|
-
}
|
|
868
|
-
|
|
869
|
-
get connectors() {
|
|
870
|
-
return this.store.getState().connectors;
|
|
871
|
-
}
|
|
872
|
-
|
|
873
|
-
get connector() {
|
|
874
|
-
return this.store.getState().connector;
|
|
875
|
-
}
|
|
876
|
-
|
|
877
|
-
get data() {
|
|
878
|
-
return this.store.getState().data;
|
|
879
|
-
}
|
|
880
|
-
|
|
881
|
-
get error() {
|
|
882
|
-
return this.store.getState().error;
|
|
883
|
-
}
|
|
884
|
-
|
|
885
|
-
get lastUsedChainId() {
|
|
886
|
-
var _this$data, _this$data$chain;
|
|
887
|
-
|
|
888
|
-
return (_this$data = this.data) === null || _this$data === void 0 ? void 0 : (_this$data$chain = _this$data.chain) === null || _this$data$chain === void 0 ? void 0 : _this$data$chain.id;
|
|
889
|
-
}
|
|
890
|
-
|
|
891
|
-
get provider() {
|
|
892
|
-
return this.store.getState().provider;
|
|
893
|
-
}
|
|
894
|
-
|
|
895
|
-
get status() {
|
|
896
|
-
return this.store.getState().status;
|
|
897
|
-
}
|
|
898
|
-
|
|
899
|
-
get subscribe() {
|
|
900
|
-
return this.store.subscribe;
|
|
901
|
-
}
|
|
902
|
-
|
|
903
|
-
get webSocketProvider() {
|
|
904
|
-
return this.store.getState().webSocketProvider;
|
|
905
|
-
}
|
|
906
|
-
|
|
907
|
-
setState(updater) {
|
|
908
|
-
const newState = typeof updater === 'function' ? updater(this.store.getState()) : updater;
|
|
909
|
-
this.store.setState(newState, true);
|
|
910
|
-
}
|
|
911
|
-
|
|
912
|
-
clearState() {
|
|
913
|
-
this.setState(x => ({ ...x,
|
|
914
|
-
chains: undefined,
|
|
915
|
-
connector: undefined,
|
|
916
|
-
data: undefined,
|
|
917
|
-
error: undefined,
|
|
918
|
-
status: 'disconnected'
|
|
919
|
-
}));
|
|
920
|
-
}
|
|
921
|
-
|
|
922
|
-
async destroy() {
|
|
923
|
-
var _this$connector$disco, _this$connector;
|
|
924
|
-
|
|
925
|
-
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));
|
|
926
|
-
|
|
927
|
-
_classPrivateFieldSet(this, _isAutoConnecting, false);
|
|
928
|
-
|
|
929
|
-
this.clearState();
|
|
930
|
-
this.store.destroy();
|
|
931
|
-
}
|
|
932
|
-
|
|
933
|
-
async autoConnect() {
|
|
934
|
-
if (_classPrivateFieldGet(this, _isAutoConnecting)) return;
|
|
935
|
-
|
|
936
|
-
_classPrivateFieldSet(this, _isAutoConnecting, true);
|
|
937
|
-
|
|
938
|
-
this.setState(x => {
|
|
939
|
-
var _x$data;
|
|
940
|
-
|
|
941
|
-
return { ...x,
|
|
942
|
-
status: (_x$data = x.data) !== null && _x$data !== void 0 && _x$data.account ? 'reconnecting' : 'connecting'
|
|
943
|
-
};
|
|
944
|
-
}); // Try last used connector first
|
|
945
|
-
|
|
946
|
-
const sorted = _classPrivateFieldGet(this, _lastUsedConnector) ? [...this.connectors].sort(x => x.id === _classPrivateFieldGet(this, _lastUsedConnector) ? -1 : 1) : this.connectors;
|
|
947
|
-
let connected = false;
|
|
948
|
-
|
|
949
|
-
for (const connector of sorted) {
|
|
950
|
-
if (!connector.ready || !connector.isAuthorized) continue;
|
|
951
|
-
const isAuthorized = await connector.isAuthorized();
|
|
952
|
-
if (!isAuthorized) continue;
|
|
953
|
-
const data = await connector.connect();
|
|
954
|
-
this.setState(x => ({ ...x,
|
|
955
|
-
connector,
|
|
956
|
-
chains: connector === null || connector === void 0 ? void 0 : connector.chains,
|
|
957
|
-
data,
|
|
958
|
-
status: 'connected'
|
|
959
|
-
}));
|
|
960
|
-
connected = true;
|
|
961
|
-
break;
|
|
962
|
-
} // If connecting didn't succeed, set to disconnected
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
if (!connected) this.setState(x => ({ ...x,
|
|
966
|
-
data: undefined,
|
|
967
|
-
status: 'disconnected'
|
|
968
|
-
}));
|
|
969
|
-
|
|
970
|
-
_classPrivateFieldSet(this, _isAutoConnecting, false);
|
|
971
|
-
|
|
972
|
-
return this.data;
|
|
973
|
-
}
|
|
974
|
-
|
|
975
|
-
getProvider() {
|
|
976
|
-
let {
|
|
977
|
-
bust,
|
|
978
|
-
chainId
|
|
979
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
980
|
-
let provider_ = this.providers.get(chainId ?? -1);
|
|
981
|
-
if (provider_ && !bust) return provider_;
|
|
982
|
-
const {
|
|
983
|
-
provider
|
|
984
|
-
} = this.config;
|
|
985
|
-
provider_ = typeof provider === 'function' ? provider({
|
|
986
|
-
chainId
|
|
987
|
-
}) : provider;
|
|
988
|
-
this.providers.set(chainId ?? -1, provider_);
|
|
989
|
-
return provider_;
|
|
990
|
-
}
|
|
991
|
-
|
|
992
|
-
getWebSocketProvider() {
|
|
993
|
-
let {
|
|
994
|
-
bust,
|
|
995
|
-
chainId
|
|
996
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
997
|
-
let webSocketProvider_ = this.webSocketProviders.get(chainId ?? -1);
|
|
998
|
-
if (webSocketProvider_ && !bust) return webSocketProvider_;
|
|
999
|
-
const {
|
|
1000
|
-
webSocketProvider
|
|
1001
|
-
} = this.config;
|
|
1002
|
-
webSocketProvider_ = typeof webSocketProvider === 'function' ? webSocketProvider({
|
|
1003
|
-
chainId
|
|
1004
|
-
}) : webSocketProvider;
|
|
1005
|
-
if (webSocketProvider_) this.webSocketProviders.set(chainId ?? -1, webSocketProvider_);
|
|
1006
|
-
return webSocketProvider_;
|
|
1007
|
-
}
|
|
1008
|
-
|
|
1009
|
-
setLastUsedConnector() {
|
|
1010
|
-
var _this$storage;
|
|
1011
|
-
|
|
1012
|
-
let lastUsedConnector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
1013
|
-
(_this$storage = this.storage) === null || _this$storage === void 0 ? void 0 : _this$storage.setItem('wallet', lastUsedConnector);
|
|
1014
|
-
}
|
|
1015
|
-
|
|
1016
|
-
}
|
|
1017
|
-
|
|
1018
|
-
function _addEffects2() {
|
|
1019
|
-
const onChange = data => {
|
|
1020
|
-
this.setState(x => ({ ...x,
|
|
1021
|
-
data: { ...x.data,
|
|
1022
|
-
...data
|
|
1023
|
-
}
|
|
1024
|
-
}));
|
|
1025
|
-
};
|
|
1026
|
-
|
|
1027
|
-
const onDisconnect = () => {
|
|
1028
|
-
this.clearState();
|
|
1029
|
-
};
|
|
1030
|
-
|
|
1031
|
-
const onError = error => {
|
|
1032
|
-
this.setState(x => ({ ...x,
|
|
1033
|
-
error
|
|
1034
|
-
}));
|
|
1035
|
-
};
|
|
1036
|
-
|
|
1037
|
-
this.store.subscribe(_ref2 => {
|
|
1038
|
-
let {
|
|
1039
|
-
connector
|
|
1040
|
-
} = _ref2;
|
|
1041
|
-
return connector;
|
|
1042
|
-
}, (connector, prevConnector) => {
|
|
1043
|
-
var _prevConnector$off, _prevConnector$off2, _prevConnector$off3, _connector$on, _connector$on2, _connector$on3;
|
|
1044
|
-
|
|
1045
|
-
prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off = prevConnector.off) === null || _prevConnector$off === void 0 ? void 0 : _prevConnector$off.call(prevConnector, 'change', onChange);
|
|
1046
|
-
prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off2 = prevConnector.off) === null || _prevConnector$off2 === void 0 ? void 0 : _prevConnector$off2.call(prevConnector, 'disconnect', onDisconnect);
|
|
1047
|
-
prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off3 = prevConnector.off) === null || _prevConnector$off3 === void 0 ? void 0 : _prevConnector$off3.call(prevConnector, 'error', onError);
|
|
1048
|
-
if (!connector) return;
|
|
1049
|
-
(_connector$on = connector.on) === null || _connector$on === void 0 ? void 0 : _connector$on.call(connector, 'change', onChange);
|
|
1050
|
-
(_connector$on2 = connector.on) === null || _connector$on2 === void 0 ? void 0 : _connector$on2.call(connector, 'disconnect', onDisconnect);
|
|
1051
|
-
(_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
|
|
1052
|
-
});
|
|
1053
|
-
const {
|
|
1054
|
-
provider,
|
|
1055
|
-
webSocketProvider
|
|
1056
|
-
} = this.config;
|
|
1057
|
-
const subscribeProvider = typeof provider === 'function';
|
|
1058
|
-
const subscribeWebSocketProvider = typeof webSocketProvider === 'function';
|
|
1059
|
-
if (subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref3 => {
|
|
1060
|
-
var _data$chain2;
|
|
1061
|
-
|
|
1062
|
-
let {
|
|
1063
|
-
data
|
|
1064
|
-
} = _ref3;
|
|
1065
|
-
return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
|
|
1066
|
-
}, chainId => {
|
|
1067
|
-
this.setState(x => ({ ...x,
|
|
1068
|
-
provider: this.getProvider({
|
|
1069
|
-
bust: true,
|
|
1070
|
-
chainId
|
|
1071
|
-
}),
|
|
1072
|
-
webSocketProvider: this.getWebSocketProvider({
|
|
1073
|
-
bust: true,
|
|
1074
|
-
chainId
|
|
1075
|
-
})
|
|
1076
|
-
}));
|
|
1077
|
-
});
|
|
1078
|
-
}
|
|
1079
|
-
|
|
1080
|
-
let client;
|
|
1081
|
-
function createClient(config) {
|
|
1082
|
-
const client_ = new Client(config);
|
|
1083
|
-
client = client_;
|
|
1084
|
-
return client_;
|
|
1085
|
-
}
|
|
1086
|
-
function getClient() {
|
|
1087
|
-
if (!client) {
|
|
1088
|
-
throw new Error('No wagmi client found. Ensure you have set up a client: https://wagmi.sh/docs/client');
|
|
1089
|
-
}
|
|
1090
|
-
|
|
1091
|
-
return client;
|
|
1092
|
-
}
|
|
1093
|
-
|
|
1094
|
-
function getProvider() {
|
|
1095
|
-
let {
|
|
1096
|
-
chainId
|
|
1097
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1098
|
-
const client = getClient();
|
|
1099
|
-
if (chainId) return client.getProvider({
|
|
1100
|
-
chainId
|
|
1101
|
-
}) || client.provider;
|
|
1102
|
-
return client.provider;
|
|
1103
|
-
}
|
|
1104
|
-
|
|
1105
|
-
export { AddChainError as A, ChainMismatchError as C, InjectedConnector as I, ProviderChainsNotFound as P, ResourceUnavailableError as R, SwitchChainNotSupportedError as S, UserRejectedRequestError as U, _classPrivateMethodInitSpec as _, ChainNotConfiguredError as a, ConnectorAlreadyConnectedError as b, ContractResultDecodeError as c, ConnectorNotFoundError as d, ContractMethodDoesNotExistError as e, getProvider as f, getClient as g, ChainDoesNotSupportMulticallError as h, ContractMethodRevertedError as i, ContractMethodNoResultError as j, createClient as k, Client as l, Connector 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 };
|