@wagmi/connectors 0.3.18-cjs → 1.0.0-next.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.
@@ -1,4 +1,4 @@
1
1
  {
2
- "module": "../dist/coinbaseWallet.mjs",
2
+ "type": "module",
3
3
  "main": "../dist/coinbaseWallet.js"
4
4
  }
@@ -0,0 +1,129 @@
1
+ import { Chain as Chain$1 } from '@wagmi/chains';
2
+ import { Address } from 'abitype';
3
+ import EventEmitter from 'eventemitter3';
4
+ import { EIP1193Provider, Transport, Chain, Account, WalletClient as WalletClient$1 } from 'viem';
5
+
6
+ type InjectedProviderFlags = {
7
+ isApexWallet?: true;
8
+ isAvalanche?: true;
9
+ isBackpack?: true;
10
+ isBifrost?: true;
11
+ isBitKeep?: true;
12
+ isBitski?: true;
13
+ isBraveWallet?: true;
14
+ isCoinbaseWallet?: true;
15
+ isDawn?: true;
16
+ isExodus?: true;
17
+ isFrame?: true;
18
+ isFrontier?: true;
19
+ isGamestop?: true;
20
+ isHyperPay?: true;
21
+ isKuCoinWallet?: true;
22
+ isMathWallet?: true;
23
+ isMetaMask?: true;
24
+ isOkxWallet?: true;
25
+ isOKExWallet?: true;
26
+ isOneInchAndroidWallet?: true;
27
+ isOneInchIOSWallet?: true;
28
+ isOpera?: true;
29
+ isPhantom?: true;
30
+ isPortal?: true;
31
+ isRabby?: true;
32
+ isRainbow?: true;
33
+ isStatus?: true;
34
+ isTally?: true;
35
+ isTokenPocket?: true;
36
+ isTokenary?: true;
37
+ isTrust?: true;
38
+ isTrustWallet?: true;
39
+ isXDEFI?: true;
40
+ isZerion?: true;
41
+ };
42
+ type InjectedProviders = InjectedProviderFlags & {
43
+ isMetaMask: true;
44
+ /** Only exists in MetaMask as of 2022/04/03 */
45
+ _events: {
46
+ connect?: () => void;
47
+ };
48
+ /** Only exists in MetaMask as of 2022/04/03 */
49
+ _state?: {
50
+ accounts?: string[];
51
+ initialized?: boolean;
52
+ isConnected?: boolean;
53
+ isPermanentlyDisconnected?: boolean;
54
+ isUnlocked?: boolean;
55
+ };
56
+ };
57
+ interface WindowProvider extends InjectedProviders, EIP1193Provider {
58
+ providers?: WindowProvider[];
59
+ }
60
+ type WalletClient<TTransport extends Transport = Transport, TChain extends Chain = Chain, TAccount extends Account = Account> = WalletClient$1<TTransport, TChain, TAccount>;
61
+ type Storage = {
62
+ getItem<T>(key: string, defaultState?: T | null): T | null;
63
+ setItem<T>(key: string, value: T | null): void;
64
+ removeItem(key: string): void;
65
+ };
66
+
67
+ type ConnectorData = {
68
+ account?: Address;
69
+ chain?: {
70
+ id: number;
71
+ unsupported: boolean;
72
+ };
73
+ };
74
+ interface ConnectorEvents {
75
+ change(data: ConnectorData): void;
76
+ connect(data: ConnectorData): void;
77
+ message({ type, data }: {
78
+ type: string;
79
+ data?: unknown;
80
+ }): void;
81
+ disconnect(): void;
82
+ error(error: Error): void;
83
+ }
84
+ declare abstract class Connector<Provider = any, Options = any> extends EventEmitter<ConnectorEvents> {
85
+ /** Unique connector id */
86
+ abstract readonly id: string;
87
+ /** Connector name */
88
+ abstract readonly name: string;
89
+ /** Chains connector supports */
90
+ readonly chains: Chain$1[];
91
+ /** Options to use with connector */
92
+ readonly options: Options;
93
+ /** Connector storage. */
94
+ protected storage?: Storage;
95
+ /** Whether connector is usable */
96
+ abstract readonly ready: boolean;
97
+ constructor({ chains, options, }: {
98
+ chains?: Chain$1[];
99
+ options: Options;
100
+ });
101
+ abstract connect(config?: {
102
+ chainId?: number;
103
+ }): Promise<Required<ConnectorData>>;
104
+ abstract disconnect(): Promise<void>;
105
+ abstract getAccount(): Promise<Address>;
106
+ abstract getChainId(): Promise<number>;
107
+ abstract getProvider(config?: {
108
+ chainId?: number;
109
+ }): Promise<Provider>;
110
+ abstract getWalletClient(config?: {
111
+ chainId?: number;
112
+ }): Promise<WalletClient>;
113
+ abstract isAuthorized(): Promise<boolean>;
114
+ switchChain?(chainId: number): Promise<Chain$1>;
115
+ watchAsset?(asset: {
116
+ address: string;
117
+ decimals?: number;
118
+ image?: string;
119
+ symbol: string;
120
+ }): Promise<boolean>;
121
+ protected abstract onAccountsChanged(accounts: Address[]): void;
122
+ protected abstract onChainChanged(chain: number | string): void;
123
+ protected abstract onDisconnect(error: Error): void;
124
+ protected getBlockExplorerUrls(chain: Chain$1): string[] | undefined;
125
+ protected isChainUnsupported(chainId: number): boolean;
126
+ setStorage(storage: Storage): void;
127
+ }
128
+
129
+ export { Connector as C, WindowProvider as W, ConnectorData as a, ConnectorEvents as b, WalletClient as c };
@@ -1,25 +1,28 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
-
3
-
4
-
5
-
6
-
7
- var _chunk5NCTPR6Cjs = require('./chunk-5NCTPR6C.js');
1
+ import {
2
+ ChainNotConfiguredForConnectorError,
3
+ ConnectorNotFoundError
4
+ } from "./chunk-ZCAPXGBX.js";
5
+ import {
6
+ normalizeChainId
7
+ } from "./chunk-OQILYQDO.js";
8
+ import {
9
+ Connector,
10
+ __privateAdd,
11
+ __privateGet,
12
+ __privateSet,
13
+ __publicField
14
+ } from "./chunk-QYMCVNHT.js";
8
15
 
