@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.
Files changed (184) hide show
  1. package/chains/package.json +2 -2
  2. package/connectors/coinbaseWallet/package.json +2 -2
  3. package/connectors/metaMask/package.json +2 -2
  4. package/connectors/mock/package.json +2 -2
  5. package/connectors/walletConnect/package.json +2 -2
  6. package/dist/{declarations/src/connectors/base.d.ts → base-5bd9b5ed.d.ts} +8 -5
  7. package/dist/chains.d.ts +3 -0
  8. package/dist/chains.js +29 -0
  9. package/dist/chunk-2EDVJWOA.js +3496 -0
  10. package/dist/chunk-4DNFSL2K.js +376 -0
  11. package/dist/chunk-MQXBDTVK.js +29 -0
  12. package/dist/{declarations/src/connectors → connectors}/coinbaseWallet.d.ts +10 -6
  13. package/dist/connectors/coinbaseWallet.js +215 -0
  14. package/dist/{declarations/src/connectors → connectors}/metaMask.d.ts +11 -4
  15. package/dist/connectors/metaMask.js +115 -0
  16. package/dist/connectors/mock/index.d.ts +78 -0
  17. package/dist/connectors/mock/index.js +190 -0
  18. package/dist/{declarations/src/connectors → connectors}/walletConnect.d.ts +9 -5
  19. package/dist/connectors/walletConnect.js +160 -0
  20. package/dist/{declarations/src/types/contracts.d.ts → contracts-fb6a6ff0.d.ts} +122 -17
  21. package/dist/{declarations/src/types/index.d.ts → index-bacc1c49.d.ts} +83 -15
  22. package/dist/index.d.ts +1738 -0
  23. package/dist/index.js +165 -0
  24. package/dist/{declarations/src/connectors/injected.d.ts → injected-6980e5c3.d.ts} +9 -6
  25. package/dist/internal.d.ts +8 -0
  26. package/dist/internal.js +8 -0
  27. package/dist/providers/alchemy.d.ts +11 -0
  28. package/dist/providers/alchemy.js +32 -0
  29. package/dist/providers/infura.d.ts +11 -0
  30. package/dist/providers/infura.js +32 -0
  31. package/dist/providers/jsonRpc.d.ts +14 -0
  32. package/dist/providers/jsonRpc.js +44 -0
  33. package/dist/providers/public.d.ts +8 -0
  34. package/dist/providers/public.js +30 -0
  35. package/internal/package.json +2 -2
  36. package/package.json +40 -51
  37. package/providers/alchemy/package.json +2 -2
  38. package/providers/infura/package.json +2 -2
  39. package/providers/jsonRpc/package.json +2 -2
  40. package/providers/public/package.json +2 -2
  41. package/chains/dist/wagmi-core-chains.cjs.d.ts +0 -1
  42. package/chains/dist/wagmi-core-chains.cjs.dev.js +0 -26
  43. package/chains/dist/wagmi-core-chains.cjs.js +0 -7
  44. package/chains/dist/wagmi-core-chains.cjs.prod.js +0 -26
  45. package/chains/dist/wagmi-core-chains.esm.js +0 -2
  46. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.d.ts +0 -1
  47. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +0 -274
  48. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.js +0 -7
  49. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +0 -274
  50. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +0 -252
  51. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.d.ts +0 -1
  52. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +0 -153
  53. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.js +0 -7
  54. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +0 -153
  55. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +0 -149
  56. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.d.ts +0 -1
  57. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +0 -262
  58. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.js +0 -7
  59. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +0 -262
  60. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +0 -253
  61. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.d.ts +0 -1
  62. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +0 -228
  63. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.js +0 -7
  64. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +0 -228
  65. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +0 -206
  66. package/dist/chains-73cc6c23.cjs.prod.js +0 -526
  67. package/dist/chains-8fce19d8.esm.js +0 -502
  68. package/dist/chains-fe1f4131.cjs.dev.js +0 -526
  69. package/dist/debounce-0862bf88.esm.js +0 -18
  70. package/dist/debounce-2d836dc9.cjs.prod.js +0 -20
  71. package/dist/debounce-46ac0312.cjs.dev.js +0 -20
  72. package/dist/declarations/src/actions/accounts/connect.d.ts +0 -18
  73. package/dist/declarations/src/actions/accounts/disconnect.d.ts +0 -1
  74. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +0 -19
  75. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +0 -7
  76. package/dist/declarations/src/actions/accounts/getAccount.d.ts +0 -36
  77. package/dist/declarations/src/actions/accounts/getNetwork.d.ts +0 -8
  78. package/dist/declarations/src/actions/accounts/index.d.ts +0 -12
  79. package/dist/declarations/src/actions/accounts/signMessage.d.ts +0 -7
  80. package/dist/declarations/src/actions/accounts/signTypedData.d.ts +0 -23
  81. package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +0 -6
  82. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +0 -12
  83. package/dist/declarations/src/actions/accounts/watchNetwork.d.ts +0 -10
  84. package/dist/declarations/src/actions/accounts/watchSigner.d.ts +0 -5
  85. package/dist/declarations/src/actions/contracts/fetchToken.d.ts +0 -21
  86. package/dist/declarations/src/actions/contracts/getContract.d.ts +0 -113
  87. package/dist/declarations/src/actions/contracts/index.d.ts +0 -11
  88. package/dist/declarations/src/actions/contracts/multicall.d.ts +0 -17
  89. package/dist/declarations/src/actions/contracts/prepareWriteContract.d.ts +0 -47
  90. package/dist/declarations/src/actions/contracts/readContract.d.ts +0 -15
  91. package/dist/declarations/src/actions/contracts/readContracts.d.ts +0 -28
  92. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +0 -28
  93. package/dist/declarations/src/actions/contracts/watchMulticall.d.ts +0 -10
  94. package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +0 -7
  95. package/dist/declarations/src/actions/contracts/watchReadContracts.d.ts +0 -10
  96. package/dist/declarations/src/actions/contracts/writeContract.d.ts +0 -72
  97. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +0 -9
  98. package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +0 -8
  99. package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +0 -9
  100. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +0 -9
  101. package/dist/declarations/src/actions/ens/index.d.ts +0 -4
  102. package/dist/declarations/src/actions/index.d.ts +0 -6
  103. package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +0 -5
  104. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +0 -16
  105. package/dist/declarations/src/actions/network-status/index.d.ts +0 -3
  106. package/dist/declarations/src/actions/network-status/watchBlockNumber.d.ts +0 -7
  107. package/dist/declarations/src/actions/providers/getProvider.d.ts +0 -7
  108. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +0 -7
  109. package/dist/declarations/src/actions/providers/index.d.ts +0 -4
  110. package/dist/declarations/src/actions/providers/watchProvider.d.ts +0 -4
  111. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +0 -4
  112. package/dist/declarations/src/actions/transactions/fetchTransaction.d.ts +0 -21
  113. package/dist/declarations/src/actions/transactions/index.d.ts +0 -4
  114. package/dist/declarations/src/actions/transactions/prepareSendTransaction.d.ts +0 -37
  115. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +0 -48
  116. package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +0 -18
  117. package/dist/declarations/src/chains.d.ts +0 -1
  118. package/dist/declarations/src/client.d.ts +0 -91
  119. package/dist/declarations/src/connectors/index.d.ts +0 -2
  120. package/dist/declarations/src/connectors/mock/connector.d.ts +0 -34
  121. package/dist/declarations/src/connectors/mock/index.d.ts +0 -2
  122. package/dist/declarations/src/connectors/mock/provider.d.ts +0 -41
  123. package/dist/declarations/src/constants/abis.d.ts +0 -941
  124. package/dist/declarations/src/constants/blockExplorers.d.ts +0 -9
  125. package/dist/declarations/src/constants/chains.d.ts +0 -64
  126. package/dist/declarations/src/constants/index.d.ts +0 -7
  127. package/dist/declarations/src/constants/rpcs.d.ts +0 -11
  128. package/dist/declarations/src/constants/units.d.ts +0 -1
  129. package/dist/declarations/src/errors.d.ts +0 -134
  130. package/dist/declarations/src/index.d.ts +0 -14
  131. package/dist/declarations/src/internal.d.ts +0 -3
  132. package/dist/declarations/src/providers/alchemy.d.ts +0 -6
  133. package/dist/declarations/src/providers/infura.d.ts +0 -6
  134. package/dist/declarations/src/providers/jsonRpc.d.ts +0 -10
  135. package/dist/declarations/src/providers/public.d.ts +0 -4
  136. package/dist/declarations/src/storage.d.ts +0 -12
  137. package/dist/declarations/src/types/utils.d.ts +0 -103
  138. package/dist/declarations/src/utils/assertActiveChain.d.ts +0 -5
  139. package/dist/declarations/src/utils/configureChains.d.ts +0 -26
  140. package/dist/declarations/src/utils/debounce.d.ts +0 -1
  141. package/dist/declarations/src/utils/deepEqual.d.ts +0 -2
  142. package/dist/declarations/src/utils/getInjectedName.d.ts +0 -2
  143. package/dist/declarations/src/utils/index.d.ts +0 -11
  144. package/dist/declarations/src/utils/logger.d.ts +0 -1
  145. package/dist/declarations/src/utils/minimizeContractInterface.d.ts +0 -5
  146. package/dist/declarations/src/utils/normalizeChainId.d.ts +0 -1
  147. package/dist/declarations/src/utils/normalizeFunctionName.d.ts +0 -17
  148. package/dist/declarations/src/utils/parseContractResult.d.ts +0 -7
  149. package/dist/getProvider-3b1af4e6.cjs.dev.js +0 -1143
  150. package/dist/getProvider-84f303a1.cjs.prod.js +0 -1143
  151. package/dist/getProvider-97db849e.esm.js +0 -1105
  152. package/dist/rpcs-38f4faba.cjs.prod.js +0 -57
  153. package/dist/rpcs-52ea3d8d.cjs.dev.js +0 -57
  154. package/dist/rpcs-d533516e.esm.js +0 -51
  155. package/dist/wagmi-core.cjs.d.ts +0 -1
  156. package/dist/wagmi-core.cjs.dev.js +0 -2683
  157. package/dist/wagmi-core.cjs.js +0 -7
  158. package/dist/wagmi-core.cjs.prod.js +0 -2683
  159. package/dist/wagmi-core.esm.js +0 -2599
  160. package/internal/dist/wagmi-core-internal.cjs.d.ts +0 -1
  161. package/internal/dist/wagmi-core-internal.cjs.dev.js +0 -9
  162. package/internal/dist/wagmi-core-internal.cjs.js +0 -7
  163. package/internal/dist/wagmi-core-internal.cjs.prod.js +0 -9
  164. package/internal/dist/wagmi-core-internal.esm.js +0 -1
  165. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.d.ts +0 -1
  166. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +0 -36
  167. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.js +0 -7
  168. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +0 -36
  169. package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +0 -32
  170. package/providers/infura/dist/wagmi-core-providers-infura.cjs.d.ts +0 -1
  171. package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +0 -36
  172. package/providers/infura/dist/wagmi-core-providers-infura.cjs.js +0 -7
  173. package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +0 -36
  174. package/providers/infura/dist/wagmi-core-providers-infura.esm.js +0 -32
  175. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.d.ts +0 -1
  176. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +0 -46
  177. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.js +0 -7
  178. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +0 -46
  179. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +0 -42
  180. package/providers/public/dist/wagmi-core-providers-public.cjs.d.ts +0 -1
  181. package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +0 -32
  182. package/providers/public/dist/wagmi-core-providers-public.cjs.js +0 -7
  183. package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +0 -32
  184. 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 };