@wagmi/core 0.2.1 → 0.2.4

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 (47) hide show
  1. package/README.md +2 -2
  2. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +2 -4
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +2 -4
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +3 -5
  5. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.d.ts +1 -0
  6. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +63 -0
  7. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.js +7 -0
  8. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +63 -0
  9. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +59 -0
  10. package/connectors/metaMask/package.json +4 -0
  11. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +2 -2
  12. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +1 -1
  13. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +1 -1
  14. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +3 -3
  15. package/dist/{base-d5bbf720.esm.js → base-159de546.esm.js} +1 -1
  16. package/dist/{classPrivateMethodGet-93a70bfd.esm.js → classPrivateMethodGet-55c9909f.esm.js} +1 -1
  17. package/dist/client-65157905.cjs.dev.js +607 -0
  18. package/dist/client-7fcff803.esm.js +596 -0
  19. package/dist/client-a06853e2.cjs.prod.js +607 -0
  20. package/dist/declarations/src/actions/accounts/connect.d.ts +4 -4
  21. package/dist/declarations/src/actions/accounts/getAccount.d.ts +3 -3
  22. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -3
  23. package/dist/declarations/src/actions/contracts/getContract.d.ts +2 -3
  24. package/dist/declarations/src/actions/contracts/readContract.d.ts +1 -1
  25. package/dist/declarations/src/actions/contracts/writeContract.d.ts +2 -3
  26. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +2 -2
  27. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +2 -2
  28. package/dist/declarations/src/actions/providers/getProvider.d.ts +3 -3
  29. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +3 -3
  30. package/dist/declarations/src/actions/providers/watchProvider.d.ts +3 -3
  31. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +3 -3
  32. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +3 -3
  33. package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +3 -3
  34. package/dist/declarations/src/client.d.ts +8 -8
  35. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +1 -1
  36. package/dist/declarations/src/connectors/injected.d.ts +4 -3
  37. package/dist/declarations/src/connectors/metaMask.d.ts +13 -0
  38. package/dist/declarations/src/connectors/mock/provider.d.ts +5 -7
  39. package/dist/declarations/src/connectors/walletConnect.d.ts +4 -3
  40. package/dist/declarations/src/types/index.d.ts +18 -1
  41. package/dist/declarations/src/utils/getInjectedName.d.ts +1 -1
  42. package/dist/declarations/src/utils/index.d.ts +1 -0
  43. package/dist/declarations/src/utils/warn.d.ts +1 -0
  44. package/dist/wagmi-core.cjs.dev.js +63 -612
  45. package/dist/wagmi-core.cjs.prod.js +63 -612
  46. package/dist/wagmi-core.esm.js +12 -556
  47. package/package.json +11 -8
@@ -1,567 +1,23 @@
1
- import { _ as _classPrivateMethodInitSpec, a as _classPrivateMethodGet } from './classPrivateMethodGet-93a70bfd.esm.js';
2
- import { C as Connector, _ as _defineProperty, a as _classPrivateFieldInitSpec, n as normalizeChainId, b as ConnectorNotFoundError, U as UserRejectedRequestError, c as _classPrivateFieldSet, d as _classPrivateFieldGet, e as allChains, f as ChainNotConfiguredError, A as AddChainError, S as SwitchChainError, g as ConnectorAlreadyConnectedError, h as SwitchChainNotSupportedError } from './base-d5bbf720.esm.js';
3
- export { A as AddChainError, f as ChainNotConfiguredError, C as Connector, g as ConnectorAlreadyConnectedError, b as ConnectorNotFoundError, S as SwitchChainError, h as SwitchChainNotSupportedError, U as UserRejectedRequestError, i as alchemyRpcUrls, e as allChains, j as chain, k as chainId, l as defaultChains, m as defaultL2Chains, o as etherscanBlockExplorers, p as infuraRpcUrls, n as normalizeChainId } from './base-d5bbf720.esm.js';
4
- import { providers, getDefaultProvider } from 'ethers';
5
- import create from 'zustand/vanilla';
6
- import { subscribeWithSelector, persist } from 'zustand/middleware';
7
- import { getAddress, hexValue, formatUnits } from 'ethers/lib/utils';
1
+ import { c as client, g as getClient } from './client-7fcff803.esm.js';
2
+ export { C as Client, I as InjectedConnector, C as WagmiClient, a as createClient, b as createStorage, a as createWagmiClient, b as createWagmiStorage, n as noopStorage } from './client-7fcff803.esm.js';
3
+ import { C as ConnectorAlreadyConnectedError, a as allChains, b as ConnectorNotFoundError, U as UserRejectedRequestError, S as SwitchChainNotSupportedError } from './base-159de546.esm.js';
4
+ export { A as AddChainError, k as ChainNotConfiguredError, c as Connector, C as ConnectorAlreadyConnectedError, b as ConnectorNotFoundError, l as SwitchChainError, S as SwitchChainNotSupportedError, U as UserRejectedRequestError, d as alchemyRpcUrls, a as allChains, e as chain, f as chainId, g as defaultChains, h as defaultL2Chains, i as etherscanBlockExplorers, j as infuraRpcUrls, n as normalizeChainId } from './base-159de546.esm.js';
8
5
  import { Contract } from 'ethers/lib/ethers';
