@wagmi/connectors 4.3.10 → 5.0.1

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.
@@ -1,7 +1,198 @@
1
1
  import { ChainNotConfiguredError, createConnector, } from '@wagmi/core';
2
2
  import { SwitchChainError, UserRejectedRequestError, getAddress, numberToHex, } from 'viem';
3
3
  coinbaseWallet.type = 'coinbaseWallet';
4
- export function coinbaseWallet(parameters) {
4
+ export function coinbaseWallet(parameters = {}) {
5
+ if (parameters.version === '3' || parameters.headlessMode)
6
+ return version3(parameters);
7
+ return version4(parameters);
8
+ }
9
+ function version4(parameters) {
10
+ let sdk;
11
+ let walletProvider;
12
+ let accountsChanged;
13
+ let chainChanged;
14
+ let disconnect;
15
+ return createConnector((config) => ({
16
+ id: 'coinbaseWalletSDK',
17
+ name: 'Coinbase Wallet',
18
+ supportsSimulation: true,
19
+ type: coinbaseWallet.type,
20
+ async connect({ chainId } = {}) {
21
+ try {
22
+ const provider = await this.getProvider();
23
+ const accounts = (await provider.request({
24
+ method: 'eth_requestAccounts',
25
+ })).map((x) => getAddress(x));
26
+ if (!accountsChanged) {
27
+ accountsChanged = this.onAccountsChanged.bind(this);
28
+ provider.on('accountsChanged', accountsChanged);
29
+ }
30
+ if (!chainChanged) {
31
+ chainChanged = this.onChainChanged.bind(this);
32
+ provider.on('chainChanged', chainChanged);
33
+ }
34
+ if (!disconnect) {
35
+ disconnect = this.onDisconnect.bind(this);
36
+ provider.on('disconnect', disconnect);
37
+ }
38
+ // Switch to chain if provided
39
+ let currentChainId = await this.getChainId();
40
+ if (chainId && currentChainId !== chainId) {
41
+ const chain = await this.switchChain({ chainId }).catch((error) => {
42
+ if (error.code === UserRejectedRequestError.code)
43
+ throw error;
44
+ return { id: currentChainId };
45
+ });
46
+ currentChainId = chain?.id ?? currentChainId;
47
+ }
48
+ return { accounts, chainId: currentChainId };
49
+ }
50
+ catch (error) {
51
+ if (/(user closed modal|accounts received is empty|user denied account)/i.test(error.message))
52
+ throw new UserRejectedRequestError(error);
53
+ throw error;
54
+ }
55
+ },
56
+ async disconnect() {
57
+ const provider = await this.getProvider();
58
+ if (accountsChanged) {
59
+ provider.removeListener('accountsChanged', accountsChanged);
60
+ accountsChanged = undefined;
61
+ }
62
+ if (chainChanged) {
63
+ provider.removeListener('chainChanged', chainChanged);
64
+ chainChanged = undefined;
65
+ }
66
+ if (disconnect) {
67
+ provider.removeListener('disconnect', disconnect);
68
+ disconnect = undefined;
69
+ }
70
+ provider.disconnect();
71
+ provider.close?.();
72
+ },
73
+ async getAccounts() {
74
+ const provider = await this.getProvider();
75
+ return (await provider.request({
76
+ method: 'eth_accounts',
77
+ })).map((x) => getAddress(x));
78
+ },
79
+ async getChainId() {
80
+ const provider = await this.getProvider();
81
+ const chainId = await provider.request({
82
+ method: 'eth_chainId',
83
+ });
84
+ return Number(chainId);
85
+ },
86
+ async getProvider() {
87
+ if (!walletProvider) {
88
+ // Unwrap import
89
+ const { default: SDK_ } = await import('@coinbase/wallet-sdk');
90
+ let SDK;
91
+ if (typeof SDK_ !== 'function' && typeof SDK_.default === 'function')
92
+ SDK = SDK_.default;
93
+ else
94
+ SDK = SDK_;
95
+ sdk = new SDK({
96
+ ...parameters,
97
+ appChainIds: config.chains.map((x) => x.id),
98
+ });
99
+ walletProvider = sdk.makeWeb3Provider({
100
+ ...parameters,
101
+ options: parameters.preference ?? 'all',
102
+ });
103
+ }
104
+ return walletProvider;
105
+ },
106
+ async isAuthorized() {
107
+ try {
108
+ const accounts = await this.getAccounts();
109
+ return !!accounts.length;
110
+ }
111
+ catch {
112
+ return false;
113
+ }
114
+ },
115
+ async switchChain({ addEthereumChainParameter, chainId }) {
116
+ const chain = config.chains.find((chain) => chain.id === chainId);
117
+ if (!chain)
118
+ throw new SwitchChainError(new ChainNotConfiguredError());
119
+ const provider = await this.getProvider();
120
+ try {
121
+ await provider.request({
122
+ method: 'wallet_switchEthereumChain',
123
+ params: [{ chainId: numberToHex(chain.id) }],
124
+ });
125
+ return chain;
126
+ }
127
+ catch (error) {
128
+ // Indicates chain is not added to provider
129
+ if (error.code === 4902) {
130
+ try {
131
+ let blockExplorerUrls;
132
+ if (addEthereumChainParameter?.blockExplorerUrls)
133
+ blockExplorerUrls = addEthereumChainParameter.blockExplorerUrls;
134
+ else
135
+ blockExplorerUrls = chain.blockExplorers?.default.url
136
+ ? [chain.blockExplorers?.default.url]
137
+ : [];
138
+ let rpcUrls;
139
+ if (addEthereumChainParameter?.rpcUrls?.length)
140
+ rpcUrls = addEthereumChainParameter.rpcUrls;
141
+ else
142
+ rpcUrls = [chain.rpcUrls.default?.http[0] ?? ''];
143
+ const addEthereumChain = {
144
+ blockExplorerUrls,
145
+ chainId: numberToHex(chainId),
146
+ chainName: addEthereumChainParameter?.chainName ?? chain.name,
147
+ iconUrls: addEthereumChainParameter?.iconUrls,
148
+ nativeCurrency: addEthereumChainParameter?.nativeCurrency ??
149
+ chain.nativeCurrency,
150
+ rpcUrls,
151
+ };
152
+ await provider.request({
153
+ method: 'wallet_addEthereumChain',
154
+ params: [addEthereumChain],
155
+ });
156
+ return chain;
157
+ }
158
+ catch (error) {
159
+ throw new UserRejectedRequestError(error);
160
+ }
161
+ }
162
+ throw new SwitchChainError(error);
163
+ }
164
+ },
165
+ onAccountsChanged(accounts) {
166
+ if (accounts.length === 0)
167
+ this.onDisconnect();
168
+ else
169
+ config.emitter.emit('change', {
170
+ accounts: accounts.map((x) => getAddress(x)),
171
+ });
172
+ },
173
+ onChainChanged(chain) {
174
+ const chainId = Number(chain);
175
+ config.emitter.emit('change', { chainId });
176
+ },
177
+ async onDisconnect(_error) {
178
+ config.emitter.emit('disconnect');
179
+ const provider = await this.getProvider();
180
+ if (accountsChanged) {
181
+ provider.removeListener('accountsChanged', accountsChanged);
182
+ accountsChanged = undefined;
183
+ }
184
+ if (chainChanged) {
185
+ provider.removeListener('chainChanged', chainChanged);
186
+ chainChanged = undefined;
187
+ }
188
+ if (disconnect) {
189
+ provider.removeListener('disconnect', disconnect);
190
+ disconnect = undefined;
191
+ }
192
+ },
193
+ }));
194
+ }
195
+ function version3(parameters) {
5
196
  const reloadOnDisconnect = false;
6
197
  let sdk;
7
198
  let walletProvider;
@@ -79,13 +270,12 @@ export function coinbaseWallet(parameters) {
79
270
  },
80
271
  async getProvider() {
81
272
  if (!walletProvider) {
82
- const { default: CoinbaseWalletSDK } = await import('@coinbase/wallet-sdk');
273
+ const { default: SDK_ } = await import('cbw-sdk');
83
274
  let SDK;
84
- if (typeof CoinbaseWalletSDK !== 'function' &&
85
- typeof CoinbaseWalletSDK.default === 'function')
86
- SDK = CoinbaseWalletSDK.default;
275
+ if (typeof SDK_ !== 'function' && typeof SDK_.default === 'function')
276
+ SDK = SDK_.default;
87
277
  else
88
- SDK = CoinbaseWalletSDK;
278
+ SDK = SDK_;
89
279
  sdk = new SDK({ reloadOnDisconnect, ...parameters });
90
280
  // Force types to retrieve private `walletExtension` method from the Coinbase Wallet SDK.
91
281
  const walletExtensionChainId = sdk.walletExtension?.getChainId();
@@ -1 +1 @@
1
- {"version":3,"file":"coinbaseWallet.js","sourceRoot":"","sources":["../../src/coinbaseWallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coinbaseWallet.js","sourceRoot":"","sources":["../../src/coinbaseWallet.ts"],"names":[],"mappings":"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"}