@wagmi/core 0.2.0-next.1 → 0.2.0-next.12
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/LICENSE +1 -1
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +135 -151
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +135 -151
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +136 -152
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +96 -153
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +96 -153
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +96 -153
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +91 -124
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +91 -124
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +91 -124
- package/dist/base-83fd83c6.cjs.dev.js +543 -0
- package/dist/base-9b2942ee.cjs.prod.js +543 -0
- package/dist/base-b052e615.esm.js +516 -0
- package/dist/{classPrivateMethodGet-38b54c7a.cjs.dev.js → classPrivateMethodGet-45a38143.cjs.dev.js} +1 -1
- package/dist/{classPrivateMethodGet-c9db96d6.esm.js → classPrivateMethodGet-7c370e43.esm.js} +1 -1
- package/dist/{classPrivateMethodGet-0e9a7925.cjs.prod.js → classPrivateMethodGet-a1e1a4aa.cjs.prod.js} +1 -1
- package/dist/declarations/src/actions/accounts/connect.d.ts +14 -5
- package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +3 -1
- package/dist/declarations/src/actions/accounts/getAccount.d.ts +5 -4
- package/dist/declarations/src/actions/accounts/index.d.ts +1 -1
- package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +1 -1
- package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -2
- package/dist/declarations/src/actions/contracts/readContract.d.ts +4 -1
- package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +3 -1
- package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +3 -1
- package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +3 -1
- package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +3 -1
- package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +3 -1
- package/dist/declarations/src/actions/index.d.ts +3 -3
- package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +4 -1
- package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +3 -1
- package/dist/declarations/src/actions/network-status/index.d.ts +1 -1
- package/dist/declarations/src/actions/providers/getProvider.d.ts +6 -2
- package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +6 -2
- package/dist/declarations/src/actions/providers/index.d.ts +2 -2
- package/dist/declarations/src/actions/providers/watchProvider.d.ts +3 -2
- package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +3 -2
- package/dist/declarations/src/actions/tokens/fetchToken.d.ts +6 -10
- package/dist/declarations/src/client.d.ts +25 -22
- package/dist/declarations/src/connectors/base.d.ts +7 -1
- package/dist/declarations/src/connectors/coinbaseWallet.d.ts +9 -0
- package/dist/declarations/src/connectors/injected.d.ts +2 -10
- package/dist/declarations/src/constants/abis.d.ts +2 -0
- package/dist/declarations/src/constants/blockExplorers.d.ts +9 -0
- package/dist/declarations/src/constants/chains.d.ts +17 -6
- package/dist/declarations/src/constants/index.d.ts +6 -2
- package/dist/declarations/src/constants/keys.d.ts +2 -0
- package/dist/declarations/src/constants/rpcs.d.ts +7 -0
- package/dist/declarations/src/index.d.ts +8 -5
- package/dist/declarations/src/types/index.d.ts +75 -6
- package/dist/declarations/src/utils/getInjectedName.d.ts +1 -1
- package/dist/wagmi-core.cjs.dev.js +659 -1068
- package/dist/wagmi-core.cjs.prod.js +659 -1068
- package/dist/wagmi-core.esm.js +656 -1069
- package/package.json +3 -4
- package/dist/base-09a653f3.cjs.dev.js +0 -453
- package/dist/base-824c3b6d.esm.js +0 -430
- package/dist/base-d8123d5f.cjs.prod.js +0 -453
- package/dist/declarations/src/constants/abis/erc1155.d.ts +0 -17
- package/dist/declarations/src/constants/abis/erc20.d.ts +0 -38
- package/dist/declarations/src/constants/abis/erc721.d.ts +0 -15
- package/dist/declarations/src/constants/abis/index.d.ts +0 -3
- package/dist/declarations/src/types/declarations.d.ts +0 -52
package/dist/wagmi-core.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { _ as
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { _ as _classPrivateMethodInitSpec, a as _classPrivateMethodGet } from './classPrivateMethodGet-7c370e43.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-b052e615.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-b052e615.esm.js';
|
|
4
4
|
import { providers, getDefaultProvider } from 'ethers';
|
|
5
5
|
import create from 'zustand/vanilla';
|
|
6
6
|
import { subscribeWithSelector, persist } from 'zustand/middleware';
|
|
@@ -8,292 +8,45 @@ import { getAddress, hexValue, formatUnits } from 'ethers/lib/utils';
|
|
|
8
8
|
import { Contract } from 'ethers/lib/ethers';
|
|
9
9
|
import 'eventemitter3';
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
// https://ethereum.org/en/developers/docs/standards/tokens/erc-20
|
|
12
|
+
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
13
|
|
|
14
|
-
|
|
15
|
-
var symbols = Object.getOwnPropertySymbols(object);
|
|
16
|
-
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
17
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
18
|
-
})), keys.push.apply(keys, symbols);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return keys;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function _objectSpread2(target) {
|
|
25
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
26
|
-
var source = null != arguments[i] ? arguments[i] : {};
|
|
27
|
-
i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
28
|
-
_defineProperty(target, key, source[key]);
|
|
29
|
-
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
|
|
30
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return target;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
var erc1155ABI = [{
|
|
38
|
-
constant: true,
|
|
39
|
-
inputs: [{
|
|
40
|
-
internalType: 'address',
|
|
41
|
-
name: '_owner',
|
|
42
|
-
type: 'address'
|
|
43
|
-
}, {
|
|
44
|
-
internalType: 'uint256',
|
|
45
|
-
name: '_id',
|
|
46
|
-
type: 'uint256'
|
|
47
|
-
}],
|
|
48
|
-
name: 'balanceOf',
|
|
49
|
-
outputs: [{
|
|
50
|
-
internalType: 'uint256',
|
|
51
|
-
name: '',
|
|
52
|
-
type: 'uint256'
|
|
53
|
-
}],
|
|
54
|
-
payable: false,
|
|
55
|
-
stateMutability: 'view',
|
|
56
|
-
type: 'function'
|
|
57
|
-
}, {
|
|
58
|
-
constant: true,
|
|
59
|
-
inputs: [{
|
|
60
|
-
internalType: 'uint256',
|
|
61
|
-
name: '_id',
|
|
62
|
-
type: 'uint256'
|
|
63
|
-
}],
|
|
64
|
-
name: 'uri',
|
|
65
|
-
outputs: [{
|
|
66
|
-
internalType: 'string',
|
|
67
|
-
name: '',
|
|
68
|
-
type: 'string'
|
|
69
|
-
}],
|
|
70
|
-
payable: false,
|
|
71
|
-
stateMutability: 'view',
|
|
72
|
-
type: 'function'
|
|
73
|
-
}];
|
|
74
|
-
|
|
75
|
-
var erc20ABI = [{
|
|
76
|
-
constant: true,
|
|
77
|
-
inputs: [],
|
|
78
|
-
name: 'name',
|
|
79
|
-
outputs: [{
|
|
80
|
-
name: '',
|
|
81
|
-
type: 'string'
|
|
82
|
-
}],
|
|
83
|
-
payable: false,
|
|
84
|
-
stateMutability: 'view',
|
|
85
|
-
type: 'function'
|
|
86
|
-
}, {
|
|
87
|
-
constant: false,
|
|
88
|
-
inputs: [{
|
|
89
|
-
name: '_spender',
|
|
90
|
-
type: 'address'
|
|
91
|
-
}, {
|
|
92
|
-
name: '_value',
|
|
93
|
-
type: 'uint256'
|
|
94
|
-
}],
|
|
95
|
-
name: 'approve',
|
|
96
|
-
outputs: [{
|
|
97
|
-
name: '',
|
|
98
|
-
type: 'bool'
|
|
99
|
-
}],
|
|
100
|
-
payable: false,
|
|
101
|
-
stateMutability: 'nonpayable',
|
|
102
|
-
type: 'function'
|
|
103
|
-
}, {
|
|
104
|
-
constant: true,
|
|
105
|
-
inputs: [],
|
|
106
|
-
name: 'totalSupply',
|
|
107
|
-
outputs: [{
|
|
108
|
-
name: '',
|
|
109
|
-
type: 'uint256'
|
|
110
|
-
}],
|
|
111
|
-
payable: false,
|
|
112
|
-
stateMutability: 'view',
|
|
113
|
-
type: 'function'
|
|
114
|
-
}, {
|
|
115
|
-
constant: false,
|
|
116
|
-
inputs: [{
|
|
117
|
-
name: '_from',
|
|
118
|
-
type: 'address'
|
|
119
|
-
}, {
|
|
120
|
-
name: '_to',
|
|
121
|
-
type: 'address'
|
|
122
|
-
}, {
|
|
123
|
-
name: '_value',
|
|
124
|
-
type: 'uint256'
|
|
125
|
-
}],
|
|
126
|
-
name: 'transferFrom',
|
|
127
|
-
outputs: [{
|
|
128
|
-
name: '',
|
|
129
|
-
type: 'bool'
|
|
130
|
-
}],
|
|
131
|
-
payable: false,
|
|
132
|
-
stateMutability: 'nonpayable',
|
|
133
|
-
type: 'function'
|
|
134
|
-
}, {
|
|
135
|
-
constant: true,
|
|
136
|
-
inputs: [],
|
|
137
|
-
name: 'decimals',
|
|
138
|
-
outputs: [{
|
|
139
|
-
name: '',
|
|
140
|
-
type: 'uint8'
|
|
141
|
-
}],
|
|
142
|
-
payable: false,
|
|
143
|
-
stateMutability: 'view',
|
|
144
|
-
type: 'function'
|
|
145
|
-
}, {
|
|
146
|
-
constant: true,
|
|
147
|
-
inputs: [{
|
|
148
|
-
name: '_owner',
|
|
149
|
-
type: 'address'
|
|
150
|
-
}],
|
|
151
|
-
name: 'balanceOf',
|
|
152
|
-
outputs: [{
|
|
153
|
-
name: 'balance',
|
|
154
|
-
type: 'uint256'
|
|
155
|
-
}],
|
|
156
|
-
payable: false,
|
|
157
|
-
stateMutability: 'view',
|
|
158
|
-
type: 'function'
|
|
159
|
-
}, {
|
|
160
|
-
constant: true,
|
|
161
|
-
inputs: [],
|
|
162
|
-
name: 'symbol',
|
|
163
|
-
outputs: [{
|
|
164
|
-
name: '',
|
|
165
|
-
type: 'string'
|
|
166
|
-
}],
|
|
167
|
-
payable: false,
|
|
168
|
-
stateMutability: 'view',
|
|
169
|
-
type: 'function'
|
|
170
|
-
}, {
|
|
171
|
-
constant: false,
|
|
172
|
-
inputs: [{
|
|
173
|
-
name: '_to',
|
|
174
|
-
type: 'address'
|
|
175
|
-
}, {
|
|
176
|
-
name: '_value',
|
|
177
|
-
type: 'uint256'
|
|
178
|
-
}],
|
|
179
|
-
name: 'transfer',
|
|
180
|
-
outputs: [{
|
|
181
|
-
name: '',
|
|
182
|
-
type: 'bool'
|
|
183
|
-
}],
|
|
184
|
-
payable: false,
|
|
185
|
-
stateMutability: 'nonpayable',
|
|
186
|
-
type: 'function'
|
|
187
|
-
}, {
|
|
188
|
-
constant: true,
|
|
189
|
-
inputs: [{
|
|
190
|
-
name: '_owner',
|
|
191
|
-
type: 'address'
|
|
192
|
-
}, {
|
|
193
|
-
name: '_spender',
|
|
194
|
-
type: 'address'
|
|
195
|
-
}],
|
|
196
|
-
name: 'allowance',
|
|
197
|
-
outputs: [{
|
|
198
|
-
name: '',
|
|
199
|
-
type: 'uint256'
|
|
200
|
-
}],
|
|
201
|
-
payable: false,
|
|
202
|
-
stateMutability: 'view',
|
|
203
|
-
type: 'function'
|
|
204
|
-
}, {
|
|
205
|
-
payable: true,
|
|
206
|
-
stateMutability: 'payable',
|
|
207
|
-
type: 'fallback'
|
|
208
|
-
}, {
|
|
209
|
-
anonymous: false,
|
|
210
|
-
inputs: [{
|
|
211
|
-
indexed: true,
|
|
212
|
-
name: 'owner',
|
|
213
|
-
type: 'address'
|
|
214
|
-
}, {
|
|
215
|
-
indexed: true,
|
|
216
|
-
name: 'spender',
|
|
217
|
-
type: 'address'
|
|
218
|
-
}, {
|
|
219
|
-
indexed: false,
|
|
220
|
-
name: 'value',
|
|
221
|
-
type: 'uint256'
|
|
222
|
-
}],
|
|
223
|
-
name: 'Approval',
|
|
224
|
-
type: 'event'
|
|
225
|
-
}, {
|
|
226
|
-
anonymous: false,
|
|
227
|
-
inputs: [{
|
|
228
|
-
indexed: true,
|
|
229
|
-
name: 'from',
|
|
230
|
-
type: 'address'
|
|
231
|
-
}, {
|
|
232
|
-
indexed: true,
|
|
233
|
-
name: 'to',
|
|
234
|
-
type: 'address'
|
|
235
|
-
}, {
|
|
236
|
-
indexed: false,
|
|
237
|
-
name: 'value',
|
|
238
|
-
type: 'uint256'
|
|
239
|
-
}],
|
|
240
|
-
name: 'Transfer',
|
|
241
|
-
type: 'event'
|
|
242
|
-
}];
|
|
243
|
-
|
|
244
|
-
var erc721ABI = [{
|
|
245
|
-
inputs: [{
|
|
246
|
-
internalType: 'uint256',
|
|
247
|
-
name: 'tokenId',
|
|
248
|
-
type: 'uint256'
|
|
249
|
-
}],
|
|
250
|
-
name: 'ownerOf',
|
|
251
|
-
outputs: [{
|
|
252
|
-
internalType: 'address',
|
|
253
|
-
name: '',
|
|
254
|
-
type: 'address'
|
|
255
|
-
}],
|
|
256
|
-
stateMutability: 'view',
|
|
257
|
-
type: 'function'
|
|
258
|
-
}, {
|
|
259
|
-
inputs: [{
|
|
260
|
-
internalType: 'uint256',
|
|
261
|
-
name: 'tokenId',
|
|
262
|
-
type: 'uint256'
|
|
263
|
-
}],
|
|
264
|
-
name: 'tokenURI',
|
|
265
|
-
outputs: [{
|
|
266
|
-
internalType: 'string',
|
|
267
|
-
name: '',
|
|
268
|
-
type: 'string'
|
|
269
|
-
}],
|
|
270
|
-
stateMutability: 'view',
|
|
271
|
-
type: 'function'
|
|
272
|
-
}];
|
|
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;'];
|
|
273
15
|
|
|
274
16
|
// https://github.com/ethers-io/ethers.js/blob/master/packages/units/src.ts/index.ts#L10-L18
|
|
275
|
-
|
|
276
|
-
|
|
17
|
+
const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
|
|
18
|
+
|
|
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);
|
|
277
28
|
function getInjectedName(ethereum) {
|
|
278
29
|
if (!ethereum) return 'Injected';
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
30
|
+
|
|
31
|
+
for (const [key, val] of injectedOptions) {
|
|
32
|
+
if (ethereum[key]) return val;
|
|
33
|
+
}
|
|
34
|
+
|
|
283
35
|
return 'Injected';
|
|
284
36
|
}
|
|
285
37
|
|
|
286
|
-
|
|
38
|
+
const shimKey = 'injected.shimDisconnect';
|
|
287
39
|
|
|
288
40
|
var _provider = /*#__PURE__*/new WeakMap();
|
|
289
41
|
|
|
290
42
|
class InjectedConnector extends Connector {
|
|
291
43
|
constructor(config) {
|
|
292
|
-
super(
|
|
293
|
-
options:
|
|
294
|
-
shimDisconnect: true
|
|
295
|
-
|
|
296
|
-
|
|
44
|
+
super({ ...config,
|
|
45
|
+
options: {
|
|
46
|
+
shimDisconnect: true,
|
|
47
|
+
...(config === null || config === void 0 ? void 0 : config.options)
|
|
48
|
+
}
|
|
49
|
+
});
|
|
297
50
|
|
|
298
51
|
_defineProperty(this, "id", 'injected');
|
|
299
52
|
|
|
@@ -313,8 +66,8 @@ class InjectedConnector extends Connector {
|
|
|
313
66
|
});
|
|
314
67
|
|
|
315
68
|
_defineProperty(this, "onChainChanged", chainId => {
|
|
316
|
-
|
|
317
|
-
|
|
69
|
+
const id = normalizeChainId(chainId);
|
|
70
|
+
const unsupported = this.isChainUnsupported(id);
|
|
318
71
|
this.emit('change', {
|
|
319
72
|
chain: {
|
|
320
73
|
id,
|
|
@@ -324,230 +77,192 @@ class InjectedConnector extends Connector {
|
|
|
324
77
|
});
|
|
325
78
|
|
|
326
79
|
_defineProperty(this, "onDisconnect", () => {
|
|
327
|
-
var _this$options,
|
|
80
|
+
var _this$options, _getClient$storage;
|
|
328
81
|
|
|
329
82
|
this.emit('disconnect');
|
|
330
|
-
if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) (
|
|
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);
|
|
331
84
|
});
|
|
332
85
|
|
|
333
|
-
|
|
86
|
+
let name = 'Injected';
|
|
334
87
|
if (typeof window !== 'undefined') name = getInjectedName(window.ethereum);
|
|
335
88
|
this.name = name;
|
|
336
89
|
}
|
|
337
90
|
|
|
338
|
-
connect() {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
return _asyncToGenerator(function* () {
|
|
342
|
-
try {
|
|
343
|
-
var _this$options2, _client$storage2;
|
|
344
|
-
|
|
345
|
-
var provider = yield _this.getProvider();
|
|
346
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
347
|
-
|
|
348
|
-
if (provider.on) {
|
|
349
|
-
provider.on('accountsChanged', _this.onAccountsChanged);
|
|
350
|
-
provider.on('chainChanged', _this.onChainChanged);
|
|
351
|
-
provider.on('disconnect', _this.onDisconnect);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
var account = yield _this.getAccount();
|
|
355
|
-
var id = yield _this.getChainId();
|
|
91
|
+
async connect() {
|
|
92
|
+
try {
|
|
93
|
+
var _this$options2, _getClient$storage2;
|
|
356
94
|
|
|
357
|
-
|
|
95
|
+
const provider = await this.getProvider();
|
|
96
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
358
97
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
id,
|
|
364
|
-
unsupported
|
|
365
|
-
},
|
|
366
|
-
provider
|
|
367
|
-
};
|
|
368
|
-
} catch (error) {
|
|
369
|
-
if (error.code === 4001) throw new UserRejectedRequestError();
|
|
370
|
-
throw error;
|
|
98
|
+
if (provider.on) {
|
|
99
|
+
provider.on('accountsChanged', this.onAccountsChanged);
|
|
100
|
+
provider.on('chainChanged', this.onChainChanged);
|
|
101
|
+
provider.on('disconnect', this.onDisconnect);
|
|
371
102
|
}
|
|
372
|
-
})();
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
disconnect() {
|
|
376
|
-
var _this2 = this;
|
|
377
|
-
|
|
378
|
-
return _asyncToGenerator(function* () {
|
|
379
|
-
var _this2$options, _client$storage3;
|
|
380
103
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
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
|
+
}
|
|
388
123
|
}
|
|
389
124
|
|
|
390
|
-
|
|
391
|
-
var
|
|
392
|
-
|
|
393
|
-
return _asyncToGenerator(function* () {
|
|
394
|
-
var provider = yield _this3.getProvider();
|
|
395
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
396
|
-
var accounts = yield provider.request({
|
|
397
|
-
method: 'eth_requestAccounts'
|
|
398
|
-
}); // return checksum address
|
|
125
|
+
async disconnect() {
|
|
126
|
+
var _this$options3, _getClient$storage3;
|
|
399
127
|
|
|
400
|
-
|
|
401
|
-
|
|
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);
|
|
402
134
|
}
|
|
403
135
|
|
|
404
|
-
|
|
405
|
-
|
|
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
|
|
406
142
|
|
|
407
|
-
return
|
|
408
|
-
var provider = yield _this4.getProvider();
|
|
409
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
410
|
-
return yield provider.request({
|
|
411
|
-
method: 'eth_chainId'
|
|
412
|
-
}).then(normalizeChainId);
|
|
413
|
-
})();
|
|
143
|
+
return getAddress(accounts[0]);
|
|
414
144
|
}
|
|
415
145
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
return
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
})();
|
|
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);
|
|
423
152
|
}
|
|
424
153
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
var provider = _this6.getProvider();
|
|
154
|
+
async getProvider() {
|
|
155
|
+
if (typeof window !== 'undefined' && !!window.ethereum) _classPrivateFieldSet(this, _provider, window.ethereum);
|
|
156
|
+
return _classPrivateFieldGet(this, _provider);
|
|
157
|
+
}
|
|
430
158
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
159
|
+
async getSigner() {
|
|
160
|
+
const [provider, account] = await Promise.all([this.getProvider(), this.getAccount()]);
|
|
161
|
+
return new providers.Web3Provider(provider).getSigner(account);
|
|
434
162
|
}
|
|
435
163
|
|
|
436
|
-
isAuthorized() {
|
|
437
|
-
|
|
164
|
+
async isAuthorized() {
|
|
165
|
+
try {
|
|
166
|
+
var _this$options4, _getClient$storage4;
|
|
438
167
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
return !!account;
|
|
451
|
-
} catch (_unused) {
|
|
452
|
-
return false;
|
|
453
|
-
}
|
|
454
|
-
})();
|
|
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
|
+
}
|
|
455
179
|
}
|
|
456
180
|
|
|
457
|
-
switchChain(chainId) {
|
|
458
|
-
|
|
181
|
+
async switchChain(chainId) {
|
|
182
|
+
const provider = await this.getProvider();
|
|
183
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
184
|
+
const id = hexValue(chainId);
|
|
459
185
|
|
|
460
|
-
|
|
461
|
-
var
|
|
462
|
-
if (!provider) throw new ConnectorNotFoundError();
|
|
463
|
-
var id = hexValue(chainId);
|
|
186
|
+
try {
|
|
187
|
+
var _chains$find;
|
|
464
188
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
throw new AddChainError();
|
|
502
|
-
}
|
|
503
|
-
} else if (error.code === 4001) throw new UserRejectedRequestError();else throw new SwitchChainError();
|
|
504
|
-
}
|
|
505
|
-
})();
|
|
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: this.getRpcUrls(chain),
|
|
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
|
+
}
|
|
506
225
|
}
|
|
507
226
|
|
|
508
|
-
watchAsset(_ref) {
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
decimals,
|
|
527
|
-
image,
|
|
528
|
-
symbol
|
|
529
|
-
}
|
|
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
|
|
530
245
|
}
|
|
531
|
-
}
|
|
532
|
-
})
|
|
246
|
+
}
|
|
247
|
+
});
|
|
533
248
|
}
|
|
534
249
|
|
|
535
250
|
}
|
|
536
251
|
|
|
537
|
-
|
|
252
|
+
const noopStorage = {
|
|
538
253
|
getItem: _key => '',
|
|
539
254
|
setItem: (_key, _value) => null,
|
|
540
255
|
removeItem: _key => null
|
|
541
256
|
};
|
|
542
257
|
function createStorage(_ref) {
|
|
543
|
-
|
|
258
|
+
let {
|
|
544
259
|
storage,
|
|
545
260
|
key: prefix = 'wagmi'
|
|
546
261
|
} = _ref;
|
|
547
|
-
return
|
|
548
|
-
getItem: function
|
|
549
|
-
|
|
550
|
-
|
|
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));
|
|
551
266
|
|
|
552
267
|
try {
|
|
553
268
|
return value ? JSON.parse(value) : defaultState;
|
|
@@ -568,40 +283,18 @@ function createStorage(_ref) {
|
|
|
568
283
|
}
|
|
569
284
|
},
|
|
570
285
|
removeItem: key => storage.removeItem("".concat(prefix, ".").concat(key))
|
|
571
|
-
}
|
|
286
|
+
};
|
|
572
287
|
}
|
|
573
288
|
|
|
574
|
-
var defaultConfig = {
|
|
575
|
-
connectors: [new InjectedConnector()],
|
|
576
|
-
provider: _ref => {
|
|
577
|
-
var {
|
|
578
|
-
chainId
|
|
579
|
-
} = _ref;
|
|
580
|
-
|
|
581
|
-
try {
|
|
582
|
-
return getDefaultProvider(chainId);
|
|
583
|
-
} catch (error) {
|
|
584
|
-
return getDefaultProvider();
|
|
585
|
-
}
|
|
586
|
-
},
|
|
587
|
-
storage: createStorage({
|
|
588
|
-
storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
|
|
589
|
-
})
|
|
590
|
-
};
|
|
591
|
-
|
|
592
289
|
var _lastUsedConnector = /*#__PURE__*/new WeakMap();
|
|
593
290
|
|
|
594
291
|
var _addEffects = /*#__PURE__*/new WeakSet();
|
|
595
292
|
|
|
596
293
|
class Client {
|
|
597
294
|
constructor() {
|
|
598
|
-
var
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
provider: _provider = defaultConfig.provider,
|
|
602
|
-
storage = defaultConfig.storage,
|
|
603
|
-
webSocketProvider: _webSocketProvider
|
|
604
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultConfig;
|
|
295
|
+
var _config$autoConnect, _config$connectors, _config$provider, _config$storage;
|
|
296
|
+
|
|
297
|
+
let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
605
298
|
|
|
606
299
|
_classPrivateMethodInitSpec(this, _addEffects);
|
|
607
300
|
|
|
@@ -616,53 +309,79 @@ class Client {
|
|
|
616
309
|
value: void 0
|
|
617
310
|
});
|
|
618
311
|
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
312
|
+
// Set default values for config
|
|
313
|
+
const autoConnect = (_config$autoConnect = config.autoConnect) !== null && _config$autoConnect !== void 0 ? _config$autoConnect : false;
|
|
314
|
+
|
|
315
|
+
const _connectors = (_config$connectors = config.connectors) !== null && _config$connectors !== void 0 ? _config$connectors : [new InjectedConnector()];
|
|
316
|
+
|
|
317
|
+
const _provider = (_config$provider = config.provider) !== null && _config$provider !== void 0 ? _config$provider : config => {
|
|
318
|
+
try {
|
|
319
|
+
return getDefaultProvider(config.chainId);
|
|
320
|
+
} catch {
|
|
321
|
+
return getDefaultProvider();
|
|
322
|
+
}
|
|
624
323
|
};
|
|
625
|
-
var status = 'disconnected';
|
|
626
324
|
|
|
627
|
-
|
|
325
|
+
const storage = (_config$storage = config.storage) !== null && _config$storage !== void 0 ? _config$storage : createStorage({
|
|
326
|
+
storage: typeof window !== 'undefined' ? window.localStorage : noopStorage
|
|
327
|
+
});
|
|
328
|
+
const _webSocketProvider = config.webSocketProvider; // Check status for autoConnect flag
|
|
329
|
+
|
|
330
|
+
let status = 'disconnected';
|
|
331
|
+
|
|
332
|
+
let _chainId;
|
|
628
333
|
|
|
629
334
|
if (autoConnect) {
|
|
630
335
|
try {
|
|
631
336
|
var _JSON$parse, _JSON$parse$state, _data$chain;
|
|
632
337
|
|
|
633
|
-
|
|
634
|
-
|
|
338
|
+
const rawState = storage.getItem('state', '');
|
|
339
|
+
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
|
|
635
340
|
|
|
636
341
|
status = data !== null && data !== void 0 && data.account ? 'reconnecting' : 'connecting';
|
|
637
342
|
_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
|
|
638
343
|
} catch (_error) {}
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
344
|
+
} // Evaluate initial store values
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
const connectors_ = typeof _connectors === 'function' ? _connectors({
|
|
348
|
+
chainId: _chainId
|
|
349
|
+
}) : _connectors;
|
|
350
|
+
const provider_ = typeof _provider === 'function' ? _provider({
|
|
351
|
+
chainId: _chainId
|
|
352
|
+
}) : _provider;
|
|
353
|
+
const webSocketProvider_ = typeof _webSocketProvider === 'function' ? _webSocketProvider({
|
|
354
|
+
chainId: _chainId
|
|
355
|
+
}) : _webSocketProvider; // Create store
|
|
356
|
+
|
|
357
|
+
this.store = create(subscribeWithSelector(persist(() => ({
|
|
358
|
+
connectors: connectors_,
|
|
359
|
+
provider: provider_,
|
|
648
360
|
status,
|
|
649
|
-
webSocketProvider:
|
|
650
|
-
chainId: _chainId
|
|
651
|
-
}) : _webSocketProvider
|
|
361
|
+
webSocketProvider: webSocketProvider_
|
|
652
362
|
}), {
|
|
653
363
|
name: 'state',
|
|
654
364
|
getStorage: () => storage,
|
|
655
365
|
partialize: state => {
|
|
656
366
|
var _state$data, _state$data2;
|
|
657
367
|
|
|
658
|
-
return {
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
368
|
+
return { ...(autoConnect && {
|
|
369
|
+
data: {
|
|
370
|
+
account: state === null || state === void 0 ? void 0 : (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.account,
|
|
371
|
+
chain: state === null || state === void 0 ? void 0 : (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.chain
|
|
372
|
+
}
|
|
373
|
+
}),
|
|
374
|
+
chains: state === null || state === void 0 ? void 0 : state.chains
|
|
663
375
|
};
|
|
664
376
|
}
|
|
665
377
|
})));
|
|
378
|
+
this.config = {
|
|
379
|
+
autoConnect,
|
|
380
|
+
connectors: _connectors,
|
|
381
|
+
provider: _provider,
|
|
382
|
+
storage,
|
|
383
|
+
webSocketProvider: _webSocketProvider
|
|
384
|
+
};
|
|
666
385
|
this.storage = storage;
|
|
667
386
|
|
|
668
387
|
_classPrivateFieldSet(this, _lastUsedConnector, storage === null || storage === void 0 ? void 0 : storage.getItem('wallet'));
|
|
@@ -670,6 +389,10 @@ class Client {
|
|
|
670
389
|
_classPrivateMethodGet(this, _addEffects, _addEffects2).call(this);
|
|
671
390
|
}
|
|
672
391
|
|
|
392
|
+
get chains() {
|
|
393
|
+
return this.store.getState().chains;
|
|
394
|
+
}
|
|
395
|
+
|
|
673
396
|
get connectors() {
|
|
674
397
|
return this.store.getState().connectors;
|
|
675
398
|
}
|
|
@@ -703,12 +426,12 @@ class Client {
|
|
|
703
426
|
}
|
|
704
427
|
|
|
705
428
|
setState(updater) {
|
|
706
|
-
|
|
429
|
+
const newState = typeof updater === 'function' ? updater(this.store.getState()) : updater;
|
|
707
430
|
this.store.setState(newState, true);
|
|
708
431
|
}
|
|
709
432
|
|
|
710
433
|
clearState() {
|
|
711
|
-
this.setState(x =>
|
|
434
|
+
this.setState(x => ({ ...x,
|
|
712
435
|
connector: undefined,
|
|
713
436
|
data: undefined,
|
|
714
437
|
error: undefined,
|
|
@@ -716,84 +439,74 @@ class Client {
|
|
|
716
439
|
}));
|
|
717
440
|
}
|
|
718
441
|
|
|
719
|
-
destroy() {
|
|
720
|
-
var _this
|
|
721
|
-
|
|
722
|
-
return _asyncToGenerator(function* () {
|
|
723
|
-
var _this$connector$disco, _this$connector;
|
|
724
|
-
|
|
725
|
-
if (_this.connector) yield (_this$connector$disco = (_this$connector = _this.connector).disconnect) === null || _this$connector$disco === void 0 ? void 0 : _this$connector$disco.call(_this$connector);
|
|
442
|
+
async destroy() {
|
|
443
|
+
var _this$connector$disco, _this$connector;
|
|
726
444
|
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
})();
|
|
445
|
+
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));
|
|
446
|
+
this.clearState();
|
|
447
|
+
this.store.destroy();
|
|
731
448
|
}
|
|
732
449
|
|
|
733
|
-
autoConnect() {
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
connected = true;
|
|
755
|
-
return "break";
|
|
756
|
-
};
|
|
757
|
-
|
|
758
|
-
for (var connector of sorted) {
|
|
759
|
-
var _ret = yield* _loop(connector);
|
|
760
|
-
|
|
761
|
-
if (_ret === "continue") continue;
|
|
762
|
-
if (_ret === "break") break;
|
|
763
|
-
} // If connecting didn't succeed, set to disconnected
|
|
450
|
+
async autoConnect() {
|
|
451
|
+
if (!this.connectors.length) return; // Try last used connector first
|
|
452
|
+
|
|
453
|
+
const sorted = _classPrivateFieldGet(this, _lastUsedConnector) ? [...this.connectors].sort(x => x.id === _classPrivateFieldGet(this, _lastUsedConnector) ? -1 : 1) : this.connectors;
|
|
454
|
+
let connected = false;
|
|
455
|
+
|
|
456
|
+
for (const connector of sorted) {
|
|
457
|
+
if (!connector.ready || !connector.isAuthorized) continue;
|
|
458
|
+
const isAuthorized = await connector.isAuthorized();
|
|
459
|
+
if (!isAuthorized) continue;
|
|
460
|
+
const data = await connector.connect();
|
|
461
|
+
this.setState(x => ({ ...x,
|
|
462
|
+
connector,
|
|
463
|
+
chains: connector === null || connector === void 0 ? void 0 : connector.chains,
|
|
464
|
+
data,
|
|
465
|
+
status: 'connected'
|
|
466
|
+
}));
|
|
467
|
+
connected = true;
|
|
468
|
+
break;
|
|
469
|
+
} // If connecting didn't succeed, set to disconnected
|
|
764
470
|
|
|
765
471
|
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
})();
|
|
472
|
+
if (!connected) this.setState(x => ({ ...x,
|
|
473
|
+
status: 'disconnected'
|
|
474
|
+
}));
|
|
475
|
+
return this.data;
|
|
771
476
|
}
|
|
772
477
|
|
|
773
478
|
setLastUsedConnector() {
|
|
774
479
|
var _this$storage;
|
|
775
480
|
|
|
776
|
-
|
|
481
|
+
let lastUsedConnector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
777
482
|
(_this$storage = this.storage) === null || _this$storage === void 0 ? void 0 : _this$storage.setItem('wallet', lastUsedConnector);
|
|
778
483
|
}
|
|
779
484
|
|
|
780
485
|
}
|
|
781
486
|
|
|
782
487
|
function _addEffects2() {
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
488
|
+
const onChange = data => {
|
|
489
|
+
this.setState(x => ({ ...x,
|
|
490
|
+
data: { ...x.data,
|
|
491
|
+
...data
|
|
492
|
+
}
|
|
493
|
+
}));
|
|
494
|
+
};
|
|
786
495
|
|
|
787
|
-
|
|
496
|
+
const onDisconnect = () => {
|
|
497
|
+
this.clearState();
|
|
498
|
+
};
|
|
788
499
|
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
500
|
+
const onError = error => {
|
|
501
|
+
this.setState(x => ({ ...x,
|
|
502
|
+
error
|
|
503
|
+
}));
|
|
504
|
+
};
|
|
792
505
|
|
|
793
|
-
this.store.subscribe(
|
|
794
|
-
|
|
506
|
+
this.store.subscribe(_ref => {
|
|
507
|
+
let {
|
|
795
508
|
connector
|
|
796
|
-
} =
|
|
509
|
+
} = _ref;
|
|
797
510
|
return connector;
|
|
798
511
|
}, (connector, prevConnector) => {
|
|
799
512
|
var _prevConnector$off, _prevConnector$off2, _prevConnector$off3, _connector$on, _connector$on2, _connector$on3;
|
|
@@ -806,23 +519,23 @@ function _addEffects2() {
|
|
|
806
519
|
(_connector$on2 = connector.on) === null || _connector$on2 === void 0 ? void 0 : _connector$on2.call(connector, 'disconnect', onDisconnect);
|
|
807
520
|
(_connector$on3 = connector.on) === null || _connector$on3 === void 0 ? void 0 : _connector$on3.call(connector, 'error', onError);
|
|
808
521
|
});
|
|
809
|
-
|
|
522
|
+
const {
|
|
810
523
|
connectors,
|
|
811
524
|
provider,
|
|
812
525
|
webSocketProvider
|
|
813
526
|
} = this.config;
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
if (subscribeConnectors || subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(
|
|
527
|
+
const subscribeConnectors = typeof connectors === 'function';
|
|
528
|
+
const subscribeProvider = typeof provider === 'function';
|
|
529
|
+
const subscribeWebSocketProvider = typeof webSocketProvider === 'function';
|
|
530
|
+
if (subscribeConnectors || subscribeProvider || subscribeWebSocketProvider) this.store.subscribe(_ref2 => {
|
|
818
531
|
var _data$chain2;
|
|
819
532
|
|
|
820
|
-
|
|
533
|
+
let {
|
|
821
534
|
data
|
|
822
|
-
} =
|
|
535
|
+
} = _ref2;
|
|
823
536
|
return data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.id;
|
|
824
537
|
}, chainId => {
|
|
825
|
-
this.setState(x =>
|
|
538
|
+
this.setState(x => ({ ...x,
|
|
826
539
|
connectors: subscribeConnectors ? connectors({
|
|
827
540
|
chainId
|
|
828
541
|
}) : x.connectors,
|
|
@@ -836,108 +549,115 @@ function _addEffects2() {
|
|
|
836
549
|
});
|
|
837
550
|
}
|
|
838
551
|
|
|
839
|
-
|
|
552
|
+
let client;
|
|
840
553
|
function createClient(config) {
|
|
841
|
-
|
|
554
|
+
const client_ = new Client(config);
|
|
842
555
|
client = client_;
|
|
843
556
|
return client_;
|
|
844
557
|
}
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
return _connect.apply(this, arguments);
|
|
558
|
+
function getClient() {
|
|
559
|
+
return client;
|
|
848
560
|
}
|
|
849
561
|
|
|
850
|
-
function
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
562
|
+
async function connect(_ref) {
|
|
563
|
+
let {
|
|
564
|
+
connector
|
|
565
|
+
} = _ref;
|
|
566
|
+
const activeConnector = client.connector;
|
|
567
|
+
if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new ConnectorAlreadyConnectedError();
|
|
568
|
+
const data = await connector.connect();
|
|
569
|
+
client.setLastUsedConnector(connector.id);
|
|
570
|
+
client.setState(x => ({ ...x,
|
|
571
|
+
connector,
|
|
572
|
+
chains: connector === null || connector === void 0 ? void 0 : connector.chains,
|
|
573
|
+
data
|
|
574
|
+
}));
|
|
575
|
+
client.storage.setItem('connected', true);
|
|
576
|
+
return { ...data,
|
|
577
|
+
connector
|
|
578
|
+
};
|
|
867
579
|
}
|
|
868
580
|
|
|
869
|
-
function disconnect() {
|
|
870
|
-
|
|
581
|
+
async function disconnect() {
|
|
582
|
+
const client = getClient();
|
|
583
|
+
if (client.connector) await client.connector.disconnect();
|
|
584
|
+
client.clearState();
|
|
585
|
+
client.storage.removeItem('connected');
|
|
871
586
|
}
|
|
872
587
|
|
|
873
|
-
function
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
588
|
+
function getProvider() {
|
|
589
|
+
let {
|
|
590
|
+
chainId
|
|
591
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
592
|
+
const client = getClient();
|
|
593
|
+
if (chainId && typeof client.config.provider === 'function') return client.config.provider({
|
|
594
|
+
chainId
|
|
878
595
|
});
|
|
879
|
-
return
|
|
596
|
+
return client.provider;
|
|
880
597
|
}
|
|
881
598
|
|
|
882
|
-
function
|
|
883
|
-
|
|
599
|
+
function getWebSocketProvider() {
|
|
600
|
+
let {
|
|
601
|
+
chainId
|
|
602
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
603
|
+
const client = getClient();
|
|
604
|
+
if (chainId && typeof client.config.webSocketProvider === 'function') return client.config.webSocketProvider({
|
|
605
|
+
chainId
|
|
606
|
+
});
|
|
607
|
+
return client.webSocketProvider;
|
|
884
608
|
}
|
|
885
609
|
|
|
886
|
-
function
|
|
887
|
-
|
|
888
|
-
var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
|
|
889
|
-
|
|
890
|
-
var {
|
|
891
|
-
addressOrName,
|
|
892
|
-
formatUnits: unit = 'ether',
|
|
893
|
-
token
|
|
894
|
-
} = _ref;
|
|
610
|
+
async function fetchBalance(_ref) {
|
|
611
|
+
var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
|
|
895
612
|
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
}
|
|
613
|
+
let {
|
|
614
|
+
addressOrName,
|
|
615
|
+
chainId,
|
|
616
|
+
formatUnits: unit = 'ether',
|
|
617
|
+
token
|
|
618
|
+
} = _ref;
|
|
619
|
+
const client = getClient();
|
|
620
|
+
const provider = getProvider({
|
|
621
|
+
chainId
|
|
622
|
+
});
|
|
907
623
|
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
624
|
+
if (token) {
|
|
625
|
+
const contract = new Contract(token, erc20ABI, provider);
|
|
626
|
+
const [value, decimals, symbol] = await Promise.all([contract.balanceOf(addressOrName), contract.decimals(), contract.symbol()]);
|
|
911
627
|
return {
|
|
912
|
-
decimals
|
|
628
|
+
decimals,
|
|
913
629
|
formatted: formatUnits(value, unit),
|
|
914
|
-
symbol
|
|
630
|
+
symbol,
|
|
915
631
|
unit,
|
|
916
632
|
value
|
|
917
633
|
};
|
|
918
|
-
}
|
|
919
|
-
return _fetchBalance.apply(this, arguments);
|
|
920
|
-
}
|
|
634
|
+
}
|
|
921
635
|
|
|
922
|
-
|
|
923
|
-
|
|
636
|
+
const chains = [...((_client$connector$cha = (_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : _client$connector.chains) !== null && _client$connector$cha !== void 0 ? _client$connector$cha : []), ...allChains];
|
|
637
|
+
const value = await provider.getBalance(addressOrName);
|
|
638
|
+
const chain = chains.find(x => x.id === provider.network.chainId);
|
|
639
|
+
return {
|
|
640
|
+
decimals: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.decimals) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 18,
|
|
641
|
+
formatted: formatUnits(value, unit),
|
|
642
|
+
symbol: (_chain$nativeCurrency3 = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency4 = chain.nativeCurrency) === null || _chain$nativeCurrency4 === void 0 ? void 0 : _chain$nativeCurrency4.symbol) !== null && _chain$nativeCurrency3 !== void 0 ? _chain$nativeCurrency3 : 'ETH',
|
|
643
|
+
unit,
|
|
644
|
+
value
|
|
645
|
+
};
|
|
924
646
|
}
|
|
925
647
|
|
|
926
|
-
function
|
|
927
|
-
|
|
928
|
-
var _client$connector, _client$connector$get;
|
|
648
|
+
async function fetchSigner() {
|
|
649
|
+
var _client$connector, _client$connector$get;
|
|
929
650
|
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
return _fetchSigner.apply(this, arguments);
|
|
651
|
+
const client = getClient();
|
|
652
|
+
const signer = await ((_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : (_client$connector$get = _client$connector.getSigner) === null || _client$connector$get === void 0 ? void 0 : _client$connector$get.call(_client$connector));
|
|
653
|
+
return signer;
|
|
934
654
|
}
|
|
935
655
|
|
|
936
656
|
function getAccount() {
|
|
937
|
-
|
|
657
|
+
const {
|
|
938
658
|
data,
|
|
939
659
|
connector
|
|
940
|
-
} =
|
|
660
|
+
} = getClient();
|
|
941
661
|
return {
|
|
942
662
|
address: data === null || data === void 0 ? void 0 : data.account,
|
|
943
663
|
connector
|
|
@@ -945,88 +665,71 @@ function getAccount() {
|
|
|
945
665
|
}
|
|
946
666
|
|
|
947
667
|
function getNetwork() {
|
|
948
|
-
var
|
|
668
|
+
var _client$data, _client$data$chain, _client$chains, _find, _client$data2;
|
|
949
669
|
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
var chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
|
|
955
|
-
var unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
|
|
956
|
-
var activeChains = (_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : [];
|
|
957
|
-
var activeChain = (_find = [...activeChains, ...allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
|
|
670
|
+
const client = getClient();
|
|
671
|
+
const chainId = (_client$data = client.data) === null || _client$data === void 0 ? void 0 : (_client$data$chain = _client$data.chain) === null || _client$data$chain === void 0 ? void 0 : _client$data$chain.id;
|
|
672
|
+
const activeChains = (_client$chains = client.chains) !== null && _client$chains !== void 0 ? _client$chains : [];
|
|
673
|
+
const activeChain = (_find = [...activeChains, ...allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
|
|
958
674
|
id: chainId,
|
|
959
675
|
name: "Chain ".concat(chainId),
|
|
960
|
-
rpcUrls:
|
|
676
|
+
rpcUrls: {
|
|
677
|
+
default: []
|
|
678
|
+
}
|
|
961
679
|
};
|
|
962
680
|
return {
|
|
963
|
-
chain: chainId ?
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
}
|
|
681
|
+
chain: chainId ? { ...activeChain,
|
|
682
|
+
...((_client$data2 = client.data) === null || _client$data2 === void 0 ? void 0 : _client$data2.chain),
|
|
683
|
+
id: chainId
|
|
684
|
+
} : undefined,
|
|
967
685
|
chains: activeChains
|
|
968
686
|
};
|
|
969
687
|
}
|
|
970
688
|
|
|
971
|
-
function signMessage(
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
} catch (error_) {
|
|
982
|
-
var error = error_;
|
|
983
|
-
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
984
|
-
throw error;
|
|
985
|
-
}
|
|
986
|
-
});
|
|
987
|
-
return _signMessage.apply(this, arguments);
|
|
988
|
-
}
|
|
989
|
-
|
|
990
|
-
function signTypedData(_x) {
|
|
991
|
-
return _signTypedData.apply(this, arguments);
|
|
689
|
+
async function signMessage(args) {
|
|
690
|
+
try {
|
|
691
|
+
const signer = await fetchSigner();
|
|
692
|
+
if (!signer) throw new ConnectorNotFoundError();
|
|
693
|
+
return await signer.signMessage(args.message);
|
|
694
|
+
} catch (error_) {
|
|
695
|
+
let error = error_;
|
|
696
|
+
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
697
|
+
throw error;
|
|
698
|
+
}
|
|
992
699
|
}
|
|
993
700
|
|
|
994
|
-
function
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
if (!signer) throw new ConnectorNotFoundError(); // Method name may be changed in the future, see https://docs.ethers.io/v5/api/signer/#Signer-signTypedData
|
|
999
|
-
|
|
1000
|
-
return yield signer._signTypedData(args.domain, args.types, args.value);
|
|
1001
|
-
} catch (error_) {
|
|
1002
|
-
var error = error_;
|
|
1003
|
-
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
1004
|
-
throw error;
|
|
1005
|
-
}
|
|
1006
|
-
});
|
|
1007
|
-
return _signTypedData.apply(this, arguments);
|
|
1008
|
-
}
|
|
701
|
+
async function signTypedData(args) {
|
|
702
|
+
try {
|
|
703
|
+
const signer = await fetchSigner();
|
|
704
|
+
if (!signer) throw new ConnectorNotFoundError(); // Method name may be changed in the future, see https://docs.ethers.io/v5/api/signer/#Signer-signTypedData
|
|
1009
705
|
|
|
1010
|
-
|
|
1011
|
-
|
|
706
|
+
return await signer._signTypedData(args.domain, args.types, args.value);
|
|
707
|
+
} catch (error_) {
|
|
708
|
+
let error = error_;
|
|
709
|
+
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
710
|
+
throw error;
|
|
711
|
+
}
|
|
1012
712
|
}
|
|
1013
713
|
|
|
1014
|
-
function
|
|
1015
|
-
|
|
1016
|
-
var _client$connector;
|
|
714
|
+
async function switchNetwork(_ref) {
|
|
715
|
+
var _client$connector;
|
|
1017
716
|
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
717
|
+
let {
|
|
718
|
+
chainId
|
|
719
|
+
} = _ref;
|
|
720
|
+
const client = getClient();
|
|
721
|
+
if (!((_client$connector = client.connector) !== null && _client$connector !== void 0 && _client$connector.switchChain)) throw new SwitchChainNotSupportedError();
|
|
722
|
+
const chain = await client.connector.switchChain(chainId);
|
|
723
|
+
return chain;
|
|
1023
724
|
}
|
|
1024
725
|
|
|
1025
726
|
function watchAccount(callback) {
|
|
1026
|
-
|
|
727
|
+
const client = getClient();
|
|
1027
728
|
|
|
1028
|
-
|
|
1029
|
-
|
|
729
|
+
const handleChange = () => callback(getAccount());
|
|
730
|
+
|
|
731
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
732
|
+
let {
|
|
1030
733
|
data,
|
|
1031
734
|
connector
|
|
1032
735
|
} = _ref;
|
|
@@ -1041,22 +744,16 @@ function watchAccount(callback) {
|
|
|
1041
744
|
}
|
|
1042
745
|
|
|
1043
746
|
function watchBalance(args, callback) {
|
|
1044
|
-
|
|
1045
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1046
|
-
return callback(yield fetchBalance(args));
|
|
1047
|
-
});
|
|
747
|
+
const client = getClient();
|
|
1048
748
|
|
|
1049
|
-
|
|
1050
|
-
return _ref.apply(this, arguments);
|
|
1051
|
-
};
|
|
1052
|
-
}();
|
|
749
|
+
const handleChange = async () => callback(await fetchBalance(args));
|
|
1053
750
|
|
|
1054
|
-
|
|
751
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1055
752
|
var _data$chain;
|
|
1056
753
|
|
|
1057
|
-
|
|
754
|
+
let {
|
|
1058
755
|
data
|
|
1059
|
-
} =
|
|
756
|
+
} = _ref;
|
|
1060
757
|
return {
|
|
1061
758
|
account: data === null || data === void 0 ? void 0 : data.account,
|
|
1062
759
|
chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id
|
|
@@ -1068,43 +765,39 @@ function watchBalance(args, callback) {
|
|
|
1068
765
|
}
|
|
1069
766
|
|
|
1070
767
|
function watchNetwork(callback) {
|
|
1071
|
-
|
|
768
|
+
const client = getClient();
|
|
1072
769
|
|
|
1073
|
-
|
|
770
|
+
const handleChange = () => callback(getNetwork());
|
|
771
|
+
|
|
772
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1074
773
|
var _data$chain;
|
|
1075
774
|
|
|
1076
|
-
|
|
775
|
+
let {
|
|
1077
776
|
data,
|
|
1078
|
-
|
|
777
|
+
chains
|
|
1079
778
|
} = _ref;
|
|
1080
779
|
return {
|
|
1081
780
|
chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
|
|
1082
|
-
|
|
781
|
+
chains
|
|
1083
782
|
};
|
|
1084
783
|
}, handleChange, {
|
|
1085
|
-
equalityFn: (selected, previous) => selected.chainId === previous.chainId && selected.
|
|
784
|
+
equalityFn: (selected, previous) => selected.chainId === previous.chainId && selected.chains === previous.chains
|
|
1086
785
|
});
|
|
1087
786
|
return unsubscribe;
|
|
1088
787
|
}
|
|
1089
788
|
|
|
1090
789
|
function watchSigner(callback) {
|
|
1091
|
-
|
|
1092
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1093
|
-
return callback(yield fetchSigner());
|
|
1094
|
-
});
|
|
790
|
+
const client = getClient();
|
|
1095
791
|
|
|
1096
|
-
|
|
1097
|
-
return _ref.apply(this, arguments);
|
|
1098
|
-
};
|
|
1099
|
-
}();
|
|
792
|
+
const handleChange = async () => callback(await fetchSigner());
|
|
1100
793
|
|
|
1101
|
-
|
|
794
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1102
795
|
var _data$chain;
|
|
1103
796
|
|
|
1104
|
-
|
|
797
|
+
let {
|
|
1105
798
|
data,
|
|
1106
799
|
connector
|
|
1107
|
-
} =
|
|
800
|
+
} = _ref;
|
|
1108
801
|
return {
|
|
1109
802
|
account: data === null || data === void 0 ? void 0 : data.account,
|
|
1110
803
|
chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
|
|
@@ -1117,7 +810,7 @@ function watchSigner(callback) {
|
|
|
1117
810
|
}
|
|
1118
811
|
|
|
1119
812
|
function getContract(_ref) {
|
|
1120
|
-
|
|
813
|
+
let {
|
|
1121
814
|
addressOrName,
|
|
1122
815
|
contractInterface,
|
|
1123
816
|
signerOrProvider
|
|
@@ -1125,27 +818,24 @@ function getContract(_ref) {
|
|
|
1125
818
|
return new Contract(addressOrName, contractInterface, signerOrProvider);
|
|
1126
819
|
}
|
|
1127
820
|
|
|
1128
|
-
function readContract(
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
} = client;
|
|
1141
|
-
var contract = getContract(_objectSpread2({
|
|
1142
|
-
signerOrProvider: provider
|
|
1143
|
-
}, contractConfig));
|
|
1144
|
-
var params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
1145
|
-
var response = yield contract[functionName](...params);
|
|
1146
|
-
return response;
|
|
821
|
+
async function readContract(contractConfig, functionName) {
|
|
822
|
+
let {
|
|
823
|
+
args,
|
|
824
|
+
chainId,
|
|
825
|
+
overrides
|
|
826
|
+
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
827
|
+
const provider = getProvider({
|
|
828
|
+
chainId
|
|
829
|
+
});
|
|
830
|
+
const contract = getContract({
|
|
831
|
+
signerOrProvider: provider,
|
|
832
|
+
...contractConfig
|
|
1147
833
|
});
|
|
1148
|
-
|
|
834
|
+
const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
835
|
+
const contractFunction = contract[functionName];
|
|
836
|
+
if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
|
|
837
|
+
const response = await (contractFunction === null || contractFunction === void 0 ? void 0 : contractFunction(...params));
|
|
838
|
+
return response;
|
|
1149
839
|
}
|
|
1150
840
|
|
|
1151
841
|
function watchContractEvent(
|
|
@@ -1153,36 +843,37 @@ function watchContractEvent(
|
|
|
1153
843
|
contractArgs,
|
|
1154
844
|
/** Event name to listen to */
|
|
1155
845
|
eventName, callback) {
|
|
1156
|
-
|
|
846
|
+
let {
|
|
847
|
+
chainId,
|
|
1157
848
|
once
|
|
1158
849
|
} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
1159
|
-
|
|
850
|
+
let contract;
|
|
1160
851
|
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
var _contract;
|
|
852
|
+
const watchEvent = async () => {
|
|
853
|
+
if (contract) {
|
|
854
|
+
var _contract;
|
|
1165
855
|
|
|
1166
|
-
|
|
1167
|
-
|
|
856
|
+
(_contract = contract) === null || _contract === void 0 ? void 0 : _contract.off(eventName, callback);
|
|
857
|
+
}
|
|
1168
858
|
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
859
|
+
contract = getContract({
|
|
860
|
+
signerOrProvider: getWebSocketProvider({
|
|
861
|
+
chainId
|
|
862
|
+
}) || getProvider({
|
|
863
|
+
chainId
|
|
864
|
+
}),
|
|
865
|
+
...contractArgs
|
|
1173
866
|
});
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
return _ref.apply(this, arguments);
|
|
1177
|
-
};
|
|
1178
|
-
}();
|
|
867
|
+
if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
|
|
868
|
+
};
|
|
1179
869
|
|
|
1180
870
|
watchEvent();
|
|
1181
|
-
|
|
1182
|
-
|
|
871
|
+
const client = getClient();
|
|
872
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
873
|
+
let {
|
|
1183
874
|
provider,
|
|
1184
875
|
webSocketProvider
|
|
1185
|
-
} =
|
|
876
|
+
} = _ref;
|
|
1186
877
|
return {
|
|
1187
878
|
provider,
|
|
1188
879
|
webSocketProvider
|
|
@@ -1198,23 +889,24 @@ eventName, callback) {
|
|
|
1198
889
|
};
|
|
1199
890
|
}
|
|
1200
891
|
|
|
1201
|
-
function fetchBlockNumber() {
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
var blockNumber = yield client.provider.getBlockNumber();
|
|
1208
|
-
return blockNumber;
|
|
892
|
+
async function fetchBlockNumber() {
|
|
893
|
+
let {
|
|
894
|
+
chainId
|
|
895
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
896
|
+
const provider = getProvider({
|
|
897
|
+
chainId
|
|
1209
898
|
});
|
|
1210
|
-
|
|
899
|
+
const blockNumber = await provider.getBlockNumber();
|
|
900
|
+
return blockNumber;
|
|
1211
901
|
}
|
|
1212
902
|
|
|
1213
903
|
function watchBlockNumber(args, callback) {
|
|
1214
|
-
var
|
|
904
|
+
var _client$webSocketProv;
|
|
1215
905
|
|
|
1216
|
-
|
|
1217
|
-
|
|
906
|
+
let prevProvider;
|
|
907
|
+
|
|
908
|
+
const createListener = provider => {
|
|
909
|
+
const listener = blockNumber => {
|
|
1218
910
|
callback(blockNumber);
|
|
1219
911
|
};
|
|
1220
912
|
|
|
@@ -1228,14 +920,11 @@ function watchBlockNumber(args, callback) {
|
|
|
1228
920
|
prevProvider = provider;
|
|
1229
921
|
};
|
|
1230
922
|
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
webSocketProvider
|
|
1234
|
-
} = client;
|
|
1235
|
-
var provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
|
|
923
|
+
const client = getClient();
|
|
924
|
+
const provider_ = (_client$webSocketProv = client.webSocketProvider) !== null && _client$webSocketProv !== void 0 ? _client$webSocketProv : client.provider;
|
|
1236
925
|
if (args.listen) createListener(provider_);
|
|
1237
|
-
|
|
1238
|
-
|
|
926
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
927
|
+
let {
|
|
1239
928
|
provider,
|
|
1240
929
|
webSocketProvider
|
|
1241
930
|
} = _ref;
|
|
@@ -1243,25 +932,19 @@ function watchBlockNumber(args, callback) {
|
|
|
1243
932
|
provider,
|
|
1244
933
|
webSocketProvider
|
|
1245
934
|
};
|
|
1246
|
-
},
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
var provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
|
|
1253
|
-
|
|
1254
|
-
if (args.listen && provider_) {
|
|
1255
|
-
createListener(provider_);
|
|
1256
|
-
}
|
|
935
|
+
}, async _ref2 => {
|
|
936
|
+
let {
|
|
937
|
+
provider,
|
|
938
|
+
webSocketProvider
|
|
939
|
+
} = _ref2;
|
|
940
|
+
const provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
|
|
1257
941
|
|
|
1258
|
-
|
|
1259
|
-
|
|
942
|
+
if (args.listen && provider_) {
|
|
943
|
+
createListener(provider_);
|
|
944
|
+
}
|
|
1260
945
|
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
};
|
|
1264
|
-
}(), {
|
|
946
|
+
callback(await fetchBlockNumber());
|
|
947
|
+
}, {
|
|
1265
948
|
equalityFn: (selected, previous) => selected.provider === previous.provider && selected.webSocketProvider === previous.webSocketProvider
|
|
1266
949
|
});
|
|
1267
950
|
return unsubscribe;
|
|
@@ -1270,26 +953,19 @@ function watchBlockNumber(args, callback) {
|
|
|
1270
953
|
function watchReadContract(contractConfig, functionName) {
|
|
1271
954
|
var _config$listenToBlock;
|
|
1272
955
|
|
|
1273
|
-
|
|
1274
|
-
|
|
956
|
+
let config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
957
|
+
let callback = arguments.length > 3 ? arguments[3] : undefined;
|
|
958
|
+
const client = getClient();
|
|
1275
959
|
|
|
1276
|
-
|
|
1277
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1278
|
-
return callback(yield readContract(contractConfig, functionName, config));
|
|
1279
|
-
});
|
|
960
|
+
const handleChange = async () => callback(await readContract(contractConfig, functionName, config));
|
|
1280
961
|
|
|
1281
|
-
|
|
1282
|
-
return _ref.apply(this, arguments);
|
|
1283
|
-
};
|
|
1284
|
-
}();
|
|
1285
|
-
|
|
1286
|
-
var unwatch = ((_config$listenToBlock = config.listenToBlock) !== null && _config$listenToBlock !== void 0 ? _config$listenToBlock : true) ? watchBlockNumber({
|
|
962
|
+
const unwatch = ((_config$listenToBlock = config.listenToBlock) !== null && _config$listenToBlock !== void 0 ? _config$listenToBlock : true) ? watchBlockNumber({
|
|
1287
963
|
listen: true
|
|
1288
964
|
}, handleChange) : undefined;
|
|
1289
|
-
|
|
1290
|
-
|
|
965
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
966
|
+
let {
|
|
1291
967
|
provider
|
|
1292
|
-
} =
|
|
968
|
+
} = _ref;
|
|
1293
969
|
return provider;
|
|
1294
970
|
}, handleChange);
|
|
1295
971
|
return () => {
|
|
@@ -1298,224 +974,172 @@ function watchReadContract(contractConfig, functionName) {
|
|
|
1298
974
|
};
|
|
1299
975
|
}
|
|
1300
976
|
|
|
1301
|
-
function writeContract(
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
if (!
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
} catch (error_) {
|
|
1324
|
-
var error = error_;
|
|
1325
|
-
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
1326
|
-
throw error;
|
|
1327
|
-
}
|
|
1328
|
-
});
|
|
1329
|
-
return _writeContract.apply(this, arguments);
|
|
1330
|
-
}
|
|
1331
|
-
|
|
1332
|
-
function fetchEnsAddress(_x) {
|
|
1333
|
-
return _fetchEnsAddress.apply(this, arguments);
|
|
977
|
+
async function writeContract(contractConfig, functionName) {
|
|
978
|
+
let {
|
|
979
|
+
args,
|
|
980
|
+
overrides
|
|
981
|
+
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
982
|
+
const client = getClient();
|
|
983
|
+
if (!client.connector) throw new ConnectorNotFoundError();
|
|
984
|
+
const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
985
|
+
|
|
986
|
+
try {
|
|
987
|
+
const signer = await client.connector.getSigner();
|
|
988
|
+
const contract = getContract(contractConfig);
|
|
989
|
+
const contractWithSigner = contract.connect(signer);
|
|
990
|
+
const contractFunction = contractWithSigner[functionName];
|
|
991
|
+
if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
|
|
992
|
+
const response = await contractFunction(...params);
|
|
993
|
+
return response;
|
|
994
|
+
} catch (error_) {
|
|
995
|
+
let error = error_;
|
|
996
|
+
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
997
|
+
throw error;
|
|
998
|
+
}
|
|
1334
999
|
}
|
|
1335
1000
|
|
|
1336
|
-
function
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
try {
|
|
1344
|
-
return address ? getAddress(address) : null;
|
|
1345
|
-
} catch (_error) {
|
|
1346
|
-
return null;
|
|
1347
|
-
}
|
|
1001
|
+
async function fetchEnsAddress(_ref) {
|
|
1002
|
+
let {
|
|
1003
|
+
chainId,
|
|
1004
|
+
name
|
|
1005
|
+
} = _ref;
|
|
1006
|
+
const provider = getProvider({
|
|
1007
|
+
chainId
|
|
1348
1008
|
});
|
|
1349
|
-
|
|
1350
|
-
}
|
|
1009
|
+
const address = await provider.resolveName(name);
|
|
1351
1010
|
|
|
1352
|
-
|
|
1353
|
-
|
|
1011
|
+
try {
|
|
1012
|
+
return address ? getAddress(address) : null;
|
|
1013
|
+
} catch (_error) {
|
|
1014
|
+
return null;
|
|
1015
|
+
}
|
|
1354
1016
|
}
|
|
1355
1017
|
|
|
1356
|
-
function
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
});
|
|
1366
|
-
return _fetchEnsAvatar.apply(this, arguments);
|
|
1367
|
-
}
|
|
1018
|
+
async function fetchEnsAvatar(_ref) {
|
|
1019
|
+
let {
|
|
1020
|
+
addressOrName,
|
|
1021
|
+
chainId
|
|
1022
|
+
} = _ref;
|
|
1023
|
+
const provider = getProvider({
|
|
1024
|
+
chainId
|
|
1025
|
+
}); // TODO: Update with more advanced logic
|
|
1026
|
+
// https://github.com/ensdomains/ens-avatar
|
|
1368
1027
|
|
|
1369
|
-
|
|
1370
|
-
return
|
|
1028
|
+
const avatar = await provider.getAvatar(addressOrName);
|
|
1029
|
+
return avatar;
|
|
1371
1030
|
}
|
|
1372
1031
|
|
|
1373
|
-
function
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1032
|
+
async function fetchEnsName(_ref) {
|
|
1033
|
+
let {
|
|
1034
|
+
address,
|
|
1035
|
+
chainId
|
|
1036
|
+
} = _ref;
|
|
1037
|
+
const provider = getProvider({
|
|
1038
|
+
chainId
|
|
1380
1039
|
});
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
function fetchEnsResolver(_x) {
|
|
1385
|
-
return _fetchEnsResolver.apply(this, arguments);
|
|
1040
|
+
const ensName = await provider.lookupAddress(address);
|
|
1041
|
+
return ensName;
|
|
1386
1042
|
}
|
|
1387
1043
|
|
|
1388
|
-
function
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1044
|
+
async function fetchEnsResolver(_ref) {
|
|
1045
|
+
let {
|
|
1046
|
+
chainId,
|
|
1047
|
+
name
|
|
1048
|
+
} = _ref;
|
|
1049
|
+
const provider = getProvider({
|
|
1050
|
+
chainId
|
|
1395
1051
|
});
|
|
1396
|
-
|
|
1052
|
+
const resolver = await provider.getResolver(name);
|
|
1053
|
+
return resolver;
|
|
1397
1054
|
}
|
|
1398
1055
|
|
|
1399
1056
|
function watchEnsAddress(args, callback) {
|
|
1400
|
-
|
|
1401
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1402
|
-
return callback(yield fetchEnsAddress(args));
|
|
1403
|
-
});
|
|
1057
|
+
const client = getClient();
|
|
1404
1058
|
|
|
1405
|
-
|
|
1406
|
-
return _ref.apply(this, arguments);
|
|
1407
|
-
};
|
|
1408
|
-
}();
|
|
1059
|
+
const handleChange = async () => callback(await fetchEnsAddress(args));
|
|
1409
1060
|
|
|
1410
|
-
|
|
1411
|
-
|
|
1061
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1062
|
+
let {
|
|
1412
1063
|
provider
|
|
1413
|
-
} =
|
|
1064
|
+
} = _ref;
|
|
1414
1065
|
return provider;
|
|
1415
1066
|
}, handleChange);
|
|
1416
1067
|
return unsubscribe;
|
|
1417
1068
|
}
|
|
1418
1069
|
|
|
1419
1070
|
function watchEnsAvatar(args, callback) {
|
|
1420
|
-
|
|
1421
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1422
|
-
return callback(yield fetchEnsAvatar(args));
|
|
1423
|
-
});
|
|
1071
|
+
const client = getClient();
|
|
1424
1072
|
|
|
1425
|
-
|
|
1426
|
-
return _ref.apply(this, arguments);
|
|
1427
|
-
};
|
|
1428
|
-
}();
|
|
1073
|
+
const handleChange = async () => callback(await fetchEnsAvatar(args));
|
|
1429
1074
|
|
|
1430
|
-
|
|
1431
|
-
|
|
1075
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1076
|
+
let {
|
|
1432
1077
|
provider
|
|
1433
|
-
} =
|
|
1078
|
+
} = _ref;
|
|
1434
1079
|
return provider;
|
|
1435
1080
|
}, handleChange);
|
|
1436
1081
|
return unsubscribe;
|
|
1437
1082
|
}
|
|
1438
1083
|
|
|
1439
1084
|
function watchEnsName(args, callback) {
|
|
1440
|
-
|
|
1441
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1442
|
-
return callback(yield fetchEnsName(args));
|
|
1443
|
-
});
|
|
1085
|
+
const client = getClient();
|
|
1444
1086
|
|
|
1445
|
-
|
|
1446
|
-
return _ref.apply(this, arguments);
|
|
1447
|
-
};
|
|
1448
|
-
}();
|
|
1087
|
+
const handleChange = async () => callback(await fetchEnsName(args));
|
|
1449
1088
|
|
|
1450
|
-
|
|
1451
|
-
|
|
1089
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1090
|
+
let {
|
|
1452
1091
|
provider
|
|
1453
|
-
} =
|
|
1092
|
+
} = _ref;
|
|
1454
1093
|
return provider;
|
|
1455
1094
|
}, handleChange);
|
|
1456
1095
|
return unsubscribe;
|
|
1457
1096
|
}
|
|
1458
1097
|
|
|
1459
1098
|
function watchEnsResolver(args, callback) {
|
|
1460
|
-
|
|
1461
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1462
|
-
return callback(yield fetchEnsResolver(args));
|
|
1463
|
-
});
|
|
1099
|
+
const client = getClient();
|
|
1464
1100
|
|
|
1465
|
-
|
|
1466
|
-
return _ref.apply(this, arguments);
|
|
1467
|
-
};
|
|
1468
|
-
}();
|
|
1101
|
+
const handleChange = async () => callback(await fetchEnsResolver(args));
|
|
1469
1102
|
|
|
1470
|
-
|
|
1471
|
-
|
|
1103
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1104
|
+
let {
|
|
1472
1105
|
provider
|
|
1473
|
-
} =
|
|
1106
|
+
} = _ref;
|
|
1474
1107
|
return provider;
|
|
1475
1108
|
}, handleChange);
|
|
1476
1109
|
return unsubscribe;
|
|
1477
1110
|
}
|
|
1478
1111
|
|
|
1479
|
-
function fetchFeeData() {
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
formatUnits: units = 'wei'
|
|
1487
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1488
|
-
var feeData = yield client.provider.getFeeData();
|
|
1489
|
-
var formatted = {
|
|
1490
|
-
gasPrice: formatUnits(feeData.gasPrice, units),
|
|
1491
|
-
maxFeePerGas: formatUnits(feeData.maxFeePerGas, units),
|
|
1492
|
-
maxPriorityFeePerGas: formatUnits(feeData.maxPriorityFeePerGas, units)
|
|
1493
|
-
};
|
|
1494
|
-
return _objectSpread2(_objectSpread2({}, feeData), {}, {
|
|
1495
|
-
formatted
|
|
1496
|
-
});
|
|
1112
|
+
async function fetchFeeData() {
|
|
1113
|
+
let {
|
|
1114
|
+
chainId,
|
|
1115
|
+
formatUnits: units = 'wei'
|
|
1116
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1117
|
+
const provider = getProvider({
|
|
1118
|
+
chainId
|
|
1497
1119
|
});
|
|
1498
|
-
|
|
1120
|
+
const feeData = await provider.getFeeData();
|
|
1121
|
+
const formatted = {
|
|
1122
|
+
gasPrice: formatUnits(feeData.gasPrice, units),
|
|
1123
|
+
maxFeePerGas: formatUnits(feeData.maxFeePerGas, units),
|
|
1124
|
+
maxPriorityFeePerGas: formatUnits(feeData.maxPriorityFeePerGas, units)
|
|
1125
|
+
};
|
|
1126
|
+
return { ...feeData,
|
|
1127
|
+
formatted
|
|
1128
|
+
};
|
|
1499
1129
|
}
|
|
1500
1130
|
|
|
1501
1131
|
function watchFeeData(args, callback) {
|
|
1502
|
-
|
|
1503
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1504
|
-
return callback(yield fetchFeeData(args));
|
|
1505
|
-
});
|
|
1132
|
+
const client = getClient();
|
|
1506
1133
|
|
|
1507
|
-
|
|
1508
|
-
return _ref.apply(this, arguments);
|
|
1509
|
-
};
|
|
1510
|
-
}();
|
|
1134
|
+
const handleChange = async () => callback(await fetchFeeData(args));
|
|
1511
1135
|
|
|
1512
|
-
|
|
1136
|
+
const unwatch = args.listenToBlock ? watchBlockNumber({
|
|
1513
1137
|
listen: true
|
|
1514
1138
|
}, handleChange) : undefined;
|
|
1515
|
-
|
|
1516
|
-
|
|
1139
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1140
|
+
let {
|
|
1517
1141
|
provider
|
|
1518
|
-
} =
|
|
1142
|
+
} = _ref;
|
|
1519
1143
|
return provider;
|
|
1520
1144
|
}, handleChange);
|
|
1521
1145
|
return () => {
|
|
@@ -1524,100 +1148,63 @@ function watchFeeData(args, callback) {
|
|
|
1524
1148
|
};
|
|
1525
1149
|
}
|
|
1526
1150
|
|
|
1527
|
-
function
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
function fetchToken(_x) {
|
|
1536
|
-
return _fetchToken.apply(this, arguments);
|
|
1537
|
-
}
|
|
1538
|
-
|
|
1539
|
-
function _fetchToken() {
|
|
1540
|
-
_fetchToken = _asyncToGenerator(function* (_ref) {
|
|
1541
|
-
var {
|
|
1542
|
-
address,
|
|
1543
|
-
formatUnits: units = 'ether'
|
|
1544
|
-
} = _ref;
|
|
1545
|
-
if (!address) throw new Error('address is required');
|
|
1546
|
-
var {
|
|
1547
|
-
provider
|
|
1548
|
-
} = client;
|
|
1549
|
-
var contract = new Contract(address, erc20ABI, provider);
|
|
1550
|
-
var [symbol, decimals, totalSupply] = yield Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
|
|
1551
|
-
var token = {
|
|
1552
|
-
address,
|
|
1553
|
-
decimals,
|
|
1554
|
-
symbol,
|
|
1555
|
-
totalSupply: {
|
|
1556
|
-
formatted: formatUnits(totalSupply, units),
|
|
1557
|
-
value: totalSupply
|
|
1558
|
-
}
|
|
1559
|
-
};
|
|
1560
|
-
return token;
|
|
1151
|
+
async function fetchToken(_ref) {
|
|
1152
|
+
let {
|
|
1153
|
+
address,
|
|
1154
|
+
chainId,
|
|
1155
|
+
formatUnits: units = 'ether'
|
|
1156
|
+
} = _ref;
|
|
1157
|
+
const provider = getProvider({
|
|
1158
|
+
chainId
|
|
1561
1159
|
});
|
|
1562
|
-
|
|
1160
|
+
const contract = new Contract(address, erc20ABI, provider);
|
|
1161
|
+
const [symbol, decimals, totalSupply] = await Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
|
|
1162
|
+
const token = {
|
|
1163
|
+
address,
|
|
1164
|
+
decimals,
|
|
1165
|
+
symbol,
|
|
1166
|
+
totalSupply: {
|
|
1167
|
+
formatted: formatUnits(totalSupply, units),
|
|
1168
|
+
value: totalSupply
|
|
1169
|
+
}
|
|
1170
|
+
};
|
|
1171
|
+
return token;
|
|
1563
1172
|
}
|
|
1564
1173
|
|
|
1565
1174
|
function watchToken(args, callback) {
|
|
1566
|
-
|
|
1567
|
-
var _ref = _asyncToGenerator(function* () {
|
|
1568
|
-
return callback(yield fetchToken(args));
|
|
1569
|
-
});
|
|
1175
|
+
const client = getClient();
|
|
1570
1176
|
|
|
1571
|
-
|
|
1572
|
-
return _ref.apply(this, arguments);
|
|
1573
|
-
};
|
|
1574
|
-
}();
|
|
1177
|
+
const handleChange = async () => callback(await fetchToken(args));
|
|
1575
1178
|
|
|
1576
|
-
|
|
1577
|
-
|
|
1179
|
+
const unsubscribe = client.subscribe(_ref => {
|
|
1180
|
+
let {
|
|
1578
1181
|
provider
|
|
1579
|
-
} =
|
|
1182
|
+
} = _ref;
|
|
1580
1183
|
return provider;
|
|
1581
1184
|
}, handleChange);
|
|
1582
1185
|
return unsubscribe;
|
|
1583
1186
|
}
|
|
1584
1187
|
|
|
1585
|
-
function sendTransaction(
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
} catch (error_) {
|
|
1597
|
-
var error = error_;
|
|
1598
|
-
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
1599
|
-
throw error;
|
|
1600
|
-
}
|
|
1601
|
-
});
|
|
1602
|
-
return _sendTransaction.apply(this, arguments);
|
|
1603
|
-
}
|
|
1604
|
-
|
|
1605
|
-
function waitForTransaction(_x) {
|
|
1606
|
-
return _waitForTransaction.apply(this, arguments);
|
|
1188
|
+
async function sendTransaction(args) {
|
|
1189
|
+
try {
|
|
1190
|
+
const signer = await fetchSigner();
|
|
1191
|
+
if (!signer) throw new ConnectorNotFoundError();
|
|
1192
|
+
const transaction = await signer.sendTransaction(args.request);
|
|
1193
|
+
return transaction;
|
|
1194
|
+
} catch (error_) {
|
|
1195
|
+
let error = error_;
|
|
1196
|
+
if (error_.code === 4001) error = new UserRejectedRequestError();
|
|
1197
|
+
throw error;
|
|
1198
|
+
}
|
|
1607
1199
|
}
|
|
1608
1200
|
|
|
1609
|
-
function
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
provider
|
|
1613
|
-
} = client;
|
|
1614
|
-
var promise; // eslint-disable-next-line testing-library/await-async-utils
|
|
1201
|
+
async function waitForTransaction(args) {
|
|
1202
|
+
const provider = getProvider();
|
|
1203
|
+
let promise; // eslint-disable-next-line testing-library/await-async-utils
|
|
1615
1204
|
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
});
|
|
1620
|
-
return _waitForTransaction.apply(this, arguments);
|
|
1205
|
+
if (args.wait) promise = args.wait(args.confirmations);else if (args.hash) promise = provider.waitForTransaction(args.hash, args.confirmations, args.timeout);else throw new Error('hash or wait is required');
|
|
1206
|
+
const receipt = await promise;
|
|
1207
|
+
return receipt;
|
|
1621
1208
|
}
|
|
1622
1209
|
|
|
1623
|
-
export { Client, InjectedConnector, Client as WagmiClient, connect, createClient, createStorage, createClient as createWagmiClient, createStorage as createWagmiStorage, disconnect,
|
|
1210
|
+
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, watchBalance, watchBlockNumber, watchContractEvent, watchEnsAddress, watchEnsAvatar, watchEnsName, watchEnsResolver, watchFeeData, watchNetwork, watchReadContract, watchSigner, watchToken, writeContract };
|