6
+ import { formatUnits, getAddress } from 'ethers/lib/utils';
7
+ import { Contract as Contract$1 } from 'ethers';
8
+ import './classPrivateMethodGet-55c9909f.esm.js';
9
+ import 'zustand/vanilla';
10
+ import 'zustand/middleware';
9
11
  import 'eventemitter3';
10
12
 
11
13
  // https://ethereum.org/en/developers/docs/standards/tokens/erc-20
12
14
  const erc20ABI = ['event Approval(address indexed _owner, address indexed _spender, uint256 _value)', 'event Transfer(address indexed _from, address indexed _to, uint256 _value)', 'function allowance(address _owner, address _spender) public view returns (uint256 remaining)', 'function approve(address _spender, uint256 _value) public returns (bool success)', 'function balanceOf(address _owner) public view returns (uint256 balance)', 'function decimals() public view returns (uint8)', 'function name() public view returns (string)', 'function symbol() public view returns (string)', 'function totalSupply() public view returns (uint256)', 'function transfer(address _to, uint256 _value) public returns (bool success)', 'function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)']; // https://ethereum.org/en/developers/docs/standards/tokens/erc-721
13
15
 
14
- const erc721ABI = ['event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);', 'event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);', 'event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);', 'function approve(address _approved, uint256 _tokenId) external payable;', 'function balanceOf(address _owner) external view returns (uint256);', 'function getApproved(uint256 _tokenId) external view returns (address);', 'function isApprovedForAll(address _owner, address _operator) external view returns (bool);', 'function name() view returns (string memory)', 'function ownerOf(uint256 _tokenId) external view returns (address);', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;', 'function setApprovalForAll(address _operator, bool _approved) external;', 'function symbol() view returns (string memory)', 'function tokenByIndex(uint256 _index) view returns (uint256)', 'function tokenOfOwnerByIndex(address _owner, uint256 _index) view returns (uint256 tokenId)', 'function tokenURI(uint256 _tokenId) view returns (string memory)', 'function totalSupply() view returns (uint256)', 'function transferFrom(address _from, address _to, uint256 _tokenId) external payable;'];
16
+ const erc721ABI = ['event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId)', 'event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved)', 'event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId)', 'function approve(address _approved, uint256 _tokenId) external payable', 'function balanceOf(address _owner) external view returns (uint256)', 'function getApproved(uint256 _tokenId) external view returns (address)', 'function isApprovedForAll(address _owner, address _operator) external view returns (bool)', 'function name() view returns (string memory)', 'function ownerOf(uint256 _tokenId) external view returns (address)', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable', 'function setApprovalForAll(address _operator, bool _approved) external', 'function symbol() view returns (string memory)', 'function tokenByIndex(uint256 _index) view returns (uint256)', 'function tokenOfOwnerByIndex(address _owner, uint256 _index) view returns (uint256 tokenId)', 'function tokenURI(uint256 _tokenId) view returns (string memory)', 'function totalSupply() view returns (uint256)', 'function transferFrom(address _from, address _to, uint256 _tokenId) external payable'];
15
17
 
16
18
  // https://github.com/ethers-io/ethers.js/blob/master/packages/units/src.ts/index.ts#L10-L18
17
19
  const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
18
20
 
19
- const injectedProvidersLookup = {
20
- isMetaMask: 'MetaMask',
21
- // Place other options below in alphabetical order
22
- isBraveWallet: 'Brave Wallet',
23
- isCoinbaseWallet: 'Coinbase Wallet',
24
- isFrame: 'Frame',
25
- isTally: 'Tally'
26
- };
27
- const injectedOptions = Object.entries(injectedProvidersLookup);
28
- function getInjectedName(ethereum) {
29
- if (!ethereum) return 'Injected';
30
-
31
- for (const [key, val] of injectedOptions) {
32
- if (ethereum[key]) return val;
33
- }
34
-
35
- return 'Injected';
36
- }
37
-
38
- const shimKey = 'injected.shimDisconnect';
39
-
40
- var _provider = /*#__PURE__*/new WeakMap();
41
-
42
- class InjectedConnector extends Connector {
43
- constructor(config) {
44
- super({ ...config,
45
- options: {
46
- shimDisconnect: true,
47
- ...(config === null || config === void 0 ? void 0 : config.options)
48
- }
49
- });
50
-
51
- _defineProperty(this, "id", 'injected');
52
-
53
- _defineProperty(this, "name", void 0);
54
-
55
- _defineProperty(this, "ready", typeof window != 'undefined' && !!window.ethereum);
56
-
57
- _classPrivateFieldInitSpec(this, _provider, {
58
- writable: true,
59
- value: void 0
60
- });
61
-
62
- _defineProperty(this, "onAccountsChanged", accounts => {
63
- if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
64
- account: getAddress(accounts[0])
65
- });
66
- });
67
-
68
- _defineProperty(this, "onChainChanged", chainId => {
69
- const id = normalizeChainId(chainId);
70
- const unsupported = this.isChainUnsupported(id);
71
- this.emit('change', {
72
- chain: {
73
- id,
74
- unsupported
75
- }
76
- });
77
- });
78
-
79
- _defineProperty(this, "onDisconnect", () => {
80
- var _this$options, _getClient$storage;
81
-
82
- this.emit('disconnect');
83
- if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) (_getClient$storage = getClient().storage) === null || _getClient$storage === void 0 ? void 0 : _getClient$storage.removeItem(shimKey);
84
- });
85
-
86
- let name = 'Injected';
87
- if (typeof window !== 'undefined') name = getInjectedName(window.ethereum);
88
- this.name = name;
89
- }
90
-
91
- async connect() {
92
- try {
93
- var _this$options2, _getClient$storage2;
94
-
95
- const provider = await this.getProvider();
96
- if (!provider) throw new ConnectorNotFoundError();
97
-
98
- if (provider.on) {
99
- provider.on('accountsChanged', this.onAccountsChanged);
100
- provider.on('chainChanged', this.onChainChanged);
101
- provider.on('disconnect', this.onDisconnect);
102
- }
103
-
104
- this.emit('message', {
105
- type: 'connecting'
106
- });
107
- const account = await this.getAccount();
108
- const id = await this.getChainId();
109
- const unsupported = this.isChainUnsupported(id);
110
- if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.shimDisconnect) (_getClient$storage2 = getClient().storage) === null || _getClient$storage2 === void 0 ? void 0 : _getClient$storage2.setItem(shimKey, true);
111
- return {
112
- account,
113
- chain: {
114
- id,
115
- unsupported
116
- },
117
- provider
118
- };
119
- } catch (error) {
120
- if (error.code === 4001) throw new UserRejectedRequestError();
121
- throw error;
122
- }
123
- }
124
-
125
- async disconnect() {
126
- var _this$options3, _getClient$storage3;
127
-
128
- const provider = await this.getProvider();
129
- if (!(provider !== null && provider !== void 0 && provider.removeListener)) return;
130
- provider.removeListener('accountsChanged', this.onAccountsChanged);
131
- provider.removeListener('chainChanged', this.onChainChanged);
132
- provider.removeListener('disconnect', this.onDisconnect);
133
- if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.shimDisconnect) (_getClient$storage3 = getClient().storage) === null || _getClient$storage3 === void 0 ? void 0 : _getClient$storage3.removeItem(shimKey);
134
- }
135
-
136
- async getAccount() {
137
- const provider = await this.getProvider();
138
- if (!provider) throw new ConnectorNotFoundError();
139
- const accounts = await provider.request({
140
- method: 'eth_requestAccounts'
141
- }); // return checksum address
142
-
143
- return getAddress(accounts[0]);
144
- }
145
-
146
- async getChainId() {
147
- const provider = await this.getProvider();
148
- if (!provider) throw new ConnectorNotFoundError();
149
- return await provider.request({
150
- method: 'eth_chainId'
151
- }).then(normalizeChainId);
152
- }
153
-
154
- async getProvider() {
155
- if (typeof window !== 'undefined' && !!window.ethereum) _classPrivateFieldSet(this, _provider, window.ethereum);
156
- return _classPrivateFieldGet(this, _provider);
157
- }
158
-
159
- async getSigner() {
160
- const [provider, account] = await Promise.all([this.getProvider(), this.getAccount()]);
161
- return new providers.Web3Provider(provider).getSigner(account);
162
- }
163
-
164
- async isAuthorized() {
165
- try {
166
- var _this$options4, _getClient$storage4;
167
-
168
- if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.shimDisconnect && !((_getClient$storage4 = getClient().storage) !== null && _getClient$storage4 !== void 0 && _getClient$storage4.getItem(shimKey))) return false;
169
- const provider = await this.getProvider();
170
- if (!provider) throw new ConnectorNotFoundError();
171
- const accounts = await provider.request({
172
- method: 'eth_accounts'
173
- });
174
- const account = accounts[0];
175
- return !!account;
176
- } catch {
177
- return false;
178
- }
179
- }
180
-
181
- async switchChain(chainId) {
182
- const provider = await this.getProvider();
183
- if (!provider) throw new ConnectorNotFoundError();
184
- const id = hexValue(chainId);
185
-
186
- try {
187
- var _chains$find;
188
-
189
- await provider.request({
190
- method: 'wallet_switchEthereumChain',
191
- params: [{
192
- chainId: id
193
- }]
194
- });
195
- const chains = [...this.chains, ...allChains];
196
- return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
197
- id: chainId,
198
- name: "Chain ".concat(id),
199
- rpcUrls: {
200
- default: ''
201
- }
202
- };
203
- } catch (error) {
204
- // Indicates chain is not added to provider
205
- if (error.code === 4902) {
206
- try {
207
- const chain = this.chains.find(x => x.id === chainId);
208
- if (!chain) throw new ChainNotConfiguredError();
209
- await provider.request({
210
- method: 'wallet_addEthereumChain',
211
- params: [{
212
- chainId: id,
213
- chainName: chain.name,
214
- nativeCurrency: chain.nativeCurrency,
215
- rpcUrls: [chain.rpcUrls.default],
216
- blockExplorerUrls: this.getBlockExplorerUrls(chain)
217
- }]
218
- });
219
- return chain;
220
- } catch (addError) {
221
- throw new AddChainError();
222
- }
223
- } else if (error.code === 4001) throw new UserRejectedRequestError();else throw new SwitchChainError();
224
- }
225
- }
226
-
227
- async watchAsset(_ref) {
228
- let {
229
- address,
230
- decimals = 18,
231
- image,
232
- symbol
233
- } = _ref;
234
- const provider = await this.getProvider();
235
- if (!provider) throw new ConnectorNotFoundError();
236
- return await provider.request({
237
- method: 'wallet_watchAsset',
238
- params: {
239
- type: 'ERC20',
240
- options: {
241
- address,
242
- decimals,
243
- image,
244
- symbol
245
- }
246
- }
247
- });
248
- }
249
-
250
- }
251
-
252
- const noopStorage = {
253
- getItem: _key => '',
254
- setItem: (_key, _value) => null,
255
- removeItem: _key => null
256
- };
257
- function createStorage(_ref) {
258
- let {
259
- storage,
260
- key: prefix = 'wagmi'
261
- } = _ref;
262
- return { ...storage,
263
- getItem: function (key) {
264
- let defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
265
- const value = storage.getItem("".concat(prefix, ".").concat(key));
266
-
267
- try {
268
- return value ? JSON.parse(value) : defaultState;
269
- } catch (error) {
270
- console.warn(error);
271
- return defaultState;
272
- }
273
- },
274
- setItem: (key, value) => {
275
- if (value === null) {
276
- storage.removeItem("".concat(prefix, ".").concat(key));
277
- } else {
278
- try {
279
- storage.setItem("".concat(prefix, ".").concat(key), JSON.stringify(value));
280
- } catch (err) {
281
- console.error(err);
282
- }
283
- }
284
- },
285
- removeItem: key => storage.removeItem("".concat(prefix, ".").concat(key))
286
- };
287
- }
288
-
289
- const storeKey = 'store';
290
-
291
- var _lastUsedConnector = /*#__PURE__*/new WeakMap();
292
-
293
- var _addEffects = /*#__PURE__*/new WeakSet();
294
-
295
- class Client {
296
- constructor() {
297
- var _config$autoConnect, _config$connectors, _config$provider, _config$storage;
298
-
299
- let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
300
-
301
- _classPrivateMethodInitSpec(this, _addEffects);
302
-
303
- _defineProperty(this, "config", void 0);
304
-
305
- _defineProperty(this, "storage", void 0);
306
-
307
- _defineProperty(this, "store", void 0);
308
-
309
- _classPrivateFieldInitSpec(this, _lastUsedConnector, {
310
- writable: true,
311
- value: void 0
312
- });
313
-
314
- // Set default values for config
315
- const autoConnect = (_config$autoConnect = config.autoConnect) !== null && _config$autoConnect !== void 0 ? _config$autoConnect : false;
316
-
317
- const _connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
318
-
319
- const _provider = (_config$provider = config.provider) !== null && _config$provider !== void 0 ? _config$provider : config => {
320
- try {
321
- return getDefaultProvider(config.chainId);
322
- } catch {
323
- return getDefaultProvider();
324
- }
325
- };
326
-
327
- const storage = (_config$storage = config.storage) !== null && _config$storage !== void 0 ? _config$storage : createStorage({
328
- storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
329
- });
330
- const _webSocketProvider = config.webSocketProvider; // Check status for autoConnect flag
331
-
332
- let status = 'disconnected';
333
-
334
- let _chainId;
335
-
336
- if (autoConnect) {
337
- try {
338
- var _JSON$parse, _JSON$parse$state, _data$chain;
339
-
340
- const rawState = storage.getItem(storeKey, '');
341
- 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
342
-
343
- status = data !== null && data !== void 0 && data.account ? 'reconnecting' : 'connecting';
344
- _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
345
- } catch (_error) {}
346
- } // Evaluate initial store values
347
-
348
-
349
- const connectors_ = typeof _connectors === 'function' ? _connectors({
350
- chainId: _chainId
351
- }) : _connectors;
352
- const provider_ = typeof _provider === 'function' ? _provider({
353
- chainId: _chainId
354
- }) : _provider;
355
- const webSocketProvider_ = typeof _webSocketProvider === 'function' ? _webSocketProvider({
356
- chainId: _chainId
357
- }) : _webSocketProvider; // Create store
358
-
359
- this.store = create(subscribeWithSelector(persist(() => ({
360
- connectors: connectors_,
361
- provider: provider_,
362
- status,
363
- webSocketProvider: webSocketProvider_
364
- }), {
365
- name: storeKey,
366
- getStorage: () => storage,
367
- partialize: state => {
368
- var _state$data, _state$data2;
369
-
370
- return { ...(autoConnect && {
371
- data: {
372
- account: state === null || state === void 0 ? void 0 : (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.account,
373
- chain: state === null || state === void 0 ? void 0 : (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.chain
374
- }
375
- }),
376
- chains: state === null || state === void 0 ? void 0 : state.chains
377
- };
378
- },
379
- version: 1
380
- })));
381
- this.config = {
382
- autoConnect,
383
- connectors: _connectors,
384
- provider: _provider,
385
- storage,
386
- webSocketProvider: _webSocketProvider
387
- };
388
- this.storage = storage;
389
-
390
- _classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
391
-
392
- _classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
393
- }
394
-
395
- get chains() {
396
- return this.store.getState().chains;
397
- }
398
-
399
- get connectors() {
400
- return this.store.getState().connectors;
401
- }
402
-
403
- get connector() {
404
- return this.store.getState().connector;
405
- }
406
-
407
- get data() {
408
- return this.store.getState().data;
409
- }
410
-
411
- get error() {
412
- return this.store.getState().error;
413
- }
414
-
415
- get provider() {
416
- return this.store.getState().provider;
417
- }
418
-
419
- get status() {
420
- return this.store.getState().status;
421
- }
422
-
423
- get subscribe() {
424
- return this.store.subscribe;
425
- }
426
-
427
- get webSocketProvider() {
428
- return this.store.getState().webSocketProvider;
429
- }
430
-
431
- setState(updater) {
432
- const newState = typeof updater === 'function' ? updater(this.store.getState()) : updater;
433
- this.store.setState(newState, true);
434
- }
435
-
436
- clearState() {
437
- this.setState(x => ({ ...x,
438
- connector: undefined,
439
- data: undefined,
440
- error: undefined,
441
- status: 'disconnected'
442
- }));
443
- }
444
-
445
- async destroy() {
446
- var _this$connector$disco, _this$connector;
447
-
448
- 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));
449
- this.clearState();
450
- this.store.destroy();
451
- }
452
-
453
- async autoConnect() {
454
- if (!this.connectors.length) return; // Try last used connector first
455
-
456
- const sorted = _classPrivateFieldGet(this, _lastUsedConnector) ? [...this.connectors].sort(x => x.id === _classPrivateFieldGet(this, _lastUsedConnector) ? -1 : 1) : this.connectors;
457
- let connected = false;
458
-
459
- for (const connector of sorted) {
460
- if (!connector.ready || !connector.isAuthorized) continue;
461
- const isAuthorized = await connector.isAuthorized();
462
- if (!isAuthorized) continue;
463
- const data = await connector.connect();
464
- this.setState(x => ({ ...x,
465
- connector,
466
- chains: connector === null || connector === void 0 ? void 0 : connector.chains,
467
- data,
468
- status: 'connected'
469
- }));
470
- connected = true;
471
- break;
472
- } // If connecting didn't succeed, set to disconnected
473
-
474
-
475
- if (!connected) this.setState(x => ({ ...x,
476
- status: 'disconnected'
477
- }));
478
- return this.data;
479
- }
480
-
481
- setLastUsedConnector() {
482
- var _this$storage;
483
-
484
- let lastUsedConnector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
485
- (_this$storage = this.storage) === null || _this$storage === void 0 ? void 0 : _this$storage.setItem('wallet', lastUsedConnector);
486
- }
487
-
488
- }
489
-
490
- function _addEffects2() {
491
- const onChange = data => {
492
- this.setState(x => ({ ...x,
493
- data: { ...x.data,
494
- ...data
495
- }
496
- }));
497
- };
498
-
499
- const onDisconnect = () => {
500
- this.clearState();
501
- };
502
-
503
- const onError = error => {
504
- this.setState(x => ({ ...x,
505
- error
506
- }));
507
- };
508
-
509
- this.store.subscribe(_ref => {
510
- let {
511
- connector
512
- } = _ref;
513
- return connector;
514
- }, (connector, prevConnector) => {
515
- var _prevConnector$off, _prevConnector$off2, _prevConnector$off3, _connector$on, _connector$on2, _connector$on3;
516
-
517
- prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off = prevConnector.off) === null || _prevConnector$off === void 0 ? void 0 : _prevConnector$off.call(prevConnector, 'change', onChange);
518
- prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off2 = prevConnector.off) === null || _prevConnector$off2 === void 0 ? void 0 : _prevConnector$off2.call(prevConnector, 'disconnect', onDisconnect);
519
- prevConnector === null || prevConnector === void 0 ? void 0 : (_prevConnector$off3 = prevConnector.off) === null || _prevConnector$off3 === void 0 ? void 0 : _prevConnector$off3.call(prevConnector, 'error', onError);
520
- if (!connector) return;
521
- (_connector$on = connector.on) === null || _connector$on === void 0 ? void 0 : _connector$on.call(connector, 'change', onChange);
522
- (_connector$on2 = connector.on) === null || _connector$on2 === void 0 ? void 0 : _connector$on2.call(connector, 'disconnect', onDisconnect);
523
- (_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
524
- });
525
- const {
526
- connectors,
527
- provider,
528
- webSocketProvider
529
- } = this.config;
530
- const subscribeConnectors = typeof connectors === 'function';
531
- const subscribeProvider = typeof provider === 'function';
532
- const subscribeWebSocketProvider = typeof webSocketProvider === 'function';
533
- if (subscribeConnectors || subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
534
- var _data$chain2;
535
-
536
- let {
537
- data
538
- } = _ref2;
539
- return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
540
- }, chainId => {
541
- this.setState(x => ({ ...x,
542
- connectors: subscribeConnectors ? connectors({
543
- chainId
544
- }) : x.connectors,
545
- provider: subscribeProvider ? provider({
546
- chainId
547
- }) : x.provider,
548
- webSocketProvider: subscribeWebSocketProvider ? webSocketProvider({
549
- chainId
550
- }) : x.webSocketProvider
551
- }));
552
- });
553
- }
554
-
555
- let client;
556
- function createClient(config) {
557
- const client_ = new Client(config);
558
- client = client_;
559
- return client_;
560
- }
561
- function getClient() {
562
- return client;
563
- }
564
-
565
21
  async function connect(_ref) {
566
22
  let {
567
23
  connector
@@ -825,7 +281,7 @@ function getContract(_ref) {
825
281
  contractInterface,
826
282
  signerOrProvider
827
283
  } = _ref;
828
- return new Contract(addressOrName, contractInterface, signerOrProvider);
284
+ return new Contract$1(addressOrName, contractInterface, signerOrProvider);
829
285
  }
830
286
 
831
287
  async function readContract(contractConfig, functionName) {
@@ -1134,4 +590,4 @@ async function waitForTransaction(_ref) {
1134
590
  return await promise;
1135
591
  }
1136
592
 
1137
- export { Client, InjectedConnector, Client as WagmiClient, connect, createClient, createStorage, createClient as createWagmiClient, createStorage as createWagmiStorage, disconnect, erc20ABI, erc721ABI, fetchBalance, fetchBlockNumber, fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, fetchFeeData, fetchSigner, fetchToken, getAccount, getContract, getNetwork, getProvider, getWebSocketProvider, noopStorage, readContract, sendTransaction, signMessage, signTypedData, switchNetwork, units, waitForTransaction, watchAccount, watchBlockNumber, watchContractEvent, watchNetwork, watchProvider, watchReadContract, watchSigner, watchWebSocketProvider, writeContract };
593
+ export { connect, disconnect, erc20ABI, erc721ABI, fetchBalance, fetchBlockNumber, fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, fetchFeeData, fetchSigner, fetchToken, getAccount, getContract, getNetwork, getProvider, getWebSocketProvider, readContract, sendTransaction, signMessage, signTypedData, switchNetwork, units, waitForTransaction, watchAccount, watchBlockNumber, watchContractEvent, watchNetwork, watchProvider, watchReadContract, watchSigner, watchWebSocketProvider, writeContract };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@wagmi/core",
3
3
  "description": "Vanilla JS library for Ethereum",
4
4
  "license": "WAGMIT",
5
- "version": "0.2.1",
5
+ "version": "0.2.4",
6
6
  "author": "awkweb.eth",
7
7
  "ethereum": "awkweb.eth",
8
8
  "repository": "tmm/wagmi",
@@ -19,6 +19,10 @@
19
19
  "module": "./connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js",
20
20
  "default": "./connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.js"
21
21
  },
22
+ "./connectors/metaMask": {
23
+ "module": "./connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js",
24
+ "default": "./connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.js"
25
+ },
22
26
  "./connectors/mock": {
23
27
  "module": "./connectors/mock/dist/wagmi-core-connectors-mock.esm.js",
24
28
  "default": "./connectors/mock/dist/wagmi-core-connectors-mock.cjs.js"
@@ -30,14 +34,13 @@
30
34
  },
31
35
  "files": [
32
36
  "/dist",
33
- "/connectors/mock/",
34
- "/connectors/walletConnect/",
35
- "/connectors/coinbaseWallet/"
37
+ "/connectors"
36
38
  ],
37
39
  "preconstruct": {
38
40
  "entrypoints": [
39
41
  "index.ts",
40
42
  "connectors/coinbaseWallet.ts",
43
+ "connectors/metaMask.ts",
41
44
  "connectors/walletConnect.ts",
42
45
  "connectors/mock/index.ts"
43
46
  ]
@@ -57,11 +60,11 @@
57
60
  },
58
61
  "dependencies": {
59
62
  "eventemitter3": "^4.0.7",
60
- "zustand": "^4.0.0-rc.0"
63
+ "zustand": "^4.0.0-rc.1"
61
64
  },
62
65
  "devDependencies": {
63
- "@coinbase/wallet-sdk": "^3.0.8",
64
- "@walletconnect/ethereum-provider": "1.7.5",
66
+ "@coinbase/wallet-sdk": "^3.0.11",
67
+ "@walletconnect/ethereum-provider": "^1.7.5",
65
68
  "ethers": "^5.6.4"
66
69
  },
67
70
  "keywords": [
@@ -71,5 +74,5 @@
71
74
  "wallet",
72
75
  "web3"
73
76
  ],
74
- "readme": "# @wagmi/core\n\n## Documentation\n\nFor full documentation and examples, visit [wagmi.sh](https://wagmi.sh).\n\n## Installation\n\nInstall wagmi and its ethers peer dependency.\n\n```bash\nnpm install @wagmi/core ethers\n```\n\n## Community\n\nCheck out the following places for more wagmi-related content:\n\n- Join the [discussions on GitHub](https://github.com/tmm/wagmi/discussions)\n- Follow [@awkweb](https://twitter.com/awkweb) on Twitter for project updates\n- Sign the [guestbook](https://github.com/tmm/wagmi/discussions/2)\n- Share [your project/organization](https://github.com/tmm/wagmi/discussions/201) using wagmi\n\n## Support\n\nIf you find wagmi useful, please consider supporting development. Thank you 🙏\n\n- [awkweb.eth](https://etherscan.io/enslookup-search?search=awkweb.eth)\n- [GitHub Sponsors](https://github.com/sponsors/tmm?metadata_campaign=readme_core)\n- [Gitcoin Grant](https://gitcoin.co/grants/4493/wagmi-react-hooks-library-for-ethereum)\n"
77
+ "readme": "# @wagmi/core\n\n## Documentation\n\nFor full documentation and examples, visit [wagmi.sh](https://wagmi.sh).\n\n## Installation\n\nInstall wagmi and its ethers peer dependency.\n\n```bash\nnpm install @wagmi/core ethers\n```\n\n## Community\n\nCheck out the following places for more wagmi-related content:\n\n- Join the [discussions on GitHub](https://github.com/tmm/wagmi/discussions)\n- Follow [@awkweb](https://twitter.com/awkweb) and [@wagmi_sh](https://twitter.com/wagmi_sh) on Twitter for project updates\n- Sign the [guestbook](https://github.com/tmm/wagmi/discussions/2)\n- Share [your project/organization](https://github.com/tmm/wagmi/discussions/201) using wagmi\n\n## Support\n\nIf you find wagmi useful, please consider supporting development. Thank you 🙏\n\n- [GitHub Sponsors](https://github.com/sponsors/tmm?metadata_campaign=readme_core)\n- [Gitcoin Grant](https://gitcoin.co/grants/4493/wagmi-react-hooks-library-for-ethereum)\n- [awkweb.eth](https://etherscan.io/enslookup-search?search=awkweb.eth)\n"
75
78
  }