@wagmi/core 0.3.6 → 0.4.0-test.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/chains/dist/wagmi-core-chains.cjs.d.ts +11 -1
  2. package/chains/dist/wagmi-core-chains.cjs.js +15 -6
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.d.ts +11 -1
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.js +15 -6
  5. package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.d.ts +1 -0
  6. package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.dev.js +200 -0
  7. package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.js +7 -0
  8. package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.prod.js +200 -0
  9. package/connectors/injected/dist/wagmi-core-connectors-injected.esm.js +196 -0
  10. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.d.ts +11 -1
  11. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.js +15 -6
  12. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.d.ts +11 -1
  13. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.js +15 -6
  14. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.d.ts +11 -1
  15. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.js +15 -6
  16. package/connectors/walletLink/dist/wagmi-core-connectors-walletLink.cjs.d.ts +11 -0
  17. package/connectors/walletLink/dist/wagmi-core-connectors-walletLink.cjs.js +16 -0
  18. package/dist/wagmi-core.cjs.d.ts +11 -1
  19. package/dist/wagmi-core.cjs.js +15 -6
  20. package/package.json +3 -4
  21. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.d.ts +11 -1
  22. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.js +15 -6
  23. package/providers/infura/dist/wagmi-core-providers-infura.cjs.d.ts +11 -1
  24. package/providers/infura/dist/wagmi-core-providers-infura.cjs.js +15 -6
  25. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.d.ts +11 -1
  26. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.js +15 -6
  27. package/providers/public/dist/wagmi-core-providers-public.cjs.d.ts +11 -1
  28. package/providers/public/dist/wagmi-core-providers-public.cjs.js +15 -6
  29. package/chains/dist/wagmi-core-chains.cjs.dev.js +0 -22
  30. package/chains/dist/wagmi-core-chains.cjs.prod.js +0 -22
  31. package/chains/dist/wagmi-core-chains.esm.js +0 -2
  32. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +0 -261
  33. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +0 -261
  34. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +0 -239
  35. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +0 -79
  36. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +0 -79
  37. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +0 -75
  38. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +0 -265
  39. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +0 -265
  40. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +0 -256
  41. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +0 -227
  42. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +0 -227
  43. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +0 -205
  44. package/dist/base-d45bb8f9.cjs.dev.js +0 -290
  45. package/dist/base-d69e580f.esm.js +0 -267
  46. package/dist/base-ffe4d8ed.cjs.prod.js +0 -290
  47. package/dist/chains-0dd661ab.cjs.prod.js +0 -349
  48. package/dist/chains-98e2e613.cjs.dev.js +0 -349
  49. package/dist/chains-a0a80d94.esm.js +0 -329
  50. package/dist/client-20bfac7f.cjs.dev.js +0 -671
  51. package/dist/client-61f14c97.esm.js +0 -660
  52. package/dist/client-8b124969.cjs.prod.js +0 -671
  53. package/dist/declarations/src/actions/accounts/connect.d.ts +0 -18
  54. package/dist/declarations/src/actions/accounts/disconnect.d.ts +0 -1
  55. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +0 -20
  56. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +0 -3
  57. package/dist/declarations/src/actions/accounts/getAccount.d.ts +0 -7
  58. package/dist/declarations/src/actions/accounts/getNetwork.d.ts +0 -9
  59. package/dist/declarations/src/actions/accounts/index.d.ts +0 -12
  60. package/dist/declarations/src/actions/accounts/signMessage.d.ts +0 -9
  61. package/dist/declarations/src/actions/accounts/signTypedData.d.ts +0 -22
  62. package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +0 -6
  63. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +0 -4
  64. package/dist/declarations/src/actions/accounts/watchNetwork.d.ts +0 -3
  65. package/dist/declarations/src/actions/accounts/watchSigner.d.ts +0 -3
  66. package/dist/declarations/src/actions/contracts/getContract.d.ts +0 -10
  67. package/dist/declarations/src/actions/contracts/index.d.ts +0 -5
  68. package/dist/declarations/src/actions/contracts/readContract.d.ts +0 -14
  69. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +0 -14
  70. package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +0 -7
  71. package/dist/declarations/src/actions/contracts/writeContract.d.ts +0 -10
  72. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +0 -8
  73. package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +0 -8
  74. package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +0 -8
  75. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +0 -9
  76. package/dist/declarations/src/actions/ens/index.d.ts +0 -4
  77. package/dist/declarations/src/actions/index.d.ts +0 -7
  78. package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +0 -5
  79. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +0 -16
  80. package/dist/declarations/src/actions/network-status/index.d.ts +0 -3
  81. package/dist/declarations/src/actions/network-status/watchBlockNumber.d.ts +0 -6
  82. package/dist/declarations/src/actions/providers/getProvider.d.ts +0 -7
  83. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +0 -7
  84. package/dist/declarations/src/actions/providers/index.d.ts +0 -4
  85. package/dist/declarations/src/actions/providers/watchProvider.d.ts +0 -4
  86. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +0 -4
  87. package/dist/declarations/src/actions/tokens/fetchToken.d.ts +0 -20
  88. package/dist/declarations/src/actions/tokens/index.d.ts +0 -1
  89. package/dist/declarations/src/actions/transactions/index.d.ts +0 -2
  90. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +0 -7
  91. package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +0 -17
  92. package/dist/declarations/src/chains.d.ts +0 -1
  93. package/dist/declarations/src/client.d.ts +0 -82
  94. package/dist/declarations/src/connectors/base.d.ts +0 -60
  95. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +0 -54
  96. package/dist/declarations/src/connectors/index.d.ts +0 -2
  97. package/dist/declarations/src/connectors/injected.d.ts +0 -56
  98. package/dist/declarations/src/connectors/metaMask.d.ts +0 -13
  99. package/dist/declarations/src/connectors/mock/connector.d.ts +0 -41
  100. package/dist/declarations/src/connectors/mock/index.d.ts +0 -2
  101. package/dist/declarations/src/connectors/mock/provider.d.ts +0 -40
  102. package/dist/declarations/src/connectors/walletConnect.d.ts +0 -38
  103. package/dist/declarations/src/constants/abis.d.ts +0 -2
  104. package/dist/declarations/src/constants/blockExplorers.d.ts +0 -9
  105. package/dist/declarations/src/constants/chains.d.ts +0 -52
  106. package/dist/declarations/src/constants/index.d.ts +0 -7
  107. package/dist/declarations/src/constants/rpcs.d.ts +0 -9
  108. package/dist/declarations/src/constants/units.d.ts +0 -1
  109. package/dist/declarations/src/errors.d.ts +0 -72
  110. package/dist/declarations/src/index.d.ts +0 -13
  111. package/dist/declarations/src/providers/alchemy.d.ts +0 -7
  112. package/dist/declarations/src/providers/infura.d.ts +0 -7
  113. package/dist/declarations/src/providers/jsonRpc.d.ts +0 -11
  114. package/dist/declarations/src/providers/public.d.ts +0 -6
  115. package/dist/declarations/src/storage.d.ts +0 -12
  116. package/dist/declarations/src/types/index.d.ts +0 -148
  117. package/dist/declarations/src/utils/configureChains.d.ts +0 -20
  118. package/dist/declarations/src/utils/getInjectedName.d.ts +0 -1
  119. package/dist/declarations/src/utils/index.d.ts +0 -5
  120. package/dist/declarations/src/utils/normalizeChainId.d.ts +0 -1
  121. package/dist/declarations/src/utils/warn.d.ts +0 -1
  122. package/dist/rpcs-7cfbd91c.esm.js +0 -30
  123. package/dist/rpcs-9c4eb960.cjs.dev.js +0 -35
  124. package/dist/rpcs-b3c52116.cjs.prod.js +0 -35
  125. package/dist/wagmi-core.cjs.dev.js +0 -756
  126. package/dist/wagmi-core.cjs.prod.js +0 -756
  127. package/dist/wagmi-core.esm.js +0 -696
  128. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +0 -38
  129. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +0 -38
  130. package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +0 -34
  131. package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +0 -38
  132. package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +0 -38
  133. package/providers/infura/dist/wagmi-core-providers-infura.esm.js +0 -34
  134. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +0 -45
  135. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +0 -45
  136. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +0 -41
  137. package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +0 -34
  138. package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +0 -34
  139. package/providers/public/dist/wagmi-core-providers-public.esm.js +0 -30
