@bwalletx/connect 0.5.6 → 0.7.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 (36) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +22 -2
  3. package/dist/bwalletx-connect.global.js +15 -10
  4. package/dist/bwalletx-connect.global.js.map +1 -1
  5. package/dist/{choice-DCh-tgpT.d.cts → choice-B97AjqF4.d.cts} +87 -3
  6. package/dist/{choice-DCh-tgpT.d.ts → choice-B97AjqF4.d.ts} +87 -3
  7. package/dist/{chunk-LS6AYEBO.js → chunk-6EFFOIHK.js} +596 -41
  8. package/dist/chunk-6EFFOIHK.js.map +1 -0
  9. package/dist/{chunk-34DKBQNN.js → chunk-DIKJFKND.js} +22 -5
  10. package/dist/chunk-DIKJFKND.js.map +1 -0
  11. package/dist/{chunk-IFGOAROM.js → chunk-TNRI7ARM.js} +14 -63
  12. package/dist/chunk-TNRI7ARM.js.map +1 -0
  13. package/dist/{element-D9Zl-x12.d.cts → element-BXEoOdXY.d.cts} +11 -4
  14. package/dist/{element-D9Zl-x12.d.ts → element-BXEoOdXY.d.ts} +11 -4
  15. package/dist/element.cjs +480 -50
  16. package/dist/element.cjs.map +1 -1
  17. package/dist/element.d.cts +7 -2
  18. package/dist/element.d.ts +7 -2
  19. package/dist/element.js +8 -2
  20. package/dist/element.js.map +1 -1
  21. package/dist/index.cjs +676 -100
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +169 -11
  24. package/dist/index.d.ts +169 -11
  25. package/dist/index.js +92 -6
  26. package/dist/index.js.map +1 -1
  27. package/dist/react.cjs +683 -103
  28. package/dist/react.cjs.map +1 -1
  29. package/dist/react.d.cts +43 -4
  30. package/dist/react.d.ts +43 -4
  31. package/dist/react.js +147 -12
  32. package/dist/react.js.map +1 -1
  33. package/package.json +1 -1
  34. package/dist/chunk-34DKBQNN.js.map +0 -1
  35. package/dist/chunk-IFGOAROM.js.map +0 -1
  36. package/dist/chunk-LS6AYEBO.js.map +0 -1
@@ -114,7 +114,15 @@ interface PayResult {
114
114
  /** For an identity-key payment: what the recipient needs to internalize the output (BRC-29). Deliver it to them. */
115
115
  remittance?: Brc29Remittance;
116
116
  }
