@wagmi/core 0.2.0-next.7 → 0.2.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 (76) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +30 -0
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +135 -154
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +135 -154
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +136 -155
  6. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +98 -152
  7. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +98 -152
  8. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +98 -152
  9. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +91 -126
  10. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +91 -126
  11. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +91 -126
  12. package/dist/base-30d4fad4.cjs.prod.js +544 -0
  13. package/dist/base-a0d63eb0.cjs.dev.js +544 -0
  14. package/dist/base-f0102d32.esm.js +517 -0
  15. package/dist/{classPrivateMethodGet-0e9a7925.cjs.prod.js → classPrivateMethodGet-656c08a7.cjs.prod.js} +1 -1
  16. package/dist/{classPrivateMethodGet-38b54c7a.cjs.dev.js → classPrivateMethodGet-9b9cd39b.cjs.dev.js} +1 -1
  17. package/dist/{classPrivateMethodGet-c9db96d6.esm.js → classPrivateMethodGet-e0eaacfc.esm.js} +1 -1
  18. package/dist/declarations/src/actions/accounts/connect.d.ts +14 -5
  19. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +3 -1
  20. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +1 -1
  21. package/dist/declarations/src/actions/accounts/getAccount.d.ts +5 -4
  22. package/dist/declarations/src/actions/accounts/index.d.ts +1 -2
  23. package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +1 -1
  24. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -2
  25. package/dist/declarations/src/actions/contracts/readContract.d.ts +4 -1
  26. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +3 -1
  27. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +3 -1
  28. package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +3 -1
  29. package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +3 -1
  30. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +3 -1
  31. package/dist/declarations/src/actions/ens/index.d.ts +0 -4
  32. package/dist/declarations/src/actions/index.d.ts +5 -5
  33. package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +4 -1
  34. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +3 -1
  35. package/dist/declarations/src/actions/network-status/index.d.ts +1 -2
  36. package/dist/declarations/src/actions/providers/getProvider.d.ts +6 -2
  37. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +6 -2
  38. package/dist/declarations/src/actions/providers/index.d.ts +2 -2
  39. package/dist/declarations/src/actions/providers/watchProvider.d.ts +4 -3
  40. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +4 -3
  41. package/dist/declarations/src/actions/tokens/fetchToken.d.ts +6 -10
  42. package/dist/declarations/src/actions/tokens/index.d.ts +0 -1
  43. package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +3 -1
  44. package/dist/declarations/src/client.d.ts +23 -22
  45. package/dist/declarations/src/connectors/base.d.ts +3 -1
  46. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +9 -0
  47. package/dist/declarations/src/connectors/injected.d.ts +2 -10
  48. package/dist/declarations/src/connectors/mock/connector.d.ts +1 -1
  49. package/dist/declarations/src/connectors/mock/provider.d.ts +2 -0
  50. package/dist/declarations/src/constants/abis.d.ts +2 -0
  51. package/dist/declarations/src/constants/blockExplorers.d.ts +9 -0
  52. package/dist/declarations/src/constants/chains.d.ts +17 -6
  53. package/dist/declarations/src/constants/index.d.ts +6 -2
  54. package/dist/declarations/src/constants/rpcs.d.ts +9 -0
  55. package/dist/declarations/src/index.d.ts +9 -6
  56. package/dist/declarations/src/types/index.d.ts +77 -6
  57. package/dist/declarations/src/utils/getInjectedName.d.ts +1 -1
  58. package/dist/wagmi-core.cjs.dev.js +658 -1153
  59. package/dist/wagmi-core.cjs.prod.js +658 -1153
  60. package/dist/wagmi-core.esm.js +653 -1147
  61. package/package.json +17 -9
  62. package/dist/base-09a653f3.cjs.dev.js +0 -453
  63. package/dist/base-824c3b6d.esm.js +0 -430
  64. package/dist/base-d8123d5f.cjs.prod.js +0 -453
  65. package/dist/declarations/src/actions/accounts/watchBalance.d.ts +0 -3
  66. package/dist/declarations/src/actions/ens/watchEnsAddress.d.ts +0 -3
  67. package/dist/declarations/src/actions/ens/watchEnsAvatar.d.ts +0 -3
  68. package/dist/declarations/src/actions/ens/watchEnsName.d.ts +0 -3
  69. package/dist/declarations/src/actions/ens/watchEnsResolver.d.ts +0 -3
  70. package/dist/declarations/src/actions/network-status/watchFeeData.d.ts +0 -7
  71. package/dist/declarations/src/actions/tokens/watchToken.d.ts +0 -3
  72. package/dist/declarations/src/constants/abis/erc1155.d.ts +0 -17
  73. package/dist/declarations/src/constants/abis/erc20.d.ts +0 -38
  74. package/dist/declarations/src/constants/abis/erc721.d.ts +0 -15
  75. package/dist/declarations/src/constants/abis/index.d.ts +0 -3
  76. package/dist/declarations/src/types/declarations.d.ts +0 -52
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var base = require('../../../dist/base-d8123d5f.cjs.prod.js');
5
+ var base = require('../../../dist/base-30d4fad4.cjs.prod.js');
6
6
  var ethers = require('ethers');