@@ -1,756 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var client = require('./client-8b124969.cjs.prod.js');
6
- var base = require('./base-ffe4d8ed.cjs.prod.js');
7
- var ethers$1 = require('ethers/lib/ethers');
8
- var utils = require('ethers/lib/utils');
9
- var chains = require('./chains-0dd661ab.cjs.prod.js');
10
- var ethers = require('ethers');
11
- var rpcs = require('./rpcs-b3c52116.cjs.prod.js');
12
- require('zustand/vanilla');
13
- require('zustand/middleware');
14
- require('eventemitter3');
15
-
16
- // https://ethereum.org/en/developers/docs/standards/tokens/erc-20
17
- 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
18
-
19
- 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'];
20
-
21
- // https://github.com/ethers-io/ethers.js/blob/master/packages/units/src.ts/index.ts#L10-L18
22
- const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
23
-
24
- function configureChains(defaultChains, providers) {
25
- let {
26
- minQuorum = 1,
27
- targetQuorum = 1,
28
- stallTimeout
29
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
30
- if (targetQuorum < minQuorum) throw new Error('quorum cannot be lower than minQuorum');
31
- let chains = [];
32
- const providers_ = {};
33
- const webSocketProviders_ = {};
34
-
35
- for (const chain of defaultChains) {
36
- let configExists = false;
37
-
38
- for (const provider of providers) {
39
- const apiConfig = provider(chain); // If no API configuration was found (ie. no RPC URL) for
40
- // this provider, then we skip and check the next one.
41
-
42
- if (!apiConfig) continue;
43
- configExists = true;
44
-
45
- if (!chains.some(_ref => {
46
- let {
47
- id
48
- } = _ref;
49
- return id === chain.id;
50
- })) {
51
- chains = [...chains, apiConfig.chain];
52
- }
53
-
54
- providers_[chain.id] = [...(providers_[chain.id] || []), apiConfig.provider];
55
-
56
- if (apiConfig.webSocketProvider) {
57
- webSocketProviders_[chain.id] = [...(webSocketProviders_[chain.id] || []), apiConfig.webSocketProvider];
58
- }
59
- } // If no API configuration was found across the providers
60
- // then we throw an error to the consumer.
61
-
62
-
63
- if (!configExists) {
64
- throw new Error(["Could not find valid provider configuration for chain \"".concat(chain.name, "\".\n"), "You may need to add `jsonRpcProvider` to `configureChains` with the chain's RPC URLs.", 'Read more: https://wagmi.sh/docs/providers/jsonRpc'].join('\n'));
65
- }
66
- }
67
-
68
- return {
69
- chains,
70
- provider: _ref2 => {
71
- let {
72
- chainId
73
- } = _ref2;
74
- const chainProviders = providers_[chainId && chains.some(x => x.id === chainId) ? chainId : defaultChains[0].id];
75
- if (chainProviders.length === 1) return chainProviders[0]();
76
- return fallbackProvider(targetQuorum, minQuorum, chainProviders, {
77
- stallTimeout
78
- });
79
- },
80
- webSocketProvider: _ref3 => {
81
- let {
82
- chainId
83
- } = _ref3;
84
- const chainWebSocketProviders = webSocketProviders_[chainId && chains.some(x => x.id === chainId) ? chainId : defaultChains[0].id];
85
- if (!chainWebSocketProviders) return undefined;
86
- if (chainWebSocketProviders.length === 1) return chainWebSocketProviders[0](); // WebSockets do not work with `fallbackProvider`
87
- // Default to first available
88
-
89
- return chainWebSocketProviders[0]();
90
- }
91
- };
92
- }
93
-
94
- function fallbackProvider(targetQuorum, minQuorum, providers_, _ref4) {
95
- let {
96
- stallTimeout
97
- } = _ref4;
98
-
99
- try {
100
- return new ethers.providers.FallbackProvider(providers_.map((chainProvider, index) => {
101
- var _provider$priority, _provider$stallTimeou;
102
-
103
- const provider = chainProvider();
104
- return {
105
- provider,
106
- priority: (_provider$priority = provider.priority) !== null && _provider$priority !== void 0 ? _provider$priority : index,
107
- stallTimeout: (_provider$stallTimeou = provider.stallTimeout) !== null && _provider$stallTimeou !== void 0 ? _provider$stallTimeou : stallTimeout,
108
- weight: provider.weight
109
- };
110
- }), targetQuorum);
111
- } catch (error) {
112
- var _error$message;
113
-
114
- if (error !== null && error !== void 0 && (_error$message = error.message) !== null && _error$message !== void 0 && _error$message.includes('quorum will always fail; larger than total weight')) {
115
- if (targetQuorum === minQuorum) throw error;
116
- return fallbackProvider(targetQuorum - 1, minQuorum, providers_, {
117
- stallTimeout
118
- });
119
- }
120
-
121
- throw error;
122
- }
123
- }
124
-
125
- async function connect(_ref) {
126
- let {
127
- chainId,
128
- connector
129
- } = _ref;
130
- const activeConnector = client.client.connector;
131
- if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new base.ConnectorAlreadyConnectedError();
132
- const data = await connector.connect({
133
- chainId
134
- });
135
- client.client.setLastUsedConnector(connector.id);
136
- client.client.setState(x => ({ ...x,
137
- connector,
138
- chains: connector === null || connector === void 0 ? void 0 : connector.chains,
139
- data
140
- }));
141
- client.client.storage.setItem('connected', true);
142
- return { ...data,
143
- connector
144
- };
145
- }
146
-
147
- async function disconnect() {
148
- const client$1 = client.getClient();
149
- if (client$1.connector) await client$1.connector.disconnect();
150
- client$1.clearState();
151
- client$1.storage.removeItem('connected');
152
- }
153
-
154
- function getProvider() {
155
- let {
156
- chainId
157
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
158
- const client$1 = client.getClient();
159
- if (chainId && typeof client$1.config.provider === 'function') return client$1.config.provider({
160
- chainId
161
- });
162
- return client$1.provider;
163
- }
164
-
165
- function getWebSocketProvider() {
166
- let {
167
- chainId
168
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
169
- const client$1 = client.getClient();
170
- if (chainId && typeof client$1.config.webSocketProvider === 'function') return client$1.config.webSocketProvider({
171
- chainId
172
- });
173
- return client$1.webSocketProvider;
174
- }
175
-
176
- function watchProvider(args, callback) {
177
- const client$1 = client.getClient();
178
-
179
- const handleChange = async () => callback(getProvider(args));
180
-
181
- const unsubscribe = client$1.subscribe(_ref => {
182
- let {
183
- provider
184
- } = _ref;
185
- return provider;
186
- }, handleChange);
187
- return unsubscribe;
188
- }
189
-
190
- function watchWebSocketProvider(args, callback) {
191
- const client$1 = client.getClient();
192
-
193
- const handleChange = async () => callback(getWebSocketProvider(args));
194
-
195
- const unsubscribe = client$1.subscribe(_ref => {
196
- let {
197
- webSocketProvider
198
- } = _ref;
199
- return webSocketProvider;
200
- }, handleChange);
201
- return unsubscribe;
202
- }
203
-
204
- async function fetchBalance(_ref) {
205
- var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
206
-
207
- let {
208
- addressOrName,
209
- chainId,
210
- formatUnits: unit = 'ether',
211
- token
212
- } = _ref;
213
- const client$1 = client.getClient();
214
- const provider = getProvider({
215
- chainId
216
- });
217
-
218
- if (token) {
219
- const contract = new ethers$1.Contract(token, erc20ABI, provider);
220
- const [value, decimals, symbol] = await Promise.all([contract.balanceOf(addressOrName), contract.decimals(), contract.symbol()]);
221
- return {
222
- decimals,
223
- formatted: utils.formatUnits(value, unit),
224
- symbol,
225
- unit,
226
- value
227
- };
228
- }
229
-
230
- const chains$1 = [...((_client$connector$cha = (_client$connector = client$1.connector) === null || _client$connector === void 0 ? void 0 : _client$connector.chains) !== null && _client$connector$cha !== void 0 ? _client$connector$cha : []), ...chains.allChains];
231
- const value = await provider.getBalance(addressOrName);
232
- const chain = chains$1.find(x => x.id === provider.network.chainId);
233
- return {
234
- 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,
235
- formatted: utils.formatUnits(value, unit),
236
- 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',
237
- unit,
238
- value
239
- };
240
- }
241
-
242
- async function fetchSigner() {
243
- var _client$connector, _client$connector$get;
244
-
245
- const client$1 = client.getClient();
246
- const signer = (await ((_client$connector = client$1.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))) || null;
247
- return signer;
248
- }
249
-
250
- function getAccount() {
251
- const {
252
- data,
253
- connector
254
- } = client.getClient();
255
- return {
256
- address: data === null || data === void 0 ? void 0 : data.account,
257
- connector
258
- };
259
- }
260
-
261
- function getNetwork() {
262
- var _client$data, _client$data$chain, _client$chains, _find, _client$data2;
263
-
264
- const client$1 = client.getClient();
265
- const chainId = (_client$data = client$1.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;
266
- const activeChains = (_client$chains = client$1.chains) !== null && _client$chains !== void 0 ? _client$chains : [];
267
- const activeChain = (_find = [...activeChains, ...chains.allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
268
- id: chainId,
269
- name: "Chain ".concat(chainId),
270
- network: "".concat(chainId),
271
- rpcUrls: {
272
- default: ''
273
- }
274
- };
275
- return {
276
- chain: chainId ? { ...activeChain,
277
- ...((_client$data2 = client$1.data) === null || _client$data2 === void 0 ? void 0 : _client$data2.chain),
278
- id: chainId
279
- } : undefined,
280
- chains: activeChains
281
- };
282
- }
283
-
284
- async function signMessage(args) {
285
- try {
286
- const signer = await fetchSigner();
287
- if (!signer) throw new base.ConnectorNotFoundError();
288
- return await signer.signMessage(args.message);
289
- } catch (error) {
290
- if (error.code === 4001) throw new base.UserRejectedRequestError(error);
291
- throw error;
292
- }
293
- }
294
-
295
- async function signTypedData(args) {
296
- try {
297
- const signer = await fetchSigner();
298
- if (!signer) throw new base.ConnectorNotFoundError(); // Method name may be changed in the future, see https://docs.ethers.io/v5/api/signer/#Signer-signTypedData
299
-
300
- return await signer._signTypedData(args.domain, args.types, args.value);
301
- } catch (error) {
302
- if (error.code === 4001) throw new base.UserRejectedRequestError(error);
303
- throw error;
304
- }
305
- }
306
-
307
- async function switchNetwork(_ref) {
308
- var _client$connector;
309
-
310
- let {
311
- chainId
312
- } = _ref;
313
- const client$1 = client.getClient();
314
- if (!((_client$connector = client$1.connector) !== null && _client$connector !== void 0 && _client$connector.switchChain)) throw new base.SwitchChainNotSupportedError();
315
- const chain = await client$1.connector.switchChain(chainId);
316
- return chain;
317
- }
318
-
319
- function watchAccount(callback) {
320
- const client$1 = client.getClient();
321
-
322
- const handleChange = () => callback(getAccount());
323
-
324
- const unsubscribe = client$1.subscribe(_ref => {
325
- let {
326
- data,
327
- connector
328
- } = _ref;
329
- return {
330
- account: data === null || data === void 0 ? void 0 : data.account,
331
- connector
332
- };
333
- }, handleChange, {
334
- equalityFn: (selected, previous) => selected.account === previous.account && selected.connector === previous.connector
335
- });
336
- return unsubscribe;
337
- }
338
-
339
- function watchNetwork(callback) {
340
- const client$1 = client.getClient();
341
-
342
- const handleChange = () => callback(getNetwork());
343
-
344
- const unsubscribe = client$1.subscribe(_ref => {
345
- var _data$chain;
346
-
347
- let {
348
- data,
349
- chains
350
- } = _ref;
351
- return {
352
- chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
353
- chains
354
- };
355
- }, handleChange, {
356
- equalityFn: (selected, previous) => selected.chainId === previous.chainId && selected.chains === previous.chains
357
- });
358
- return unsubscribe;
359
- }
360
-
361
- function watchSigner(callback) {
362
- const client$1 = client.getClient();
363
-
364
- const handleChange = async () => callback(await fetchSigner());
365
-
366
- const unsubscribe = client$1.subscribe(_ref => {
367
- var _data$chain;
368
-
369
- let {
370
- data,
371
- connector
372
- } = _ref;
373
- return {
374
- account: data === null || data === void 0 ? void 0 : data.account,
375
- chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
376
- connector
377
- };
378
- }, handleChange, {
379
- equalityFn: (selected, previous) => selected.account === previous.account && selected.chainId === previous.chainId && selected.connector === previous.connector
380
- });
381
- return unsubscribe;
382
- }
383
-
384
- function getContract(_ref) {
385
- let {
386
- addressOrName,
387
- contractInterface,
388
- signerOrProvider
389
- } = _ref;
390
- return new ethers.Contract(addressOrName, contractInterface, signerOrProvider);
391
- }
392
-
393
- async function readContract(contractConfig, functionName) {
394
- let {
395
- args,
396
- chainId,
397
- overrides
398
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
399
- const provider = getProvider({
400
- chainId
401
- });
402
- const contract = getContract({
403
- signerOrProvider: provider,
404
- ...contractConfig
405
- });
406
- const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
407
- const contractFunction = contract[functionName];
408
- if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
409
- const response = await (contractFunction === null || contractFunction === void 0 ? void 0 : contractFunction(...params));
410
- return response;
411
- }
412
-
413
- function watchContractEvent(
414
- /** Contract configuration */
415
- contractArgs,
416
- /** Event name to listen to */
417
- eventName, callback) {
418
- let {
419
- chainId,
420
- once
421
- } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
422
- let contract;
423
-
424
- const watchEvent = async () => {
425
- if (contract) {
426
- var _contract;
427
-
428
- (_contract = contract) === null || _contract === void 0 ? void 0 : _contract.off(eventName, callback);
429
- }
430
-
431
- contract = getContract({
432
- signerOrProvider: getWebSocketProvider({
433
- chainId
434
- }) || getProvider({
435
- chainId
436
- }),
437
- ...contractArgs
438
- });
439
- if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
440
- };
441
-
442
- watchEvent();
443
- const client$1 = client.getClient();
444
- const unsubscribe = client$1.subscribe(_ref => {
445
- let {
446
- provider,
447
- webSocketProvider
448
- } = _ref;
449
- return {
450
- provider,
451
- webSocketProvider
452
- };
453
- }, watchEvent, {
454
- equalityFn: (selected, previous) => selected.provider === previous.provider && selected.webSocketProvider === previous.webSocketProvider
455
- });
456
- return () => {
457
- var _contract2;
458
-
459
- (_contract2 = contract) === null || _contract2 === void 0 ? void 0 : _contract2.off(eventName, callback);
460
- unsubscribe();
461
- };
462
- }
463
-
464
- async function fetchBlockNumber() {
465
- let {
466
- chainId
467
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
468
- const provider = getProvider({
469
- chainId
470
- });
471
- const blockNumber = await provider.getBlockNumber();
472
- return blockNumber;
473
- }
474
-
475
- function watchBlockNumber(args, callback) {
476
- var _client$webSocketProv;
477
-
478
- let previousProvider;
479
-
480
- const createListener = provider => {
481
- if (previousProvider) {
482
- var _previousProvider;
483
-
484
- (_previousProvider = previousProvider) === null || _previousProvider === void 0 ? void 0 : _previousProvider.off('block', callback);
485
- }
486
-
487
- provider.on('block', callback);
488
- previousProvider = provider;
489
- };
490
-
491
- const client$1 = client.getClient();
492
- const provider_ = (_client$webSocketProv = client$1.webSocketProvider) !== null && _client$webSocketProv !== void 0 ? _client$webSocketProv : client$1.provider;
493
- if (args.listen) createListener(provider_);
494
- const unsubscribe = client$1.subscribe(_ref => {
495
- let {
496
- provider,
497
- webSocketProvider
498
- } = _ref;
499
- return {
500
- provider,
501
- webSocketProvider
502
- };
503
- }, async _ref2 => {
504
- let {
505
- provider,
506
- webSocketProvider
507
- } = _ref2;
508
- const provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
509
-
510
- if (args.listen && provider_) {
511
- createListener(provider_);
512
- }
513
-
514
- callback(await fetchBlockNumber());
515
- }, {
516
- equalityFn: (selected, previous) => selected.provider === previous.provider && selected.webSocketProvider === previous.webSocketProvider
517
- });
518
- return () => {
519
- unsubscribe();
520
- provider_ === null || provider_ === void 0 ? void 0 : provider_.off('block', callback);
521
- };
522
- }
523
-
524
- function watchReadContract(contractConfig, functionName) {
525
- let config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
526
- let callback = arguments.length > 3 ? arguments[3] : undefined;
527
- const client$1 = client.getClient();
528
-
529
- const handleChange = async () => callback(await readContract(contractConfig, functionName, config));
530
-
531
- const unwatch = config.listenToBlock ? watchBlockNumber({
532
- listen: true
533
- }, handleChange) : undefined;
534
- const unsubscribe = client$1.subscribe(_ref => {
535
- let {
536
- provider
537
- } = _ref;
538
- return provider;
539
- }, handleChange);
540
- return () => {
541
- unsubscribe();
542
- unwatch === null || unwatch === void 0 ? void 0 : unwatch();
543
- };
544
- }
545
-
546
- async function writeContract(contractConfig, functionName) {
547
- let {
548
- args,
549
- overrides
550
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
551
- const client$1 = client.getClient();
552
- if (!client$1.connector) throw new base.ConnectorNotFoundError();
553
- const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
554
-
555
- try {
556
- const signer = await client$1.connector.getSigner();
557
- const contract = getContract(contractConfig);
558
- const contractWithSigner = contract.connect(signer);
559
- const contractFunction = contractWithSigner[functionName];
560
- if (!contractFunction) console.warn("\"".concat(functionName, "\" does not exist in interface for contract \"").concat(contractConfig.addressOrName, "\""));
561
- const response = await contractFunction(...params);
562
- return response;
563
- } catch (error) {
564
- if (error.code === 4001) throw new base.UserRejectedRequestError(error);
565
- throw error;
566
- }
567
- }
568
-
569
- async function fetchEnsAddress(_ref) {
570
- let {
571
- chainId,
572
- name
573
- } = _ref;
574
- const provider = getProvider({
575
- chainId
576
- });
577
- const address = await provider.resolveName(name);
578
-
579
- try {
580
- return address ? utils.getAddress(address) : null;
581
- } catch (_error) {
582
- return null;
583
- }
584
- }
585
-
586
- async function fetchEnsAvatar(_ref) {
587
- let {
588
- addressOrName,
589
- chainId
590
- } = _ref;
591
- const provider = getProvider({
592
- chainId
593
- }); // TODO: Update with more advanced logic
594
- // https://github.com/ensdomains/ens-avatar
595
-
596
- const avatar = await provider.getAvatar(addressOrName);
597
- return avatar;
598
- }
599
-
600
- async function fetchEnsName(_ref) {
601
- let {
602
- address,
603
- chainId
604
- } = _ref;
605
- const provider = getProvider({
606
- chainId
607
- });
608
- return await provider.lookupAddress(address);
609
- }
610
-
611
- async function fetchEnsResolver(_ref) {
612
- let {
613
- chainId,
614
- name
615
- } = _ref;
616
- const provider = getProvider({
617
- chainId
618
- });
619
- const resolver = await provider.getResolver(name);
620
- return resolver;
621
- }
622
-
623
- async function fetchFeeData() {
624
- let {
625
- chainId,
626
- formatUnits: units = 'wei'
627
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
628
- const provider = getProvider({
629
- chainId
630
- });
631
- const feeData = await provider.getFeeData();
632
- const formatted = {
633
- gasPrice: feeData.gasPrice ? utils.formatUnits(feeData.gasPrice, units) : null,
634
- maxFeePerGas: feeData.maxFeePerGas ? utils.formatUnits(feeData.maxFeePerGas, units) : null,
635
- maxPriorityFeePerGas: feeData.maxPriorityFeePerGas ? utils.formatUnits(feeData.maxPriorityFeePerGas, units) : null
636
- };
637
- return { ...feeData,
638
- formatted
639
- };
640
- }
641
-
642
- async function fetchToken(_ref) {
643
- let {
644
- address,
645
- chainId,
646
- formatUnits: units = 'ether'
647
- } = _ref;
648
- const provider = getProvider({
649
- chainId
650
- });
651
- const contract = new ethers$1.Contract(address, erc20ABI, provider);
652
- const [symbol, decimals, totalSupply] = await Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
653
- const token = {
654
- address,
655
- decimals,
656
- symbol,
657
- totalSupply: {
658
- formatted: utils.formatUnits(totalSupply, units),
659
- value: totalSupply
660
- }
661
- };
662
- return token;
663
- }
664
-
665
- async function sendTransaction(args) {
666
- try {
667
- const signer = await fetchSigner();
668
- if (!signer) throw new base.ConnectorNotFoundError();
669
- const transaction = await signer.sendTransaction(args.request);
670
- return transaction;
671
- } catch (error) {
672
- if (error.code === 4001) throw new base.UserRejectedRequestError(error);
673
- throw error;
674
- }
675
- }
676
-
677
- async function waitForTransaction(_ref) {
678
- let {
679
- chainId,
680
- confirmations,
681
- hash,
682
- timeout,
683
- wait: wait_
684
- } = _ref;
685
- let promise;
686
-
687
- if (hash) {
688
- const provider = getProvider({
689
- chainId
690
- });
691
- promise = provider.waitForTransaction(hash, confirmations, timeout);
692
- } else if (wait_) promise = wait_(confirmations);else throw new Error('hash or wait is required');
693
-
694
- return await promise;
695
- }
696
-
697
- exports.Client = client.Client;
698
- exports.InjectedConnector = client.InjectedConnector;
699
- exports.createClient = client.createClient;
700
- exports.createStorage = client.createStorage;
701
- exports.noopStorage = client.noopStorage;
702
- exports.AddChainError = base.AddChainError;
703
- exports.ChainNotConfiguredError = base.ChainNotConfiguredError;
704
- exports.Connector = base.Connector;
705
- exports.ConnectorAlreadyConnectedError = base.ConnectorAlreadyConnectedError;
706
- exports.ConnectorNotFoundError = base.ConnectorNotFoundError;
707
- exports.ProviderRpcError = base.ProviderRpcError;
708
- exports.ResourceUnavailableError = base.ResourceUnavailableError;
709
- exports.RpcError = base.RpcError;
710
- exports.SwitchChainError = base.SwitchChainError;
711
- exports.SwitchChainNotSupportedError = base.SwitchChainNotSupportedError;
712
- exports.UserRejectedRequestError = base.UserRejectedRequestError;
713
- exports.normalizeChainId = base.normalizeChainId;
714
- exports.allChains = chains.allChains;
715
- exports.chain = chains.chain;
716
- exports.chainId = chains.chainId;
717
- exports.defaultChains = chains.defaultChains;
718
- exports.defaultL2Chains = chains.defaultL2Chains;
719
- exports.etherscanBlockExplorers = chains.etherscanBlockExplorers;
720
- exports.alchemyRpcUrls = rpcs.alchemyRpcUrls;
721
- exports.infuraRpcUrls = rpcs.infuraRpcUrls;
722
- exports.configureChains = configureChains;
723
- exports.connect = connect;
724
- exports.disconnect = disconnect;
725
- exports.erc20ABI = erc20ABI;
726
- exports.erc721ABI = erc721ABI;
727
- exports.fetchBalance = fetchBalance;
728
- exports.fetchBlockNumber = fetchBlockNumber;
729
- exports.fetchEnsAddress = fetchEnsAddress;
730
- exports.fetchEnsAvatar = fetchEnsAvatar;
731
- exports.fetchEnsName = fetchEnsName;
732
- exports.fetchEnsResolver = fetchEnsResolver;
733
- exports.fetchFeeData = fetchFeeData;
734
- exports.fetchSigner = fetchSigner;
735
- exports.fetchToken = fetchToken;
736
- exports.getAccount = getAccount;
737
- exports.getContract = getContract;
738
- exports.getNetwork = getNetwork;
739
- exports.getProvider = getProvider;
740
- exports.getWebSocketProvider = getWebSocketProvider;
741
- exports.readContract = readContract;
742
- exports.sendTransaction = sendTransaction;
743
- exports.signMessage = signMessage;
744
- exports.signTypedData = signTypedData;
745
- exports.switchNetwork = switchNetwork;
746
- exports.units = units;
747
- exports.waitForTransaction = waitForTransaction;
748
- exports.watchAccount = watchAccount;
749
- exports.watchBlockNumber = watchBlockNumber;
750
- exports.watchContractEvent = watchContractEvent;
751
- exports.watchNetwork = watchNetwork;
752
- exports.watchProvider = watchProvider;
753
- exports.watchReadContract = watchReadContract;
754
- exports.watchSigner = watchSigner;
755
- exports.watchWebSocketProvider = watchWebSocketProvider;
756
- exports.writeContract = writeContract;