@wagmi/connectors 5.8.6 → 5.9.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.
@@ -0,0 +1,188 @@
1
+ import { ChainNotConfiguredError, createConnector, } from '@wagmi/core';
2
+ import { SwitchChainError, UserRejectedRequestError, getAddress, numberToHex, } from 'viem';
3
+ export function baseAccount(parameters = {}) {
4
+ let walletProvider;
5
+ let accountsChanged;
6
+ let chainChanged;
7
+ let disconnect;
8
+ return createConnector((config) => ({
9
+ id: 'baseAccount',
10
+ name: 'Base Account',
11
+ rdns: 'app.base.account',
12
+ type: 'baseAccount',
13
+ async connect({ chainId } = {}) {
14
+ try {
15
+ const provider = await this.getProvider();
16
+ const accounts = (await provider.request({
17
+ method: 'eth_requestAccounts',
18
+ params: [],
19
+ })).map((x) => getAddress(x));
20
+ if (!accountsChanged) {
21
+ accountsChanged = this.onAccountsChanged.bind(this);
22
+ provider.on('accountsChanged', accountsChanged);
23
+ }
24
+ if (!chainChanged) {
25
+ chainChanged = this.onChainChanged.bind(this);
26
+ provider.on('chainChanged', chainChanged);
27
+ }
28
+ if (!disconnect) {
29
+ disconnect = this.onDisconnect.bind(this);
30
+ provider.on('disconnect', disconnect);
31
+ }
32
+ // Switch to chain if provided
33
+ let currentChainId = await this.getChainId();
34
+ if (chainId && currentChainId !== chainId) {
35
+ const chain = await this.switchChain({ chainId }).catch((error) => {
36
+ if (error.code === UserRejectedRequestError.code)
37
+ throw error;
38
+ return { id: currentChainId };
39
+ });
40
+ currentChainId = chain?.id ?? currentChainId;
41
+ }
42
+ return { accounts, chainId: currentChainId };
43
+ }
44
+ catch (error) {
45
+ if (/(user closed modal|accounts received is empty|user denied account|request rejected)/i.test(error.message))
46
+ throw new UserRejectedRequestError(error);
47
+ throw error;
48
+ }
49
+ },
50
+ async disconnect() {
51
+ const provider = await this.getProvider();
52
+ if (accountsChanged) {
53
+ provider.removeListener('accountsChanged', accountsChanged);
54
+ accountsChanged = undefined;
55
+ }
56
+ if (chainChanged) {
57
+ provider.removeListener('chainChanged', chainChanged);
58
+ chainChanged = undefined;
59
+ }
60
+ if (disconnect) {
61
+ provider.removeListener('disconnect', disconnect);
62
+ disconnect = undefined;
63
+ }
64
+ provider.disconnect();
65
+ },
66
+ async getAccounts() {
67
+ const provider = await this.getProvider();
68
+ return (await provider.request({
69
+ method: 'eth_accounts',
70
+ })).map((x) => getAddress(x));
71
+ },
72
+ async getChainId() {
73
+ const provider = await this.getProvider();
74
+ const chainId = (await provider.request({
75
+ method: 'eth_chainId',
76
+ }));
77
+ return Number(chainId);
78
+ },
79
+ async getProvider() {
80
+ if (!walletProvider) {
81
+ const preference = (() => {
82
+ if (typeof parameters.preference === 'string')
83
+ return { options: parameters.preference };
84
+ return {
85
+ ...parameters.preference,
86
+ options: parameters.preference?.options ?? 'all',
87
+ };
88
+ })();
89
+ const { createBaseAccountSDK } = await import('@base-org/account');
90
+ const sdk = createBaseAccountSDK({
91
+ ...parameters,
92
+ appChainIds: config.chains.map((x) => x.id),
93
+ preference,
94
+ });
95
+ walletProvider = sdk.getProvider();
96
+ }
97
+ return walletProvider;
98
+ },
99
+ async isAuthorized() {
100
+ try {
101
+ const accounts = await this.getAccounts();
102
+ return !!accounts.length;
103
+ }
104
+ catch {
105
+ return false;
106
+ }
107
+ },
108
+ async switchChain({ addEthereumChainParameter, chainId }) {
109
+ const chain = config.chains.find((chain) => chain.id === chainId);
110
+ if (!chain)
111
+ throw new SwitchChainError(new ChainNotConfiguredError());
112
+ const provider = await this.getProvider();
113
+ try {
114
+ await provider.request({
115
+ method: 'wallet_switchEthereumChain',
116
+ params: [{ chainId: numberToHex(chain.id) }],
117
+ });
118
+ return chain;
119
+ }
120
+ catch (error) {
121
+ // Indicates chain is not added to provider
122
+ if (error.code === 4902) {
123
+ try {
124
+ let blockExplorerUrls;
125
+ if (addEthereumChainParameter?.blockExplorerUrls)
126
+ blockExplorerUrls = addEthereumChainParameter.blockExplorerUrls;
127
+ else
128
+ blockExplorerUrls = chain.blockExplorers?.default.url
129
+ ? [chain.blockExplorers?.default.url]
130
+ : [];
131
+ let rpcUrls;
132
+ if (addEthereumChainParameter?.rpcUrls?.length)
133
+ rpcUrls = addEthereumChainParameter.rpcUrls;
134
+ else
135
+ rpcUrls = [chain.rpcUrls.default?.http[0] ?? ''];
136
+ const addEthereumChain = {
137
+ blockExplorerUrls,
138
+ chainId: numberToHex(chainId),
139
+ chainName: addEthereumChainParameter?.chainName ?? chain.name,
140
+ iconUrls: addEthereumChainParameter?.iconUrls,
141
+ nativeCurrency: addEthereumChainParameter?.nativeCurrency ??
142
+ chain.nativeCurrency,
143
+ rpcUrls,
144
+ };
145
+ await provider.request({
146
+ method: 'wallet_addEthereumChain',
147
+ params: [addEthereumChain],
148
+ });
149
+ return chain;
150
+ }
151
+ catch (error) {
152
+ throw new UserRejectedRequestError(error);
153
+ }
154
+ }
155
+ throw new SwitchChainError(error);
156
+ }
157
+ },
158
+ onAccountsChanged(accounts) {
159
+ if (accounts.length === 0)
160
+ this.onDisconnect();
161
+ else
162
+ config.emitter.emit('change', {
163
+ accounts: accounts.map((x) => getAddress(x)),
164
+ });
165
+ },
166
+ onChainChanged(chain) {
167
+ const chainId = Number(chain);
168
+ config.emitter.emit('change', { chainId });
169
+ },
170
+ async onDisconnect(_error) {
171
+ config.emitter.emit('disconnect');
172
+ const provider = await this.getProvider();
173
+ if (accountsChanged) {
174
+ provider.removeListener('accountsChanged', accountsChanged);
175
+ accountsChanged = undefined;
176
+ }
177
+ if (chainChanged) {
178
+ provider.removeListener('chainChanged', chainChanged);
179
+ chainChanged = undefined;
180
+ }
181
+ if (disconnect) {
182
+ provider.removeListener('disconnect', disconnect);
183
+ disconnect = undefined;
184
+ }
185
+ },
186
+ }));
187
+ }
188
+ //# sourceMappingURL=baseAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseAccount.js","sourceRoot":"","sources":["../../src/baseAccount.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  // biome-ignore lint/performance/noBarrelFile: entrypoint module
2
2
  export { injected, mock, } from '@wagmi/core';
3
+ export { baseAccount } from '../baseAccount.js';
3
4
  export { coinbaseWallet, } from '../coinbaseWallet.js';
4
5
  export { metaMask } from '../metaMask.js';
5
6
  export { safe } from '../safe.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAEL,QAAQ,EAER,IAAI,GACL,MAAM,aAAa,CAAA;AAEpB,OAAO,EAEL,cAAc,GACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAA2B,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAElE,OAAO,EAAuB,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtD,OAAO,EAEL,aAAa,GACd,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAEL,QAAQ,EAER,IAAI,GACL,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA8B,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE3E,OAAO,EAEL,cAAc,GACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAA2B,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAElE,OAAO,EAAuB,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtD,OAAO,EAEL,aAAa,GACd,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA"}