7
7
  var utils = require('ethers/lib/utils');
8
8
  require('eventemitter3');
@@ -58,8 +58,8 @@ class CoinbaseWalletConnector extends base.Connector {
58
58
  });
59
59
 
60
60
  base._defineProperty(this, "onChainChanged", chainId => {
61
- var id = base.normalizeChainId(chainId);
62
- var unsupported = this.isChainUnsupported(id);
61
+ const id = base.normalizeChainId(chainId);
62
+ const unsupported = this.isChainUnsupported(id);
63
63
  this.emit('change', {
64
64
  chain: {
65
65
  id,
@@ -73,181 +73,162 @@ class CoinbaseWalletConnector extends base.Connector {
73
73
  });
74
74
  }
75
75
 
76
- connect() {
77
- var _this = this;
78
-
79
- return base._asyncToGenerator(function* () {
80
- try {
81
- var provider = yield _this.getProvider();
82
- provider.on('accountsChanged', _this.onAccountsChanged);
83
- provider.on('chainChanged', _this.onChainChanged);
84
- provider.on('disconnect', _this.onDisconnect);
85
-
86
- _this.emit('message', {
87
- type: 'connecting'
88
- });
89
-
90
- var accounts = yield provider.enable();
91
- var account = utils.getAddress(accounts[0]);
92
- var id = yield _this.getChainId();
93
-
94
- var unsupported = _this.isChainUnsupported(id);
95
-
96
- return {
97
- account,
98
- chain: {
99
- id,
100
- unsupported
101
- },
102
- provider: new ethers.providers.Web3Provider(provider)
103
- };
104
- } catch (error) {
105
- if (/user closed modal/i.test(error.message)) throw new base.UserRejectedRequestError();
106
- throw error;
107
- }
108
- })();
76
+ async connect() {
77
+ try {
78
+ const provider = await this.getProvider();
79
+ provider.on('accountsChanged', this.onAccountsChanged);
80
+ provider.on('chainChanged', this.onChainChanged);
81
+ provider.on('disconnect', this.onDisconnect);
82
+ this.emit('message', {
83
+ type: 'connecting'
84
+ });
85
+ const accounts = await provider.enable();
86
+ const account = utils.getAddress(accounts[0]);
87
+ const id = await this.getChainId();
88
+ const unsupported = this.isChainUnsupported(id);
89
+ return {
90
+ account,
91
+ chain: {
92
+ id,
93
+ unsupported
94
+ },
95
+ provider: new ethers.providers.Web3Provider(provider)
96
+ };
97
+ } catch (error) {
98
+ if (/user closed modal/i.test(error.message)) throw new base.UserRejectedRequestError();
99
+ throw error;
100
+ }
109
101
  }
110
102
 
111
- disconnect() {
112
- var _this2 = this;
113
-
114
- return base._asyncToGenerator(function* () {
115
- if (!base._classPrivateFieldGet(_this2, _provider)) return;
116
- var provider = yield _this2.getProvider();
117
- provider.removeListener('accountsChanged', _this2.onAccountsChanged);
118
- provider.removeListener('chainChanged', _this2.onChainChanged);
119
- provider.removeListener('disconnect', _this2.onDisconnect);
120
- provider.disconnect();
121
- provider.close();
122
-
123
- if (typeof localStorage !== 'undefined') {
124
- var n = localStorage.length;
125
-
126
- while (n--) {
127
- var key = localStorage.key(n);
128
- if (!key) continue;
129
- if (!/-walletlink/.test(key)) continue;
130
- localStorage.removeItem(key);
131
- }
103
+ async disconnect() {
104
+ if (!base._classPrivateFieldGet(this, _provider)) return;
105
+ const provider = await this.getProvider();
106
+ provider.removeListener('accountsChanged', this.onAccountsChanged);
107
+ provider.removeListener('chainChanged', this.onChainChanged);
108
+ provider.removeListener('disconnect', this.onDisconnect);
109
+ provider.disconnect();
110
+ provider.close();
111
+
112
+ if (typeof localStorage !== 'undefined') {
113
+ let n = localStorage.length;
114
+
115
+ while (n--) {
116
+ const key = localStorage.key(n);
117
+ if (!key) continue;
118
+ if (!/-walletlink/.test(key)) continue;
119
+ localStorage.removeItem(key);
132
120
  }
133
- })();
121
+ }
134
122
  }
135
123
 
136
- getAccount() {
137
- var _this3 = this;
124
+ async getAccount() {
125
+ const provider = await this.getProvider();
126
+ const accounts = await provider.request({
127
+ method: 'eth_accounts'
128
+ }); // return checksum address
138
129
 
139
- return base._asyncToGenerator(function* () {
140
- var provider = yield _this3.getProvider();
141
- var accounts = yield provider.request({
142
- method: 'eth_accounts'
143
- }); // return checksum address
144
-
145
- return utils.getAddress(accounts[0]);
146
- })();
130
+ return utils.getAddress(accounts[0]);
147
131
  }
148
132
 
149
- getChainId() {
150
- var _this4 = this;
151
-
152
- return base._asyncToGenerator(function* () {
153
- var provider = yield _this4.getProvider();
154
- var chainId = base.normalizeChainId(provider.chainId);
155
- return chainId;
156
- })();
133
+ async getChainId() {
134
+ const provider = await this.getProvider();
135
+ const chainId = base.normalizeChainId(provider.chainId);
136
+ return chainId;
157
137
  }
158
138
 
159
- getProvider() {
160
- var _this5 = this;
161
-
162
- return base._asyncToGenerator(function* () {
163
- if (!base._classPrivateFieldGet(_this5, _provider)) {
164
- var {
165
- CoinbaseWalletSDK
166
- } = yield Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@coinbase/wallet-sdk')); });
139
+ async getProvider() {
140
+ if (!base._classPrivateFieldGet(this, _provider)) {
141
+ const {
142
+ CoinbaseWalletSDK
143
+ } = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@coinbase/wallet-sdk')); });
167
144
 
168
- base._classPrivateFieldSet(_this5, _client, new CoinbaseWalletSDK(_this5.options));
145
+ base._classPrivateFieldSet(this, _client, new CoinbaseWalletSDK(this.options));
169
146
 
170
- base._classPrivateFieldSet(_this5, _provider, base._classPrivateFieldGet(_this5, _client).makeWeb3Provider(_this5.options.jsonRpcUrl));
171
- }
147
+ base._classPrivateFieldSet(this, _provider, base._classPrivateFieldGet(this, _client).makeWeb3Provider(this.options.jsonRpcUrl, this.options.chainId));
148
+ }
172
149
 
173
- return base._classPrivateFieldGet(_this5, _provider);
174
- })();
150
+ return base._classPrivateFieldGet(this, _provider);
175
151
  }
176
152
 
177
- getSigner() {
178
- var _this6 = this;
179
-
180
- return base._asyncToGenerator(function* () {
181
- var [provider, account] = yield Promise.all([_this6.getProvider(), _this6.getAccount()]);
182
- return new ethers.providers.Web3Provider(provider).getSigner(account);
183
- })();
153
+ async getSigner() {
154
+ const [provider, account] = await Promise.all([this.getProvider(), this.getAccount()]);
155
+ return new ethers.providers.Web3Provider(provider).getSigner(account);
184
156
  }
185
157
 
186
- isAuthorized() {
187
- var _this7 = this;
188
-
189
- return base._asyncToGenerator(function* () {
190
- try {
191
- var account = yield _this7.getAccount();
192
- return !!account;
193
- } catch (_unused) {
194
- return false;
195
- }
196
- })();
158
+ async isAuthorized() {
159
+ try {
160
+ const account = await this.getAccount();
161
+ return !!account;
162
+ } catch {
163
+ return false;
164
+ }
197
165
  }
198
166
 
199
- switchChain(chainId) {
200
- var _this8 = this;
167
+ async switchChain(chainId) {
168
+ const provider = await this.getProvider();
169
+ const id = utils.hexValue(chainId);
201
170
 
202
- return base._asyncToGenerator(function* () {
203
- var provider = yield _this8.getProvider();
204
- var id = utils.hexValue(chainId);
171
+ try {
172
+ var _chains$find;
205
173
 
206
- try {
207
- var _chains$find;
208
-
209
- yield provider.request({
210
- method: 'wallet_switchEthereumChain',
211
- params: [{
212
- chainId: id
213
- }]
214
- });
215
- var chains = [..._this8.chains, ...base.allChains];
216
- return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
217
- id: chainId,
218
- name: "Chain ".concat(id),
219
- rpcUrls: []
220
- };
221
- } catch (error) {
222
- if (/user rejected signature request/i.test(error.message)) throw new base.UserRejectedRequestError();else throw new base.SwitchChainError();
223
- }
224
- })();
174
+ await provider.request({
175
+ method: 'wallet_switchEthereumChain',
176
+ params: [{
177
+ chainId: id
178
+ }]
179
+ });
180
+ const chains = [...this.chains, ...base.allChains];
181
+ return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
182
+ id: chainId,
183
+ name: "Chain ".concat(id),
184
+ rpcUrls: {
185
+ default: ''
186
+ }
187
+ };
188
+ } catch (error) {
189
+ // Indicates chain is not added to provider
190
+ if (error.code === 4902) {
191
+ try {
192
+ const chain = this.chains.find(x => x.id === chainId);
193
+ if (!chain) throw new base.ChainNotConfiguredError();
194
+ await provider.request({
195
+ method: 'wallet_addEthereumChain',
196
+ params: [{
197
+ chainId: id,
198
+ chainName: chain.name,
199
+ nativeCurrency: chain.nativeCurrency,
200
+ rpcUrls: this.getRpcUrls(chain),
201
+ blockExplorerUrls: this.getBlockExplorerUrls(chain)
202
+ }]
203
+ });
204
+ return chain;
205
+ } catch (addError) {
206
+ throw new base.AddChainError();
207
+ }
208
+ } else if (error.code === 4001) throw new base.UserRejectedRequestError();else throw new base.SwitchChainError();
209
+ }
225
210
  }
226
211
 
227
- watchAsset(_ref) {
228
- var _this9 = this;
229
-
230
- return base._asyncToGenerator(function* () {
231
- var {
232
- address,
233
- decimals = 18,
234
- image,
235
- symbol
236
- } = _ref;
237
- var provider = yield _this9.getProvider();
238
- return yield provider.request({
239
- method: 'wallet_watchAsset',
240
- params: {
241
- type: 'ERC20',
242
- options: {
243
- address,
244
- decimals,
245
- image,
246
- symbol
247
- }
212
+ async watchAsset(_ref) {
213
+ let {
214
+ address,
215
+ decimals = 18,
216
+ image,
217
+ symbol
218
+ } = _ref;
219
+ const provider = await this.getProvider();
220
+ return await provider.request({
221
+ method: 'wallet_watchAsset',
222
+ params: {
223
+ type: 'ERC20',
224
+ options: {
225
+ address,
226
+ decimals,
227
+ image,
228
+ symbol
248
229
  }
249
- });
250
- })();
230
+ }
231
+ });
251
232
  }
252
233
 
253
234
  }
@@ -1,4 +1,4 @@
1
- import { C as Connector, _ as _defineProperty, a as _classPrivateFieldInitSpec, n as normalizeChainId, b as _asyncToGenerator, U as UserRejectedRequestError, e as _classPrivateFieldGet, d as _classPrivateFieldSet, f as allChains, S as SwitchChainError } from '../../../dist/base-824c3b6d.esm.js';
1
+ import { C as Connector, _ as _defineProperty, a as _classPrivateFieldInitSpec, n as normalizeChainId, U as UserRejectedRequestError, d as _classPrivateFieldGet, c as _classPrivateFieldSet, e as allChains, f as ChainNotConfiguredError, A as AddChainError, S as SwitchChainError } from '../../../dist/base-f0102d32.esm.js';
2
2
  import { providers } from 'ethers';
3
3
  import { getAddress, hexValue } from 'ethers/lib/utils';
4
4
  import 'eventemitter3';
@@ -36,8 +36,8 @@ class CoinbaseWalletConnector extends Connector {
36
36
  });
37
37
 
38
38
  _defineProperty(this, "onChainChanged", chainId => {
39
- var id = normalizeChainId(chainId);
40
- var unsupported = this.isChainUnsupported(id);
39
+ const id = normalizeChainId(chainId);
40
+ const unsupported = this.isChainUnsupported(id);
41
41
  this.emit('change', {
42
42
  chain: {
43
43
  id,
@@ -51,181 +51,162 @@ class CoinbaseWalletConnector extends Connector {
51
51
  });
52
52
  }
53
53
 
54
- connect() {
55
- var _this = this;
56
-
57
- return _asyncToGenerator(function* () {
58
- try {
59
- var provider = yield _this.getProvider();
60
- provider.on('accountsChanged', _this.onAccountsChanged);
61
- provider.on('chainChanged', _this.onChainChanged);
62
- provider.on('disconnect', _this.onDisconnect);
63
-
64
- _this.emit('message', {
65
- type: 'connecting'
66
- });
67
-
68
- var accounts = yield provider.enable();
69
- var account = getAddress(accounts[0]);
70
- var id = yield _this.getChainId();
71
-
72
- var unsupported = _this.isChainUnsupported(id);
73
-
74
- return {
75
- account,
76
- chain: {
77
- id,
78
- unsupported
79
- },
80
- provider: new providers.Web3Provider(provider)
81
- };
82
- } catch (error) {
83
- if (/user closed modal/i.test(error.message)) throw new UserRejectedRequestError();
84
- throw error;
85
- }
86
- })();
54
+ async connect() {
55
+ try {
56
+ const provider = await this.getProvider();
57
+ provider.on('accountsChanged', this.onAccountsChanged);
58
+ provider.on('chainChanged', this.onChainChanged);
59
+ provider.on('disconnect', this.onDisconnect);
60
+ this.emit('message', {
61
+ type: 'connecting'
62
+ });
63
+ const accounts = await provider.enable();
64
+ const account = getAddress(accounts[0]);
65
+ const id = await this.getChainId();
66
+ const unsupported = this.isChainUnsupported(id);
67
+ return {
68
+ account,
69
+ chain: {
70
+ id,
71
+ unsupported
72
+ },
73
+ provider: new providers.Web3Provider(provider)
74
+ };
75
+ } catch (error) {
76
+ if (/user closed modal/i.test(error.message)) throw new UserRejectedRequestError();
77
+ throw error;
78
+ }
87
79
  }
88
80
 
89
- disconnect() {
90
- var _this2 = this;
91
-
92
- return _asyncToGenerator(function* () {
93
- if (!_classPrivateFieldGet(_this2, _provider)) return;
94
- var provider = yield _this2.getProvider();
95
- provider.removeListener('accountsChanged', _this2.onAccountsChanged);
96
- provider.removeListener('chainChanged', _this2.onChainChanged);
97
- provider.removeListener('disconnect', _this2.onDisconnect);
98
- provider.disconnect();
99
- provider.close();
100
-
101
- if (typeof localStorage !== 'undefined') {
102
- var n = localStorage.length;
103
-
104
- while (n--) {
105
- var key = localStorage.key(n);
106
- if (!key) continue;
107
- if (!/-walletlink/.test(key)) continue;
108
- localStorage.removeItem(key);
109
- }
81
+ async disconnect() {
82
+ if (!_classPrivateFieldGet(this, _provider)) return;
83
+ const provider = await this.getProvider();
84
+ provider.removeListener('accountsChanged', this.onAccountsChanged);
85
+ provider.removeListener('chainChanged', this.onChainChanged);
86
+ provider.removeListener('disconnect', this.onDisconnect);
87
+ provider.disconnect();
88
+ provider.close();
89
+
90
+ if (typeof localStorage !== 'undefined') {
91
+ let n = localStorage.length;
92
+
93
+ while (n--) {
94
+ const key = localStorage.key(n);
95
+ if (!key) continue;
96
+ if (!/-walletlink/.test(key)) continue;
97
+ localStorage.removeItem(key);
110
98
  }
111
- })();
99
+ }
112
100
  }
113
101
 
114
- getAccount() {
115
- var _this3 = this;
116
-
117
- return _asyncToGenerator(function* () {
118
- var provider = yield _this3.getProvider();
119
- var accounts = yield provider.request({
120
- method: 'eth_accounts'
121
- }); // return checksum address
102
+ async getAccount() {
103
+ const provider = await this.getProvider();
104
+ const accounts = await provider.request({
105
+ method: 'eth_accounts'
106
+ }); // return checksum address
122
107
 
123
- return getAddress(accounts[0]);
124
- })();
108
+ return getAddress(accounts[0]);
125
109
  }
126
110
 
127
- getChainId() {
128
- var _this4 = this;
129
-
130
- return _asyncToGenerator(function* () {
131
- var provider = yield _this4.getProvider();
132
- var chainId = normalizeChainId(provider.chainId);
133
- return chainId;
134
- })();
111
+ async getChainId() {
112
+ const provider = await this.getProvider();
113
+ const chainId = normalizeChainId(provider.chainId);
114
+ return chainId;
135
115
  }
136
116
 
137
- getProvider() {
138
- var _this5 = this;
117
+ async getProvider() {
118
+ if (!_classPrivateFieldGet(this, _provider)) {
119
+ const {
120
+ CoinbaseWalletSDK
121
+ } = await import('@coinbase/wallet-sdk');
139
122
 
140
- return _asyncToGenerator(function* () {
141
- if (!_classPrivateFieldGet(_this5, _provider)) {
142
- var {
143
- CoinbaseWalletSDK
144
- } = yield import('@coinbase/wallet-sdk');
123
+ _classPrivateFieldSet(this, _client, new CoinbaseWalletSDK(this.options));
145
124
 
146
- _classPrivateFieldSet(_this5, _client, new CoinbaseWalletSDK(_this5.options));
147
-
148
- _classPrivateFieldSet(_this5, _provider, _classPrivateFieldGet(_this5, _client).makeWeb3Provider(_this5.options.jsonRpcUrl));
149
- }
125
+ _classPrivateFieldSet(this, _provider, _classPrivateFieldGet(this, _client).makeWeb3Provider(this.options.jsonRpcUrl, this.options.chainId));
126
+ }
150
127
 
151
- return _classPrivateFieldGet(_this5, _provider);
152
- })();
128
+ return _classPrivateFieldGet(this, _provider);
153
129
  }
154
130
 
155
- getSigner() {
156
- var _this6 = this;
131
+ async getSigner() {
132
+ const [provider, account] = await Promise.all([this.getProvider(), this.getAccount()]);
133
+ return new providers.Web3Provider(provider).getSigner(account);
134
+ }
157
135
 
158
- return _asyncToGenerator(function* () {
159
- var [provider, account] = yield Promise.all([_this6.getProvider(), _this6.getAccount()]);
160
- return new providers.Web3Provider(provider).getSigner(account);
161
- })();
136
+ async isAuthorized() {
137
+ try {
138
+ const account = await this.getAccount();
139
+ return !!account;
140
+ } catch {
141
+ return false;
142
+ }
162
143
  }
163
144
 
164
- isAuthorized() {
165
- var _this7 = this;
145
+ async switchChain(chainId) {
146
+ const provider = await this.getProvider();
147
+ const id = hexValue(chainId);
166
148
 
167
- return _asyncToGenerator(function* () {
168
- try {
169
- var account = yield _this7.getAccount();
170
- return !!account;
171
- } catch (_unused) {
172
- return false;
173
- }
174
- })();
175
- }
149
+ try {
150
+ var _chains$find;
176
151
 
177
- switchChain(chainId) {
178
- var _this8 = this;
179
-
180
- return _asyncToGenerator(function* () {
181
- var provider = yield _this8.getProvider();
182
- var id = hexValue(chainId);
183
-
184
- try {
185
- var _chains$find;
186
-
187
- yield provider.request({
188
- method: 'wallet_switchEthereumChain',
189
- params: [{
190
- chainId: id
191
- }]
192
- });
193
- var chains = [..._this8.chains, ...allChains];
194
- return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
195
- id: chainId,
196
- name: "Chain ".concat(id),
197
- rpcUrls: []
198
- };
199
- } catch (error) {
200
- if (/user rejected signature request/i.test(error.message)) throw new UserRejectedRequestError();else throw new SwitchChainError();
201
- }
202
- })();
152
+ await provider.request({
153
+ method: 'wallet_switchEthereumChain',
154
+ params: [{
155
+ chainId: id
156
+ }]
157
+ });
158
+ const chains = [...this.chains, ...allChains];
159
+ return (_chains$find = chains.find(x => x.id === chainId)) !== null && _chains$find !== void 0 ? _chains$find : {
160
+ id: chainId,
161
+ name: "Chain ".concat(id),
162
+ rpcUrls: {
163
+ default: ''
164
+ }
165
+ };
166
+ } catch (error) {
167
+ // Indicates chain is not added to provider
168
+ if (error.code === 4902) {
169
+ try {
170
+ const chain = this.chains.find(x => x.id === chainId);
171
+ if (!chain) throw new ChainNotConfiguredError();
172
+ await provider.request({
173
+ method: 'wallet_addEthereumChain',
174
+ params: [{
175
+ chainId: id,
176
+ chainName: chain.name,
177
+ nativeCurrency: chain.nativeCurrency,
178
+ rpcUrls: this.getRpcUrls(chain),
179
+ blockExplorerUrls: this.getBlockExplorerUrls(chain)
180
+ }]
181
+ });
182
+ return chain;
183
+ } catch (addError) {
184
+ throw new AddChainError();
185
+ }
186
+ } else if (error.code === 4001) throw new UserRejectedRequestError();else throw new SwitchChainError();
187
+ }
203
188
  }
204
189
 
205
- watchAsset(_ref) {
206
- var _this9 = this;
207
-
208
- return _asyncToGenerator(function* () {
209
- var {
210
- address,
211
- decimals = 18,
212
- image,
213
- symbol
214
- } = _ref;
215
- var provider = yield _this9.getProvider();
216
- return yield provider.request({
217
- method: 'wallet_watchAsset',
218
- params: {
219
- type: 'ERC20',
220
- options: {
221
- address,
222
- decimals,
223
- image,
224
- symbol
225
- }
190
+ async watchAsset(_ref) {
191
+ let {
192
+ address,
193
+ decimals = 18,
194
+ image,
195
+ symbol
196
+ } = _ref;
197
+ const provider = await this.getProvider();
198
+ return await provider.request({
199
+ method: 'wallet_watchAsset',
200
+ params: {
201
+ type: 'ERC20',
202
+ options: {
203
+ address,
204
+ decimals,
205
+ image,
206
+ symbol
226
207
  }
227
- });
228
- })();
208
+ }
209
+ });
229
210
  }
230
211
 
231
212
  }