9
16
  // src/injected.ts
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
- var _core = require('@wagmi/core');
21
- var _ethers = require('ethers');
22
- var _utilsjs = require('ethers/lib/utils.js');
17
+ import {
18
+ ResourceNotFoundRpcError,
19
+ SwitchChainError,
20
+ UserRejectedRequestError,
21
+ createWalletClient,
22
+ custom,
23
+ getAddress,
24
+ numberToHex
25
+ } from "viem";
23
26
 
24
27
  // src/utils/getInjectedName.ts
25
28
  function getInjectedName(ethereum) {
@@ -38,8 +41,6 @@ function getInjectedName(ethereum) {
38
41
  return "BitKeep";
39
42
  if (provider.isBitski)
40
43
  return "Bitski";
41
- if (provider.isBlockWallet)
42
- return "BlockWallet";
43
44
  if (provider.isBraveWallet)
44
45
  return "Brave Wallet";
45
46
  if (provider.isCoinbaseWallet)
@@ -56,8 +57,6 @@ function getInjectedName(ethereum) {
56
57
  return "GameStop Wallet";
57
58
  if (provider.isHyperPay)
58
59
  return "HyperPay Wallet";
59
- if (provider.isImToken)
60
- return "ImToken";
61
60
  if (provider.isKuCoinWallet)
62
61
  return "KuCoin Wallet";
63
62
  if (provider.isMathWallet)
@@ -93,7 +92,7 @@ function getInjectedName(ethereum) {
93
92
  if (provider.isMetaMask)
94
93
  return "MetaMask";
95
94
  };
96
- if (_optionalChain([ethereum, 'access', _ => _.providers, 'optionalAccess', _2 => _2.length])) {
95
+ if (ethereum.providers?.length) {
97
96
  const nameSet = /* @__PURE__ */ new Set();
98
97
  let unknownCount = 1;
99
98
  for (const provider of ethereum.providers) {
@@ -107,43 +106,50 @@ function getInjectedName(ethereum) {
107
106
  const names = [...nameSet];
108
107
  if (names.length)
109
108
  return names;
110
- return _nullishCoalesce(names[0], () => ( "Injected"));
109
+ return names[0] ?? "Injected";
111
110
  }
112
- return _nullishCoalesce(getName(ethereum), () => ( "Injected"));
111
+ return getName(ethereum) ?? "Injected";
113
112
  }
114
113
 
115
114
  // src/injected.ts
116
115
  var _provider;
117
- var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
116
+ var InjectedConnector = class extends Connector {
118
117
  constructor({
119
118
  chains,
120
119
  options: options_
121
120
  } = {}) {
122
121
  const options = {
123
122
  shimDisconnect: true,
124
- getProvider: () => typeof window !== "undefined" ? window.ethereum : void 0,
123
+ getProvider() {
124
+ if (typeof window === "undefined")
125
+ return;
126
+ const ethereum = window.ethereum;
127
+ if (ethereum?.providers)
128
+ return ethereum.providers[0];
129
+ return ethereum;
130
+ },
125
131
  ...options_
126
132
  };
127
133
  super({ chains, options });
128
- _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "id", "injected");
129
- _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "name");
130
- _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "ready");
131
- _chunk5NCTPR6Cjs.__privateAdd.call(void 0, this, _provider, void 0);
132
- _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "shimDisconnectKey", `${this.id}.shimDisconnect`);
133
- _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "onAccountsChanged", (accounts) => {
134
+ __publicField(this, "id", "injected");
135
+ __publicField(this, "name");
136
+ __publicField(this, "ready");
137
+ __privateAdd(this, _provider, void 0);
138
+ __publicField(this, "shimDisconnectKey", `${this.id}.shimDisconnect`);
139
+ __publicField(this, "onAccountsChanged", (accounts) => {
134
140
  if (accounts.length === 0)
135
141
  this.emit("disconnect");
136
142
  else
137
143
  this.emit("change", {
138
- account: _utilsjs.getAddress.call(void 0, accounts[0])
144
+ account: getAddress(accounts[0])
139
145
  });
140
146
  });
141
- _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "onChainChanged", (chainId) => {
142
- const id = _core.normalizeChainId.call(void 0, chainId);
147
+ __publicField(this, "onChainChanged", (chainId) => {
148
+ const id = normalizeChainId(chainId);
143
149
  const unsupported = this.isChainUnsupported(id);
144
150
  this.emit("change", { chain: { id, unsupported } });
145
151
  });
146
- _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "onDisconnect", async (error) => {
152
+ __publicField(this, "onDisconnect", async (error) => {
147
153
  if (error.code === 1013) {
148
154
  const provider = await this.getProvider();
149
155
  if (provider) {
@@ -154,7 +160,7 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
154
160
  }
155
161
  this.emit("disconnect");
156
162
  if (this.options.shimDisconnect)
157
- _optionalChain([_core.getClient.call(void 0, ), 'access', _3 => _3.storage, 'optionalAccess', _4 => _4.removeItem, 'call', _5 => _5(this.shimDisconnectKey)]);
163
+ this.storage?.removeItem(this.shimDisconnectKey);
158
164
  });
159
165
  const provider = options.getProvider();
160
166
  if (typeof options.name === "string")
@@ -177,7 +183,7 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
177
183
  try {
178
184
  const provider = await this.getProvider();
179
185
  if (!provider)
180
- throw new (0, _core.ConnectorNotFoundError)();
186
+ throw new ConnectorNotFoundError();
181
187
  if (provider.on) {
182
188
  provider.on("accountsChanged", this.onAccountsChanged);
183
189
  provider.on("chainChanged", this.onChainChanged);
@@ -187,7 +193,7 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
187
193
  const accounts = await provider.request({
188
194
  method: "eth_requestAccounts"
189
195
  });
190
- const account = _utilsjs.getAddress.call(void 0, accounts[0]);
196
+ const account = getAddress(accounts[0]);
191
197
  let id = await this.getChainId();
192
198
  let unsupported = this.isChainUnsupported(id);
193
199
  if (chainId && id !== chainId) {
@@ -196,75 +202,79 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
196
202
  unsupported = this.isChainUnsupported(id);
197
203
  }
198
204
  if (this.options.shimDisconnect)
199
- _optionalChain([_core.getClient.call(void 0, ), 'access', _6 => _6.storage, 'optionalAccess', _7 => _7.setItem, 'call', _8 => _8(this.shimDisconnectKey, true)]);
200
- return { account, chain: { id, unsupported }, provider };
205
+ this.storage?.setItem(this.shimDisconnectKey, true);
206
+ return { account, chain: { id, unsupported } };
201
207
  } catch (error) {
202
208
  if (this.isUserRejectedRequestError(error))
203
- throw new (0, _core.UserRejectedRequestError)(error);
209
+ throw new UserRejectedRequestError(error);
204
210
  if (error.code === -32002)
205
- throw new (0, _core.ResourceUnavailableError)(error);
211
+ throw new ResourceNotFoundRpcError(error);
206
212
  throw error;
207
213
  }
208
214
  }
209
215
  async disconnect() {
210
216
  const provider = await this.getProvider();
211
- if (!_optionalChain([provider, 'optionalAccess', _9 => _9.removeListener]))
217
+ if (!provider?.removeListener)
212
218
  return;
213
219
  provider.removeListener("accountsChanged", this.onAccountsChanged);
214
220
  provider.removeListener("chainChanged", this.onChainChanged);
215
221
  provider.removeListener("disconnect", this.onDisconnect);
216
222
  if (this.options.shimDisconnect)
217
- _optionalChain([_core.getClient.call(void 0, ), 'access', _10 => _10.storage, 'optionalAccess', _11 => _11.removeItem, 'call', _12 => _12(this.shimDisconnectKey)]);
223
+ this.storage?.removeItem(this.shimDisconnectKey);
218
224
  }
219
225
  async getAccount() {
220
226
  const provider = await this.getProvider();
221
227
  if (!provider)
222
- throw new (0, _core.ConnectorNotFoundError)();
228
+ throw new ConnectorNotFoundError();
223
229
  const accounts = await provider.request({
224
230
  method: "eth_accounts"
225
231
  });
226
- return _utilsjs.getAddress.call(void 0, accounts[0]);
232
+ return getAddress(accounts[0]);
227
233
  }
228
234
  async getChainId() {
229
235
  const provider = await this.getProvider();
230
236
  if (!provider)
231
- throw new (0, _core.ConnectorNotFoundError)();
232
- return provider.request({ method: "eth_chainId" }).then(_core.normalizeChainId);
237
+ throw new ConnectorNotFoundError();
238
+ return provider.request({ method: "eth_chainId" }).then(normalizeChainId);
233
239
  }
234
240
  async getProvider() {
235
241
  const provider = this.options.getProvider();
236
242
  if (provider)
237
- _chunk5NCTPR6Cjs.__privateSet.call(void 0, this, _provider, provider);
238
- return _chunk5NCTPR6Cjs.__privateGet.call(void 0, this, _provider);
243
+ __privateSet(this, _provider, provider);
244
+ return __privateGet(this, _provider);
239
245
  }
240
- async getSigner({ chainId } = {}) {
246
+ async getWalletClient({ chainId } = {}) {
241
247
  const [provider, account] = await Promise.all([
242
248
  this.getProvider(),
243
249
  this.getAccount()
244
250
  ]);
245
- return new _ethers.providers.Web3Provider(
246
- provider,
247
- chainId
248
- ).getSigner(account);
251
+ const chain = this.chains.find((x) => x.id === chainId) || this.chains[0];
252
+ if (!provider)
253
+ throw new Error("provider is required.");
254
+ return createWalletClient({
255
+ account,
256
+ chain,
257
+ transport: custom(provider)
258
+ });
249
259
  }
250
260
  async isAuthorized() {
251
261
  try {
252
- if (this.options.shimDisconnect && !_optionalChain([_core.getClient.call(void 0, ), 'access', _13 => _13.storage, 'optionalAccess', _14 => _14.getItem, 'call', _15 => _15(this.shimDisconnectKey)]))
262
+ if (this.options.shimDisconnect && !this.storage?.getItem(this.shimDisconnectKey))
253
263
  return false;
254
264
  const provider = await this.getProvider();
255
265
  if (!provider)
256
- throw new (0, _core.ConnectorNotFoundError)();
266
+ throw new ConnectorNotFoundError();
257
267
  const account = await this.getAccount();
258
268
  return !!account;
259
- } catch (e) {
269
+ } catch {
260
270
  return false;
261
271
  }
262
272
  }
263
273
  async switchChain(chainId) {
264
274
  const provider = await this.getProvider();
265
275
  if (!provider)
266
- throw new (0, _core.ConnectorNotFoundError)();
267
- const id = _utilsjs.hexValue.call(void 0, chainId);
276
+ throw new ConnectorNotFoundError();
277
+ const id = numberToHex(chainId);
268
278
  try {
269
279
  await Promise.all([
270
280
  provider.request({
@@ -273,23 +283,26 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
273
283
  }),
274
284
  new Promise(
275
285
  (res) => this.on("change", ({ chain }) => {
276
- if (_optionalChain([chain, 'optionalAccess', _16 => _16.id]) === chainId)
286
+ if (chain?.id === chainId)
277
287
  res();
278
288
  })
279
289
  )
280
290
  ]);
281
- return _nullishCoalesce(this.chains.find((x) => x.id === chainId), () => ( {
291
+ return this.chains.find((x) => x.id === chainId) ?? {
282
292
  id: chainId,
283
293
  name: `Chain ${id}`,
284
294
  network: `${id}`,
285
295
  nativeCurrency: { name: "Ether", decimals: 18, symbol: "ETH" },
286
296
  rpcUrls: { default: { http: [""] }, public: { http: [""] } }
287
- }));
297
+ };
288
298
  } catch (error) {
289
299
  const chain = this.chains.find((x) => x.id === chainId);
290
300
  if (!chain)
291
- throw new (0, _core.ChainNotConfiguredError)({ chainId, connectorId: this.id });
292
- if (error.code === 4902 || _optionalChain([error, 'optionalAccess', _17 => _17.data, 'optionalAccess', _18 => _18.originalError, 'optionalAccess', _19 => _19.code]) === 4902) {
301
+ throw new ChainNotConfiguredForConnectorError({
302
+ chainId,
303
+ connectorId: this.id
304
+ });
305
+ if (error.code === 4902 || error?.data?.originalError?.code === 4902) {
293
306
  try {
294
307
  await provider.request({
295
308
  method: "wallet_addEthereumChain",
@@ -298,27 +311,24 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
298
311
  chainId: id,
299
312
  chainName: chain.name,
300
313
  nativeCurrency: chain.nativeCurrency,
301
- rpcUrls: [_nullishCoalesce(_optionalChain([chain, 'access', _20 => _20.rpcUrls, 'access', _21 => _21.public, 'optionalAccess', _22 => _22.http, 'access', _23 => _23[0]]), () => ( ""))],
314
+ rpcUrls: [chain.rpcUrls.public?.http[0] ?? ""],
302
315
  blockExplorerUrls: this.getBlockExplorerUrls(chain)
303
316
  }
304
317
  ]
305
318
  });
306
319
  const currentChainId = await this.getChainId();
307
320
  if (currentChainId !== chainId)
308
- throw new (0, _core.ProviderRpcError)(
309
- "User rejected switch after adding network.",
310
- { code: 4001 }
321
+ throw new UserRejectedRequestError(
322
+ new Error("User rejected switch after adding network.")
311
323
  );
312
324
  return chain;
313
- } catch (addError) {
314
- if (this.isUserRejectedRequestError(addError))
315
- throw new (0, _core.UserRejectedRequestError)(addError);
316
- throw new (0, _core.AddChainError)();
325
+ } catch (error2) {
326
+ throw new UserRejectedRequestError(error2);
317
327
  }
318
328
  }
319
329
  if (this.isUserRejectedRequestError(error))
320
- throw new (0, _core.UserRejectedRequestError)(error);
321
- throw new (0, _core.SwitchChainError)(error);
330
+ throw new UserRejectedRequestError(error);
331
+ throw new SwitchChainError(error);
322
332
  }
323
333
  }
324
334
  async watchAsset({
@@ -329,7 +339,7 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
329
339
  }) {
330
340
  const provider = await this.getProvider();
331
341
  if (!provider)
332
- throw new (0, _core.ConnectorNotFoundError)();
342
+ throw new ConnectorNotFoundError();
333
343
  return provider.request({
334
344
  method: "wallet_watchAsset",
335
345
  params: {
@@ -349,6 +359,6 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
349
359
  };
350
360
  _provider = new WeakMap();
351
361
 
352
-
353
-
354
- exports.InjectedConnector = InjectedConnector;
362
+ export {
363
+ InjectedConnector
364
+ };
@@ -0,0 +1,15 @@
1
+ // src/utils/normalizeChainId.ts
2
+ function normalizeChainId(chainId) {
3
+ if (typeof chainId === "string")
4
+ return Number.parseInt(
5
+ chainId,
6
+ chainId.trim().substring(0, 2) === "0x" ? 16 : 10
7
+ );
8
+ if (typeof chainId === "bigint")
9
+ return Number(chainId);
10
+ return chainId;
11
+ }
12
+
13
+ export {
14
+ normalizeChainId
15
+ };
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var __defProp = Object.defineProperty;
1
+ var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -28,21 +28,22 @@ var __privateMethod = (obj, member, method) => {
28
28
  };
29
29
 
30
30
  // src/base.ts
31
- var _chains = require('@wagmi/core/chains');
32
- var _eventemitter3 = require('eventemitter3'); var _eventemitter32 = _interopRequireDefault(_eventemitter3);
33
- var Connector = class extends _eventemitter32.default {
31
+ import { default as EventEmitter } from "eventemitter3";
32
+ import { goerli, mainnet } from "viem/chains";
33
+ var Connector = class extends EventEmitter {
34
34
  constructor({
35
- chains = [_chains.mainnet, _chains.goerli],
35
+ chains = [mainnet, goerli],
36
36
  options
37
37
  }) {
38
38
  super();
39
39
  __publicField(this, "chains");
40
40
  __publicField(this, "options");
41
+ __publicField(this, "storage");
41
42
  this.chains = chains;
42
43
  this.options = options;
43
44
  }
44
45
  getBlockExplorerUrls(chain) {
45
- const { default: blockExplorer, ...blockExplorers } = _nullishCoalesce(chain.blockExplorers, () => ( {}));
46
+ const { default: blockExplorer, ...blockExplorers } = chain.blockExplorers ?? {};
46
47
  if (blockExplorer)
47
48
  return [
48
49
  blockExplorer.url,
@@ -52,13 +53,16 @@ var Connector = class extends _eventemitter32.default {
52
53
  isChainUnsupported(chainId) {
53
54
  return !this.chains.some((x) => x.id === chainId);
54
55
  }
56
+ setStorage(storage) {
57
+ this.storage = storage;
58
+ }
55
59
  };
56
60
 
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
- exports.__publicField = __publicField; exports.__privateGet = __privateGet; exports.__privateAdd = __privateAdd; exports.__privateSet = __privateSet; exports.__privateMethod = __privateMethod; exports.Connector = Connector;
61
+ export {
62
+ __publicField,
63
+ __privateGet,
64
+ __privateAdd,
65
+ __privateSet,
66
+ __privateMethod,
67
+ Connector
68
+ };
@@ -0,0 +1,26 @@
1
+ import {
2
+ __publicField
3
+ } from "./chunk-QYMCVNHT.js";
4
+
5
+ // src/errors.ts
6
+ var ChainNotConfiguredForConnectorError = class extends Error {
7
+ constructor({
8
+ chainId,
9
+ connectorId
10
+ }) {
11
+ super(`Chain "${chainId}" not configured for connector "${connectorId}".`);
12
+ __publicField(this, "name", "ChainNotConfiguredForConnectorError");
13
+ }
14
+ };
15
+ var ConnectorNotFoundError = class extends Error {
16
+ constructor() {
17
+ super(...arguments);
18
+ __publicField(this, "name", "ConnectorNotFoundError");
19
+ __publicField(this, "message", "Connector not found");
20
+ }
21
+ };
22
+
23
+ export {
24
+ ChainNotConfiguredForConnectorError,
25
+ ConnectorNotFoundError
26
+ };