@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,228 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var getProvider = require('../../../dist/getProvider-84f303a1.cjs.prod.js');
6
- var ethers = require('ethers');
7
- var utils = require('ethers/lib/utils');
8
- require('zustand/middleware');
9
- require('zustand/vanilla');
10
- require('eventemitter3');
11
- require('../../../dist/chains-73cc6c23.cjs.prod.js');
12
- require('../../../dist/rpcs-38f4faba.cjs.prod.js');
13
-
14
- function _interopNamespace(e) {
15
- if (e && e.__esModule) return e;
16
- var n = Object.create(null);
17
- if (e) {
18
- Object.keys(e).forEach(function (k) {
19
- if (k !== 'default') {
20
- var d = Object.getOwnPropertyDescriptor(e, k);
21
- Object.defineProperty(n, k, d.get ? d : {
22
- enumerable: true,
23
- get: function () { return e[k]; }
24
- });
25
- }
26
- });
27
- }
28
- n["default"] = e;
29
- return Object.freeze(n);
30
- }
31
-
32
- /**
33
- * Wallets that support chain switching through WalletConnect
34
- * - imToken (token.im)
35
- * - MetaMask (metamask.io)
36
- * - Rainbow (rainbow.me)
37
- * - Trust Wallet (trustwallet.com)
38
- */
39
-
40
- const switchChainAllowedRegex = /(imtoken|metamask|rainbow|trust wallet)/i;
41
-
42
- var _provider = /*#__PURE__*/new WeakMap();
43
-
44
- var _switchChain = /*#__PURE__*/new WeakSet();
45
-
46
- class WalletConnectConnector extends getProvider.Connector {
47
- constructor(config) {
48
- super(config);
49
-
50
- getProvider._classPrivateMethodInitSpec(this, _switchChain);
51
-
52
- getProvider._defineProperty(this, "id", 'walletConnect');
53
-
54
- getProvider._defineProperty(this, "name", 'WalletConnect');
55
-
56
- getProvider._defineProperty(this, "ready", true);
57
-
58
- getProvider._classPrivateFieldInitSpec(this, _provider, {
59
- writable: true,
60
- value: void 0
61
- });
62
-
63
- getProvider._defineProperty(this, "onAccountsChanged", accounts => {
64
- if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
65
- account: utils.getAddress(accounts[0])
66
- });
67
- });
68
-
69
- getProvider._defineProperty(this, "onChainChanged", chainId => {
70
- const id = getProvider.normalizeChainId(chainId);
71
- const unsupported = this.isChainUnsupported(id);
72
- this.emit('change', {
73
- chain: {
74
- id,
75
- unsupported
76
- }
77
- });
78
- });
79
-
80
- getProvider._defineProperty(this, "onDisconnect", () => {
81
- this.emit('disconnect');
82
- });
83
- }
84
-
85
- async connect() {
86
- let {
87
- chainId
88
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
89
-
90
- try {
91
- var _provider$connector, _provider$connector$p;
92
-
93
- let targetChainId = chainId;
94
-
95
- if (!targetChainId) {
96
- const lastUsedChainId = getProvider.getClient().lastUsedChainId;
97
- if (lastUsedChainId && !this.isChainUnsupported(lastUsedChainId)) targetChainId = lastUsedChainId;
98
- }
99
-
100
- const provider = await this.getProvider({
101
- chainId: targetChainId,
102
- create: true
103
- });
104
- provider.on('accountsChanged', this.onAccountsChanged);
105
- provider.on('chainChanged', this.onChainChanged);
106
- provider.on('disconnect', this.onDisconnect); // Defer message to the next tick to ensure wallet connect data (provided by `.enable()`) is available
107
-
108
- setTimeout(() => this.emit('message', {
109
- type: 'connecting'
110
- }), 0);
111
- const accounts = await provider.enable();
112
- const account = utils.getAddress(accounts[0]);
113
- const id = await this.getChainId();
114
- const unsupported = this.isChainUnsupported(id); // Not all WalletConnect options support programmatic chain switching
115
- // Only enable for wallet options that do
116
-
117
- const walletName = ((_provider$connector = provider.connector) === null || _provider$connector === void 0 ? void 0 : (_provider$connector$p = _provider$connector.peerMeta) === null || _provider$connector$p === void 0 ? void 0 : _provider$connector$p.name) ?? '';
118
- if (switchChainAllowedRegex.test(walletName)) this.switchChain = getProvider._classPrivateMethodGet(this, _switchChain, _switchChain2);
119
- return {
120
- account,
121
- chain: {
122
- id,
123
- unsupported
124
- },
125
- provider: new ethers.providers.Web3Provider(provider)
126
- };
127
- } catch (error) {
128
- if (/user closed modal/i.test(error.message)) throw new getProvider.UserRejectedRequestError(error);
129
- throw error;
130
- }
131
- }
132
-
133
- async disconnect() {
134
- const provider = await this.getProvider();
135
- await provider.disconnect();
136
- provider.removeListener('accountsChanged', this.onAccountsChanged);
137
- provider.removeListener('chainChanged', this.onChainChanged);
138
- provider.removeListener('disconnect', this.onDisconnect);
139
- typeof localStorage !== 'undefined' && localStorage.removeItem('walletconnect');
140
- }
141
-
142
- async getAccount() {
143
- const provider = await this.getProvider();
144
- const accounts = provider.accounts; // return checksum address
145
-
146
- return utils.getAddress(accounts[0]);
147
- }
148
-
149
- async getChainId() {
150
- const provider = await this.getProvider();
151
- const chainId = getProvider.normalizeChainId(provider.chainId);
152
- return chainId;
153
- }
154
-
155
- async getProvider() {
156
- let {
157
- chainId,
158
- create
159
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
160
-
161
- // Force create new provider
162
- if (!getProvider._classPrivateFieldGet(this, _provider) || chainId || create) {
163
- var _this$options, _this$options2;
164
-
165
- const rpc = !((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.infuraId) ? this.chains.reduce((rpc, chain) => ({ ...rpc,
166
- [chain.id]: chain.rpcUrls.default
167
- }), {}) : {};
168
- const WalletConnectProvider = (await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@walletconnect/ethereum-provider')); })).default;
169
-
170
- getProvider._classPrivateFieldSet(this, _provider, new WalletConnectProvider({ ...this.options,
171
- chainId,
172
- rpc: { ...rpc,
173
- ...((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.rpc)
174
- }
175
- }));
176
- }
177
-
178
- return getProvider._classPrivateFieldGet(this, _provider);
179
- }
180
-
181
- async getSigner() {
182
- let {
183
- chainId
184
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
185
- const [provider, account] = await Promise.all([this.getProvider({
186
- chainId
187
- }), this.getAccount()]);
188
- return new ethers.providers.Web3Provider(provider, chainId).getSigner(account);
189
- }
190
-
191
- async isAuthorized() {
192
- try {
193
- const account = await this.getAccount();
194
- return !!account;
195
- } catch {
196
- return false;
197
- }
198
- }
199
-
200
- }
201
-
202
- async function _switchChain2(chainId) {
203
- const provider = await this.getProvider();
204
- const id = utils.hexValue(chainId);
205
-
206
- try {
207
- await provider.request({
208
- method: 'wallet_switchEthereumChain',
209
- params: [{
210
- chainId: id
211
- }]
212
- });
213
- return this.chains.find(x => x.id === chainId) ?? {
214
- id: chainId,
215
- name: `Chain ${id}`,
216
- network: `${id}`,
217
- rpcUrls: {
218
- default: ''
219
- }
220
- };
221
- } catch (error) {
222
- const message = typeof error === 'string' ? error : error === null || error === void 0 ? void 0 : error.message;
223
- if (/user rejected request/i.test(message)) throw new getProvider.UserRejectedRequestError(error);
224
- throw new getProvider.SwitchChainError(error);
225
- }
226
- }
227
-
228
- exports.WalletConnectConnector = WalletConnectConnector;
@@ -1,206 +0,0 @@
1
- import { m as Connector, _ as _classPrivateMethodInitSpec, t as _defineProperty, v as _classPrivateFieldInitSpec, n as normalizeChainId, g as getClient, u as _classPrivateMethodGet, U as UserRejectedRequestError, x as _classPrivateFieldGet, w as _classPrivateFieldSet, q as SwitchChainError } from '../../../dist/getProvider-97db849e.esm.js';
2
- import { providers } from 'ethers';
3
- import { getAddress, hexValue } from 'ethers/lib/utils';
4
- import 'zustand/middleware';
5
- import 'zustand/vanilla';
6
- import 'eventemitter3';
7
- import '../../../dist/chains-8fce19d8.esm.js';
8
- import '../../../dist/rpcs-d533516e.esm.js';
9
-
10
- /**
11
- * Wallets that support chain switching through WalletConnect
12
- * - imToken (token.im)
13
- * - MetaMask (metamask.io)
14
- * - Rainbow (rainbow.me)
15
- * - Trust Wallet (trustwallet.com)
16
- */
17
-
18
- const switchChainAllowedRegex = /(imtoken|metamask|rainbow|trust wallet)/i;
19
-
20
- var _provider = /*#__PURE__*/new WeakMap();
21
-
22
- var _switchChain = /*#__PURE__*/new WeakSet();
23
-
24
- class WalletConnectConnector extends Connector {
25
- constructor(config) {
26
- super(config);
27
-
28
- _classPrivateMethodInitSpec(this, _switchChain);
29
-
30
- _defineProperty(this, "id", 'walletConnect');
31
-
32
- _defineProperty(this, "name", 'WalletConnect');
33
-
34
- _defineProperty(this, "ready", true);
35
-
36
- _classPrivateFieldInitSpec(this, _provider, {
37
- writable: true,
38
- value: void 0
39
- });
40
-
41
- _defineProperty(this, "onAccountsChanged", accounts => {
42
- if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
43
- account: getAddress(accounts[0])
44
- });
45
- });
46
-
47
- _defineProperty(this, "onChainChanged", chainId => {
48
- const id = normalizeChainId(chainId);
49
- const unsupported = this.isChainUnsupported(id);
50
- this.emit('change', {
51
- chain: {
52
- id,
53
- unsupported
54
- }
55
- });
56
- });
57
-
58
- _defineProperty(this, "onDisconnect", () => {
59
- this.emit('disconnect');
60
- });
61
- }
62
-
63
- async connect() {
64
- let {
65
- chainId
66
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
67
-
68
- try {
69
- var _provider$connector, _provider$connector$p;
70
-
71
- let targetChainId = chainId;
72
-
73
- if (!targetChainId) {
74
- const lastUsedChainId = getClient().lastUsedChainId;
75
- if (lastUsedChainId && !this.isChainUnsupported(lastUsedChainId)) targetChainId = lastUsedChainId;
76
- }
77
-
78
- const provider = await this.getProvider({
79
- chainId: targetChainId,
80
- create: true
81
- });
82
- provider.on('accountsChanged', this.onAccountsChanged);
83
- provider.on('chainChanged', this.onChainChanged);
84
- provider.on('disconnect', this.onDisconnect); // Defer message to the next tick to ensure wallet connect data (provided by `.enable()`) is available
85
-
86
- setTimeout(() => this.emit('message', {
87
- type: 'connecting'
88
- }), 0);
89
- const accounts = await provider.enable();
90
- const account = getAddress(accounts[0]);
91
- const id = await this.getChainId();
92
- const unsupported = this.isChainUnsupported(id); // Not all WalletConnect options support programmatic chain switching
93
- // Only enable for wallet options that do
94
-
95
- const walletName = ((_provider$connector = provider.connector) === null || _provider$connector === void 0 ? void 0 : (_provider$connector$p = _provider$connector.peerMeta) === null || _provider$connector$p === void 0 ? void 0 : _provider$connector$p.name) ?? '';
96
- if (switchChainAllowedRegex.test(walletName)) this.switchChain = _classPrivateMethodGet(this, _switchChain, _switchChain2);
97
- return {
98
- account,
99
- chain: {
100
- id,
101
- unsupported
102
- },
103
- provider: new providers.Web3Provider(provider)
104
- };
105
- } catch (error) {
106
- if (/user closed modal/i.test(error.message)) throw new UserRejectedRequestError(error);
107
- throw error;
108
- }
109
- }
110
-
111
- async disconnect() {
112
- const provider = await this.getProvider();
113
- await provider.disconnect();
114
- provider.removeListener('accountsChanged', this.onAccountsChanged);
115
- provider.removeListener('chainChanged', this.onChainChanged);
116
- provider.removeListener('disconnect', this.onDisconnect);
117
- typeof localStorage !== 'undefined' && localStorage.removeItem('walletconnect');
118
- }
119
-
120
- async getAccount() {
121
- const provider = await this.getProvider();
122
- const accounts = provider.accounts; // return checksum address
123
-
124
- return getAddress(accounts[0]);
125
- }
126
-
127
- async getChainId() {
128
- const provider = await this.getProvider();
129
- const chainId = normalizeChainId(provider.chainId);
130
- return chainId;
131
- }
132
-
133
- async getProvider() {
134
- let {
135
- chainId,
136
- create
137
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
138
-
139
- // Force create new provider
140
- if (!_classPrivateFieldGet(this, _provider) || chainId || create) {
141
- var _this$options, _this$options2;
142
-
143
- const rpc = !((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.infuraId) ? this.chains.reduce((rpc, chain) => ({ ...rpc,
144
- [chain.id]: chain.rpcUrls.default
145
- }), {}) : {};
146
- const WalletConnectProvider = (await import('@walletconnect/ethereum-provider')).default;
147
-
148
- _classPrivateFieldSet(this, _provider, new WalletConnectProvider({ ...this.options,
149
- chainId,
150
- rpc: { ...rpc,
151
- ...((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.rpc)
152
- }
153
- }));
154
- }
155
-
156
- return _classPrivateFieldGet(this, _provider);
157
- }
158
-
159
- async getSigner() {
160
- let {
161
- chainId
162
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
163
- const [provider, account] = await Promise.all([this.getProvider({
164
- chainId
165
- }), this.getAccount()]);
166
- return new providers.Web3Provider(provider, chainId).getSigner(account);
167
- }
168
-
169
- async isAuthorized() {
170
- try {
171
- const account = await this.getAccount();
172
- return !!account;
173
- } catch {
174
- return false;
175
- }
176
- }
177
-
178
- }
179
-
180
- async function _switchChain2(chainId) {
181
- const provider = await this.getProvider();
182
- const id = hexValue(chainId);
183
-
184
- try {
185
- await provider.request({
186
- method: 'wallet_switchEthereumChain',
187
- params: [{
188
- chainId: id
189
- }]
190
- });
191
- return this.chains.find(x => x.id === chainId) ?? {
192
- id: chainId,
193
- name: `Chain ${id}`,
194
- network: `${id}`,
195
- rpcUrls: {
196
- default: ''
197
- }
198
- };
199
- } catch (error) {
200
- const message = typeof error === 'string' ? error : error === null || error === void 0 ? void 0 : error.message;
201
- if (/user rejected request/i.test(message)) throw new UserRejectedRequestError(error);
202
- throw new SwitchChainError(error);
203
- }
204
- }
205
-
206
- export { WalletConnectConnector };