117
- type PaymentErrorCode = 'BAD_REQUEST' | 'RESOLVE_FAILED' | 'RATE_FAILED' | 'WALLET_REJECTED' | 'WALLET_ERROR' | 'NOT_SUPPORTED';
117
+ type PaymentErrorCode = 'BAD_REQUEST' | 'RESOLVE_FAILED' | 'RATE_FAILED' | 'WALLET_REJECTED' | 'WALLET_ERROR' | 'NOT_SUPPORTED' | 'INSUFFICIENT_FUNDS';
118
+ /** (0.7.0) The plain message for a wallet with no coins for the network fee (PaymentError code INSUFFICIENT_FUNDS). */
119
+ declare const NO_COINS_TEXT = "Your wallet doesn't have enough to cover this payment and its small network fee. Add a little and try again.";
120
+ /**
121
+ * True when createAction failed because the wallet has no coins (or too few) to fund it: the SDK's
122
+ * WERR_INSUFFICIENT_FUNDS (code 7, also as it arrives from Metanet Desktop over the JSON API), or a wallet's own
123
+ * "insufficient funds" text. Nothing was sent in that case.
124
+ */
125
+ declare function isInsufficientFunds(e: unknown): boolean;
118
126
  declare class PaymentError extends Error {
119
127
  readonly code: PaymentErrorCode;
120
128
  /** true when the wallet was asked to spend and the outcome is unknown. Check before trying again. */
@@ -294,6 +302,11 @@ declare function desktopOption(ms?: number): WalletOption;
294
302
  * `force` (picker off): the first detected wallet, else the first non-pairing option, else pairing.
295
303
  */
296
304
  declare function autoChoice(list: WalletOption[], force?: boolean): WalletOption | null | undefined;
305
+ /**
306
+ * (0.7.0) A desktop wallet reached over localhost (json-api on 3321 = Metanet Desktop, Cicada on 3301): never picked
307
+ * by the button, the fast path or a remembered choice; only by its own tap ("Use Metanet Desktop…").
308
+ */
309
+ declare function isLocalDesktop(w: Pick<WalletOption, 'id' | 'substrate'>): boolean;
297
310
 
298
311
  /** The wallet type every bWalletX (extension, in-app, app frame, phone) reports. */
299
312
  declare const BWALLETX_TYPE = "bwalletx";
@@ -317,7 +330,7 @@ declare function chooserOrder(list: readonly WalletOption[]): WalletOption[];
317
330
  * 'bwalletx-phone': picker off and no bWalletX here, so the phone; 'legacy': fastPath false (0.5.5 autoChoice);
318
331
  * 'chooser': show the chooser; 'none': nothing to offer.
319
332
  */
320
- type ChoiceReason = 'requested' | 'bwalletx' | 'bwalletx-phone' | 'legacy' | 'chooser' | 'none';
333
+ type ChoiceReason = 'requested' | 'remembered' | 'bwalletx' | 'bwalletx-phone' | 'legacy' | 'chooser' | 'none';
321
334
  interface WalletChoice {
322
335
  option: WalletOption | null;
323
336
  reason: ChoiceReason;
@@ -331,6 +344,10 @@ interface DecideWalletOptions {
331
344
  picker?: boolean;
332
345
  /** The bWalletX-first rule. Default true; false restores the 0.5.5 behaviour (autoChoice). */
333
346
  fastPath?: boolean;
347
+ /** (0.6.0) The wallet the user picked on this origin before (rememberedWalletChoice()). Used when it is here. */
348
+ remembered?: RememberedWallet | null;
349
+ /** (0.6.0) "Switch" to bWalletX: ignore a remembered other wallet. */
350
+ preferBwalletX?: boolean;
334
351
  }
335
352
  /** The wallet to connect now, or the chooser ({ option: null, reason: 'chooser' }). */
336
353
  declare function decideWallet(list: readonly WalletOption[], o?: DecideWalletOptions): WalletChoice;
@@ -354,5 +371,72 @@ declare function outcomeOf(e: unknown): AttemptOutcome;
354
371
  declare function attemptFor(option: WalletOption | null | undefined, outcome: AttemptOutcome, startedAt: number, now?: number): ConnectAttempt;
355
372
  /** Call the hook with exactly the four fields; a throwing hook never breaks sign-in. */
356
373
  declare function reportAttempt(hook: AttemptHook | undefined, a: ConnectAttempt): void;
374
+ /** localStorage key (per origin, like all localStorage) for the wallet type picked here. Never holds a key. */
375
+ declare const WALLET_CHOICE_KEY = "bwx:wallet";
376
+ /** What is remembered: the wallet type and how it reached the page. Nothing that identifies the user. */
377
+ interface RememberedWallet {
378
+ type: string;
379
+ substrate: Substrate;
380
+ }
381
+ /**
382
+ * True when the same wallet can be found again next time: bWalletX, an announced wallet (by its rdns), a desktop
383
+ * wallet, an app adapter. A bare window.CWI cannot (whoever holds it next time may be another wallet), so it is
384
+ * never remembered.
385
+ */
386
+ declare function isRememberable(o: WalletOption): boolean;
387
+ /** Whether a successful connect counts as the user's explicit pick: bWalletX (they tapped its button), or chosen. */
388
+ declare function isExplicitPick(o: WalletOption, reason: ChoiceReason): boolean;
389
+ /** Remember the wallet type picked on this origin (or forget with null). Silently skips what can't be remembered. */
390
+ declare function rememberWalletChoice(o: WalletOption | null): void;
391
+ /** The wallet type picked on this origin before, or null. Anything malformed or key-like is ignored. */
392
+ declare function rememberedWalletChoice(): RememberedWallet | null;
393
+ /** Forget the remembered wallet (Disconnect does this). */
394
+ declare function forgetWalletChoice(): void;
395
+ /** True when this wallet type is not bWalletX: show "Some features need bWalletX · Switch". */
396
+ declare function needsBwalletX(type: string | null | undefined): boolean;
397
+ /**
398
+ * (0.7.0) True when the signed-out button's tap goes to this remembered wallet instead of bWalletX ("Continue with your
399
+ * wallet", the Switch note). Never for Metanet: the button never picks it (it has its own link and "Not you?").
400
+ */
401
+ declare function tapGoesElsewhere(type: string | null | undefined): boolean;
402
+ /** (0.7.0) A remembered desktop wallet on localhost (Metanet, 'desktop', json-api, cicada): never the button's pick. */
403
+ declare function isLocalDesktopType(r: RememberedWallet): boolean;
404
+ /**
405
+ * The option in `list` for a remembered wallet, or null when it isn't here. bWalletX counts only by its own marker
406
+ * (or the phone, when the phone was picked). A remembered desktop wallet on localhost (Metanet / 'desktop') gives null
407
+ * (0.7.0): the button never picks it; its own link does.
408
+ */
409
+ declare function matchRemembered(list: readonly WalletOption[], r: RememberedWallet): WalletOption | null;
410
+ /**
411
+ * What to do on page load for a returning visitor (0.6.0).
412
+ * 'attach' signed in already (a server session) and the remembered wallet is in the page: pick it up by
413
+ * discovery alone (no wallet call, so no prompt) so pay/tip work without another tap;
414
+ * 'wait-for-tap' anything else a wallet would have to answer (a key, a signature, a localhost probe, a relay
415
+ * reconnect): nothing fires; the next tap goes straight to the remembered wallet;
416
+ * 'silent-metanet' (0.7.0) Metanet Desktop remembered, on a computer outside any frame: ONE silent attempt this page
417
+ * load (trySilentMetanet: 2 s, known identity keys only), else the normal choice;
418
+ * 'none' nothing remembered, or auto-connect off (or Metanet remembered where it isn't offered).
419
+ */
420
+ type AutoConnectAction = 'attach' | 'wait-for-tap' | 'silent-metanet' | 'none';
421
+ interface AutoConnectPlan {
422
+ action: AutoConnectAction;
423
+ remembered: RememberedWallet | null;
424
+ /** The remembered wallet isn't bWalletX: show "Some features need bWalletX · Switch". */
425
+ needsBwalletX: boolean;
426
+ }
427
+ declare function planAutoConnect(o: {
428
+ remembered: RememberedWallet | null;
429
+ signedIn: boolean;
430
+ enabled?: boolean;
431
+ /** (0.7.0) Metanet is offered here (a computer, outside any frame). Default metanetOffered(). */
432
+ metanetHere?: boolean;
433
+ }): AutoConnectPlan;
434
+ /**
435
+ * Find the remembered wallet in the page by discovery alone: no wallet method is called, nothing touches localhost,
436
+ * no relay is opened. null when it isn't here (or it isn't something that can be attached silently).
437
+ */
438
+ declare function attachRemembered(r: RememberedWallet, o?: {
439
+ ms?: number;
440
+ }): Promise<WalletOption | null>;
357
441
 
358
- export { pay as $, type AttemptHook as A, type BuyTokenRequest as B, type ConnectedWallet as C, DESKTOP_OPTION_ID as D, type WalletChoice as E, type WalletKind as F, amountInSats as G, type HandCashAdapterOptions as H, attemptFor as I, buyToken as J, chooserOrder as K, type LegacyPayer as L, clearPairing as M, cwiIsAnnounced as N, decideWallet as O, type PayRequest as P, desktopOption as Q, hasBwalletX as R, type Substrate as S, type TokenQuote as T, isIdentityKeyHex as U, isPaymail as V, type WalletOption as W, isPresentBwalletX as X, otherDetected as Y, outcomeOf as Z, pairBwalletX as _, type PayResult as a, reportAttempt as a0, resolvePaymailP2P as a1, restorePairing as a2, substrateOf as a3, tip as a4, walletTypeOf as a5, type PayOptions as b, PaymentError as c, autoChoice as d, brc100Option as e, discoverWallets as f, type PairingOptions as g, handcashAdapter as h, type ChoiceReason as i, type AttemptOutcome as j, BRC29_PROTOCOL as k, BWALLETX_TYPE as l, type Brc29Remittance as m, type ConnectAttempt as n, type ConnectOptions as o, pairingOption as p, type DecideWalletOptions as q, type DiscoverWalletsOptions as r, type PairConnectionOptions as s, type PairStorage as t, type PairedWallet as u, type PayOutput as v, type PaySource as w, type PaymentErrorCode as x, type SocketFactory as y, type SocketLike as z };
442
+ export { hasBwalletX as $, type AttemptHook as A, type BuyTokenRequest as B, type ConnectedWallet as C, DESKTOP_OPTION_ID as D, type SocketFactory as E, type SocketLike as F, WALLET_CHOICE_KEY as G, type HandCashAdapterOptions as H, type WalletChoice as I, type WalletKind as J, amountInSats as K, type LegacyPayer as L, attachRemembered as M, NO_COINS_TEXT as N, attemptFor as O, type PayRequest as P, buyToken as Q, type RememberedWallet as R, type Substrate as S, type TokenQuote as T, chooserOrder as U, clearPairing as V, type WalletOption as W, cwiIsAnnounced as X, decideWallet as Y, desktopOption as Z, forgetWalletChoice as _, type PayResult as a, isExplicitPick as a0, isIdentityKeyHex as a1, isInsufficientFunds as a2, isLocalDesktop as a3, isLocalDesktopType as a4, isPaymail as a5, isPresentBwalletX as a6, isRememberable as a7, matchRemembered as a8, needsBwalletX as a9, otherDetected as aa, outcomeOf as ab, pairBwalletX as ac, pay as ad, planAutoConnect as ae, rememberWalletChoice as af, rememberedWalletChoice as ag, reportAttempt as ah, resolvePaymailP2P as ai, restorePairing as aj, substrateOf as ak, tapGoesElsewhere as al, tip as am, walletTypeOf as an, type PayOptions as b, PaymentError as c, autoChoice as d, brc100Option as e, discoverWallets as f, type PairingOptions as g, handcashAdapter as h, type ChoiceReason as i, type AttemptOutcome as j, type AutoConnectAction as k, type AutoConnectPlan as l, BRC29_PROTOCOL as m, BWALLETX_TYPE as n, type Brc29Remittance as o, pairingOption as p, type ConnectAttempt as q, type ConnectOptions as r, type DecideWalletOptions as s, type DiscoverWalletsOptions as t, type PairConnectionOptions as u, type PairStorage as v, type PairedWallet as w, type PayOutput as x, type PaySource as y, type PaymentErrorCode as z };
@@ -114,7 +114,15 @@ interface PayResult {
114
114
  /** For an identity-key payment: what the recipient needs to internalize the output (BRC-29). Deliver it to them. */
115
115
  remittance?: Brc29Remittance;
116
116
  }
117
- type PaymentErrorCode = 'BAD_REQUEST' | 'RESOLVE_FAILED' | 'RATE_FAILED' | 'WALLET_REJECTED' | 'WALLET_ERROR' | 'NOT_SUPPORTED';
117
+ type PaymentErrorCode = 'BAD_REQUEST' | 'RESOLVE_FAILED' | 'RATE_FAILED' | 'WALLET_REJECTED' | 'WALLET_ERROR' | 'NOT_SUPPORTED' | 'INSUFFICIENT_FUNDS';
118
+ /** (0.7.0) The plain message for a wallet with no coins for the network fee (PaymentError code INSUFFICIENT_FUNDS). */
119
+ declare const NO_COINS_TEXT = "Your wallet doesn't have enough to cover this payment and its small network fee. Add a little and try again.";
120
+ /**
121
+ * True when createAction failed because the wallet has no coins (or too few) to fund it: the SDK's
122
+ * WERR_INSUFFICIENT_FUNDS (code 7, also as it arrives from Metanet Desktop over the JSON API), or a wallet's own
123
+ * "insufficient funds" text. Nothing was sent in that case.
124
+ */
125
+ declare function isInsufficientFunds(e: unknown): boolean;
118
126
  declare class PaymentError extends Error {
119
127
  readonly code: PaymentErrorCode;
120
128
  /** true when the wallet was asked to spend and the outcome is unknown. Check before trying again. */
@@ -294,6 +302,11 @@ declare function desktopOption(ms?: number): WalletOption;
294
302
  * `force` (picker off): the first detected wallet, else the first non-pairing option, else pairing.
295
303
  */
296
304
  declare function autoChoice(list: WalletOption[], force?: boolean): WalletOption | null | undefined;
305
+ /**
306
+ * (0.7.0) A desktop wallet reached over localhost (json-api on 3321 = Metanet Desktop, Cicada on 3301): never picked
307
+ * by the button, the fast path or a remembered choice; only by its own tap ("Use Metanet Desktop…").
308
+ */
309
+ declare function isLocalDesktop(w: Pick<WalletOption, 'id' | 'substrate'>): boolean;
297
310
 
298
311
  /** The wallet type every bWalletX (extension, in-app, app frame, phone) reports. */
299
312
  declare const BWALLETX_TYPE = "bwalletx";
@@ -317,7 +330,7 @@ declare function chooserOrder(list: readonly WalletOption[]): WalletOption[];
317
330
  * 'bwalletx-phone': picker off and no bWalletX here, so the phone; 'legacy': fastPath false (0.5.5 autoChoice);
318
331
  * 'chooser': show the chooser; 'none': nothing to offer.
319
332
  */
320
- type ChoiceReason = 'requested' | 'bwalletx' | 'bwalletx-phone' | 'legacy' | 'chooser' | 'none';
333
+ type ChoiceReason = 'requested' | 'remembered' | 'bwalletx' | 'bwalletx-phone' | 'legacy' | 'chooser' | 'none';
321
334
  interface WalletChoice {
322
335
  option: WalletOption | null;
323
336
  reason: ChoiceReason;
@@ -331,6 +344,10 @@ interface DecideWalletOptions {
331
344
  picker?: boolean;
332
345
  /** The bWalletX-first rule. Default true; false restores the 0.5.5 behaviour (autoChoice). */
333
346
  fastPath?: boolean;
347
+ /** (0.6.0) The wallet the user picked on this origin before (rememberedWalletChoice()). Used when it is here. */
348
+ remembered?: RememberedWallet | null;
349
+ /** (0.6.0) "Switch" to bWalletX: ignore a remembered other wallet. */
350
+ preferBwalletX?: boolean;
334
351
  }
335
352
  /** The wallet to connect now, or the chooser ({ option: null, reason: 'chooser' }). */
336
353
  declare function decideWallet(list: readonly WalletOption[], o?: DecideWalletOptions): WalletChoice;
@@ -354,5 +371,72 @@ declare function outcomeOf(e: unknown): AttemptOutcome;
354
371
  declare function attemptFor(option: WalletOption | null | undefined, outcome: AttemptOutcome, startedAt: number, now?: number): ConnectAttempt;
355
372
  /** Call the hook with exactly the four fields; a throwing hook never breaks sign-in. */
356
373
  declare function reportAttempt(hook: AttemptHook | undefined, a: ConnectAttempt): void;
374
+ /** localStorage key (per origin, like all localStorage) for the wallet type picked here. Never holds a key. */
375
+ declare const WALLET_CHOICE_KEY = "bwx:wallet";
376
+ /** What is remembered: the wallet type and how it reached the page. Nothing that identifies the user. */
377
+ interface RememberedWallet {
378
+ type: string;
379
+ substrate: Substrate;
380
+ }
381
+ /**
382
+ * True when the same wallet can be found again next time: bWalletX, an announced wallet (by its rdns), a desktop
383
+ * wallet, an app adapter. A bare window.CWI cannot (whoever holds it next time may be another wallet), so it is
384
+ * never remembered.
385
+ */
386
+ declare function isRememberable(o: WalletOption): boolean;
387
+ /** Whether a successful connect counts as the user's explicit pick: bWalletX (they tapped its button), or chosen. */
388
+ declare function isExplicitPick(o: WalletOption, reason: ChoiceReason): boolean;
389
+ /** Remember the wallet type picked on this origin (or forget with null). Silently skips what can't be remembered. */
390
+ declare function rememberWalletChoice(o: WalletOption | null): void;
391
+ /** The wallet type picked on this origin before, or null. Anything malformed or key-like is ignored. */
392
+ declare function rememberedWalletChoice(): RememberedWallet | null;
393
+ /** Forget the remembered wallet (Disconnect does this). */
394
+ declare function forgetWalletChoice(): void;
395
+ /** True when this wallet type is not bWalletX: show "Some features need bWalletX · Switch". */
396
+ declare function needsBwalletX(type: string | null | undefined): boolean;
397
+ /**
398
+ * (0.7.0) True when the signed-out button's tap goes to this remembered wallet instead of bWalletX ("Continue with your
399
+ * wallet", the Switch note). Never for Metanet: the button never picks it (it has its own link and "Not you?").
400
+ */
401
+ declare function tapGoesElsewhere(type: string | null | undefined): boolean;
402
+ /** (0.7.0) A remembered desktop wallet on localhost (Metanet, 'desktop', json-api, cicada): never the button's pick. */
403
+ declare function isLocalDesktopType(r: RememberedWallet): boolean;
404
+ /**
405
+ * The option in `list` for a remembered wallet, or null when it isn't here. bWalletX counts only by its own marker
406
+ * (or the phone, when the phone was picked). A remembered desktop wallet on localhost (Metanet / 'desktop') gives null
407
+ * (0.7.0): the button never picks it; its own link does.
408
+ */
409
+ declare function matchRemembered(list: readonly WalletOption[], r: RememberedWallet): WalletOption | null;
410
+ /**
411
+ * What to do on page load for a returning visitor (0.6.0).
412
+ * 'attach' signed in already (a server session) and the remembered wallet is in the page: pick it up by
413
+ * discovery alone (no wallet call, so no prompt) so pay/tip work without another tap;
414
+ * 'wait-for-tap' anything else a wallet would have to answer (a key, a signature, a localhost probe, a relay
415
+ * reconnect): nothing fires; the next tap goes straight to the remembered wallet;
416
+ * 'silent-metanet' (0.7.0) Metanet Desktop remembered, on a computer outside any frame: ONE silent attempt this page
417
+ * load (trySilentMetanet: 2 s, known identity keys only), else the normal choice;
418
+ * 'none' nothing remembered, or auto-connect off (or Metanet remembered where it isn't offered).
419
+ */
420
+ type AutoConnectAction = 'attach' | 'wait-for-tap' | 'silent-metanet' | 'none';
421
+ interface AutoConnectPlan {
422
+ action: AutoConnectAction;
423
+ remembered: RememberedWallet | null;
424
+ /** The remembered wallet isn't bWalletX: show "Some features need bWalletX · Switch". */
425
+ needsBwalletX: boolean;
426
+ }
427
+ declare function planAutoConnect(o: {
428
+ remembered: RememberedWallet | null;
429
+ signedIn: boolean;
430
+ enabled?: boolean;
431
+ /** (0.7.0) Metanet is offered here (a computer, outside any frame). Default metanetOffered(). */
432
+ metanetHere?: boolean;
433
+ }): AutoConnectPlan;
434
+ /**
435
+ * Find the remembered wallet in the page by discovery alone: no wallet method is called, nothing touches localhost,
436
+ * no relay is opened. null when it isn't here (or it isn't something that can be attached silently).
437
+ */
438
+ declare function attachRemembered(r: RememberedWallet, o?: {
439
+ ms?: number;
440
+ }): Promise<WalletOption | null>;
357
441
 
358
- export { pay as $, type AttemptHook as A, type BuyTokenRequest as B, type ConnectedWallet as C, DESKTOP_OPTION_ID as D, type WalletChoice as E, type WalletKind as F, amountInSats as G, type HandCashAdapterOptions as H, attemptFor as I, buyToken as J, chooserOrder as K, type LegacyPayer as L, clearPairing as M, cwiIsAnnounced as N, decideWallet as O, type PayRequest as P, desktopOption as Q, hasBwalletX as R, type Substrate as S, type TokenQuote as T, isIdentityKeyHex as U, isPaymail as V, type WalletOption as W, isPresentBwalletX as X, otherDetected as Y, outcomeOf as Z, pairBwalletX as _, type PayResult as a, reportAttempt as a0, resolvePaymailP2P as a1, restorePairing as a2, substrateOf as a3, tip as a4, walletTypeOf as a5, type PayOptions as b, PaymentError as c, autoChoice as d, brc100Option as e, discoverWallets as f, type PairingOptions as g, handcashAdapter as h, type ChoiceReason as i, type AttemptOutcome as j, BRC29_PROTOCOL as k, BWALLETX_TYPE as l, type Brc29Remittance as m, type ConnectAttempt as n, type ConnectOptions as o, pairingOption as p, type DecideWalletOptions as q, type DiscoverWalletsOptions as r, type PairConnectionOptions as s, type PairStorage as t, type PairedWallet as u, type PayOutput as v, type PaySource as w, type PaymentErrorCode as x, type SocketFactory as y, type SocketLike as z };
442
+ export { hasBwalletX as $, type AttemptHook as A, type BuyTokenRequest as B, type ConnectedWallet as C, DESKTOP_OPTION_ID as D, type SocketFactory as E, type SocketLike as F, WALLET_CHOICE_KEY as G, type HandCashAdapterOptions as H, type WalletChoice as I, type WalletKind as J, amountInSats as K, type LegacyPayer as L, attachRemembered as M, NO_COINS_TEXT as N, attemptFor as O, type PayRequest as P, buyToken as Q, type RememberedWallet as R, type Substrate as S, type TokenQuote as T, chooserOrder as U, clearPairing as V, type WalletOption as W, cwiIsAnnounced as X, decideWallet as Y, desktopOption as Z, forgetWalletChoice as _, type PayResult as a, isExplicitPick as a0, isIdentityKeyHex as a1, isInsufficientFunds as a2, isLocalDesktop as a3, isLocalDesktopType as a4, isPaymail as a5, isPresentBwalletX as a6, isRememberable as a7, matchRemembered as a8, needsBwalletX as a9, otherDetected as aa, outcomeOf as ab, pairBwalletX as ac, pay as ad, planAutoConnect as ae, rememberWalletChoice as af, rememberedWalletChoice as ag, reportAttempt as ah, resolvePaymailP2P as ai, restorePairing as aj, substrateOf as ak, tapGoesElsewhere as al, tip as am, walletTypeOf as an, type PayOptions as b, PaymentError as c, autoChoice as d, brc100Option as e, discoverWallets as f, type PairingOptions as g, handcashAdapter as h, type ChoiceReason as i, type AttemptOutcome as j, type AutoConnectAction as k, type AutoConnectPlan as l, BRC29_PROTOCOL as m, BWALLETX_TYPE as n, type Brc29Remittance as o, pairingOption as p, type ConnectAttempt as q, type ConnectOptions as r, type DecideWalletOptions as s, type DiscoverWalletsOptions as t, type PairConnectionOptions as u, type PairStorage as v, type PairedWallet as w, type PayOutput as x, type PaySource as y, type PaymentErrorCode as z };