@wagmi/core 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +2 -4
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +2 -4
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +3 -5
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.d.ts +1 -0
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +62 -0
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.js +7 -0
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +62 -0
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +58 -0
- package/connectors/metaMask/package.json +4 -0
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +2 -2
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +2 -2
- package/dist/{base-d5bbf720.esm.js → base-159de546.esm.js} +1 -1
- package/dist/{classPrivateMethodGet-93a70bfd.esm.js → classPrivateMethodGet-55c9909f.esm.js} +1 -1
- package/dist/client-4d8337e7.cjs.prod.js +606 -0
- package/dist/client-5d456446.esm.js +595 -0
- package/dist/client-f77a08e4.cjs.dev.js +606 -0
- package/dist/declarations/src/actions/contracts/readContract.d.ts +1 -1
- package/dist/declarations/src/connectors/coinbaseWallet.d.ts +1 -1
- package/dist/declarations/src/connectors/injected.d.ts +4 -3
- package/dist/declarations/src/connectors/metaMask.d.ts +13 -0
- package/dist/declarations/src/types/index.d.ts +17 -1
- package/dist/declarations/src/utils/getInjectedName.d.ts +1 -1
- package/dist/declarations/src/utils/index.d.ts +1 -0
- package/dist/declarations/src/utils/warn.d.ts +1 -0
- package/dist/wagmi-core.cjs.dev.js +63 -612
- package/dist/wagmi-core.cjs.prod.js +63 -612
- package/dist/wagmi-core.esm.js +10 -554
- package/package.json +10 -7
package/dist/wagmi-core.esm.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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-5d456446.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-5d456446.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 './classPrivateMethodGet-55c9909f.esm.js';
|
|
8
|
+
import 'ethers';
|
|
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
|
|
@@ -16,552 +18,6 @@ const erc721ABI = ['event Approval(address indexed _owner, address indexed _appr
|
|
|
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
|
|
@@ -1134,4 +590,4 @@ async function waitForTransaction(_ref) {
|
|
|
1134
590
|
return await promise;
|
|
1135
591
|
}
|
|
1136
592
|
|
|
1137
|
-
export {
|
|
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.
|
|
5
|
+
"version": "0.2.2",
|
|
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
|
|
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.
|
|
63
|
+
"zustand": "^4.0.0-rc.1"
|
|
61
64
|
},
|
|
62
65
|
"devDependencies": {
|
|
63
|
-
"@coinbase/wallet-sdk": "^3.0.
|
|
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": [
|