@meshconnect/uwc-bridge-parent 1.4.2 → 1.5.0-snapshot.c3e9146

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.
@@ -22,6 +22,38 @@ export interface WalletStandardInfo {
22
22
  features: string[];
23
23
  adapter: ExtendedStandardWalletAdapter | undefined;
24
24
  }
25
+ interface Bip122ConnectFeature {
26
+ connect: (input: unknown) => Promise<unknown>;
27
+ }
28
+ interface Bip122SignMessageFeature {
29
+ signMessage: (input: unknown) => Promise<unknown>;
30
+ }
31
+ interface Bip122SignTransactionFeature {
32
+ signTransaction: (input: unknown) => Promise<unknown>;
33
+ }
34
+ /**
35
+ * Wallet Standard `bitcoin:*` wallet, reshaped into plain data (`name`,
36
+ * `accounts`) plus Comlink-proxied feature methods so it survives the
37
+ * postMessage bridge — mirrors `WalletStandardBitcoinWallet`
38
+ * (`@meshconnect/uwc-bitcoin`), duck-typed here rather than imported to avoid
39
+ * a new cross-package dependency (same approach as the Tron/TON provider
40
+ * shapes below).
41
+ */
42
+ export interface Bip122WireWallet {
43
+ name: string;
44
+ accounts: any[];
45
+ features: {
46
+ 'bitcoin:connect'?: Bip122ConnectFeature | undefined;
47
+ 'bitcoin:signMessage'?: Bip122SignMessageFeature | undefined;
48
+ 'bitcoin:signTransaction'?: Bip122SignTransactionFeature | undefined;
49
+ };
50
+ }
51
+ export interface Bip122WalletInfo {
52
+ uuid: string;
53
+ name: string;
54
+ features: string[];
55
+ wallet: Bip122WireWallet;
56
+ }
25
57
  export interface EIP6963ProviderInfo {
26
58
  uuid: string;
27
59
  name: string;
@@ -61,6 +93,8 @@ export interface ParentAPI {
61
93
  eip6963WalletsReady: boolean;
62
94
  walletStandardWallets: WalletStandardInfo[];
63
95
  walletStandardWalletsReady: boolean;
96
+ bip122Wallets: Bip122WalletInfo[];
97
+ bip122WalletsReady: boolean;
64
98
  tronWallets: TronWalletInfo[];
65
99
  tronWalletsReady: boolean;
66
100
  tonWallets: TonWalletInfo[];
@@ -68,6 +102,56 @@ export interface ParentAPI {
68
102
  parentOrigin: string;
69
103
  discoverTronWallets: (injectedIds: string[]) => void;
70
104
  discoverTonWallets: (jsBridgeKeys: string[]) => void;
105
+ /**
106
+ * Attach a real listener for `eventName` on the EIP-6963 provider. Awaits the
107
+ * one-shot EIP-6963 discovery window before looking up the wallet by `uuid` in
108
+ * `eip6963Wallets`; if that misses and an optional `rdns` was supplied, falls
109
+ * back to matching by `rdns` (a wallet-defined identifier stable across
110
+ * injection contexts). Forwards every event firing to `callback` (a
111
+ * Comlink-proxied callback the child supplies). Resolves to a teardown that
112
+ * removes the listener. THROWS when neither `uuid` nor the `rdns` fallback
113
+ * resolves a wallet (surfaced to the child as a bridge error rather than a
114
+ * silent no-op); resolves to `undefined` only when the wallet IS found but
115
+ * exposes no `.on` to observe.
116
+ */
117
+ subscribeEip6963ProviderEvent: (uuid: string, eventName: 'accountsChanged' | 'chainChanged' | 'disconnect', callback: (payload?: unknown) => void, rdns?: string) => Promise<(() => void) | undefined>;
118
+ /**
119
+ * Same as `subscribeEip6963ProviderEvent`, but for an injected Tron
120
+ * provider resolved fresh by its window path (`injectedId`) rather than a
121
+ * cached discovery list, since Tron providers aren't cached the same way.
122
+ */
123
+ subscribeTronProviderEvent: (injectedId: string, eventName: 'accountsChanged' | 'disconnect', callback: (payload?: unknown) => void) => (() => void) | undefined;
124
+ /**
125
+ * Relay a connected Solana wallet's account-change events across the
126
+ * bridge. `walletId` is the SAME id `walletStandardWallets[].uuid`
127
+ * publishes (see `generateWalletId` — name+chain based, not a real UUID),
128
+ * which the child mirrors back as
129
+ * `SolanaWalletService.connectedWalletUuid`. Deliberately re-resolves the
130
+ * REAL, in-frame adapter (via `getWallets()`) rather than reusing the
131
+ * serialized `walletStandardWallets[].adapter` object — that object only
132
+ * exposes the whitelisted sign/transaction methods for Comlink, not
133
+ * `.on`/`.off`, so it can't be used to attach a live listener. Forwards a
134
+ * plain `string | null` (never a `PublicKey`) to `callback`, a
135
+ * Comlink-proxied callback the child supplies. Throws when no wallet
136
+ * matches `walletId` (reported as a bridge error on the child side,
137
+ * mirroring `subscribeEip6963ProviderEvent`'s uuid-miss); returns
138
+ * `undefined` when the resolved adapter can't be observed.
139
+ */
140
+ subscribeSolanaWalletEvent: (walletId: string, callback: (address: string | null) => void) => (() => void) | undefined;
141
+ /**
142
+ * Bitcoin peer of `subscribeSolanaWalletEvent`. `walletId` is the SAME id
143
+ * `bip122Wallets[].uuid` publishes (see `generateBip122WalletId`), which the
144
+ * child mirrors back as `BitcoinWalletService.connectedWalletUuid`. Bitcoin
145
+ * has no adapter class re-emitting `connect`/`disconnect` on a switch (the
146
+ * way `StandardWalletAdapter` does for Solana) — `standard:events` is the
147
+ * ONLY path, not a preferred one with a fallback. Forwards a plain
148
+ * `string | null` (never the raw account object) to `callback`, a
149
+ * Comlink-proxied callback the child supplies. Throws when no wallet
150
+ * matches `walletId` (reported as a bridge error on the child side,
151
+ * mirroring `subscribeSolanaWalletEvent`'s walletId-miss); returns
152
+ * `undefined` when the resolved wallet exposes no `standard:events`.
153
+ */
154
+ subscribeBip122WalletEvent: (walletId: string, callback: (address: string | null) => void) => (() => void) | undefined;
71
155
  }
72
156
  export declare class BridgeParent {
73
157
  private iframe;
@@ -75,16 +159,87 @@ export declare class BridgeParent {
75
159
  private endpoint;
76
160
  private exposeListeners;
77
161
  private destroyed;
162
+ private eip6963DiscoveryPromise;
78
163
  constructor(iframe: HTMLIFrameElement);
79
164
  private initializeConnection;
80
165
  private discovereip6963Wallets;
81
166
  private getSolanaWallets;
82
167
  private isSolanaWallet;
168
+ private isBitcoinWallet;
169
+ /**
170
+ * Wallet Standard `bitcoin:*` discovery — the Bitcoin peer of
171
+ * `getSolanaWallets`. Reshapes each matching registry wallet into plain
172
+ * data (`accounts`) plus individually Comlink-proxied feature methods
173
+ * (`bitcoin:connect`/`signMessage`/`signTransaction`), each left `undefined`
174
+ * when the real wallet doesn't declare it — so `WalletStandardBitcoinAdapter`'s
175
+ * own presence checks (`if (!feature) throw ...`) still work once marshaled
176
+ * across the bridge.
177
+ */
178
+ private getBitcoinWallets;
83
179
  private generateWalletId;
180
+ /**
181
+ * Bitcoin peer of `generateWalletId`, kept separate rather than shared: it
182
+ * keys on the wallet's first `bitcoin:` chain, not `chains[0]` — MetaMask's
183
+ * bitcoin:* wallet is multi-chain (eip155 chains registered first), so
184
+ * `chains[0]` would key this id off an unrelated namespace. Mirrors the
185
+ * same fix already applied to the local (unframed) discovery path in
186
+ * wallet-standard-discovery.ts. Used by both `getBitcoinWallets()` and
187
+ * `resolveBip122WalletForEvent()` so they agree on the same id.
188
+ */
189
+ private generateBip122WalletId;
190
+ /**
191
+ * Resolve the REAL registry wallet for `walletId` (the same id
192
+ * `getBitcoinWallets()` publishes as `Bip122WalletInfo.uuid`) so
193
+ * `subscribeBip122WalletEvent` can attach a live listener. Unlike Solana,
194
+ * Bitcoin has no adapter class to construct — `getBitcoinWallets()` already
195
+ * reshapes the raw registry `Wallet` directly, so this returns that same
196
+ * raw `Wallet`, which still carries `standard:events` (the reshaped
197
+ * `Bip122WireWallet` sent across the bridge does not).
198
+ */
199
+ private resolveBip122WalletForEvent;
84
200
  /**
85
201
  * Checks if a value looks like a Tron provider (has request and tronWeb)
86
202
  */
87
203
  private isTronProvider;
204
+ /**
205
+ * Resolve the REAL (non-serialized) Solana adapter for `walletId` — the
206
+ * same id `getSolanaWallets()` publishes as `WalletStandardInfo.uuid` (see
207
+ * `generateWalletId`). Mirrors `getSolanaWallets()`'s wallet-standard +
208
+ * traditional-Base-Wallet resolution, but returns the adapter instance
209
+ * itself instead of the Comlink-serialized object literal, since only the
210
+ * real instance has `.on`/`.off` to subscribe to.
211
+ */
212
+ private resolveSolanaAdapterForWalletEvent;
213
+ /** Resolve a nested window path (e.g. 'tokenpocket.tron' -> window.tokenpocket.tron). */
214
+ private resolveTronProviderByPath;
215
+ /**
216
+ * TronLink's account/disconnect events fire on its TIP-1193 provider
217
+ * (`window.tron`), NOT on the `window.tronLink` object the catalog
218
+ * `injectedId` resolves to (that one carries `request`+`tronWeb` but is not
219
+ * an event emitter). Returns TronLink's `window.tron` emitter, but ONLY when
220
+ * the subscription is for TronLink itself.
221
+ *
222
+ * `window.tron` belongs exclusively to TronLink. Other Tron wallets whose own
223
+ * provider happens to lack `.on` (confirmed for OKX's `okxwallet.tronLink`,
224
+ * which is not an event emitter and broadcasts account switches on the window
225
+ * `message` channel instead) MUST NOT inherit it — binding OKX's
226
+ * `accountsChanged` on TronLink's `window.tron` means OKX's switches fire on
227
+ * the wrong wallet's provider and are silently dropped. Gated on the
228
+ * subscription's identity so only the TronLink path uses this fallback; every
229
+ * other wallet falls through to `subscribeTronWindowMessage`.
230
+ */
231
+ private resolveTronEventEmitter;
232
+ /**
233
+ * Last-resort account/disconnect subscription for TronLink builds that expose
234
+ * neither an EIP-1193 nor a TIP-1193 `.on`: the wallet broadcasts changes as
235
+ * `window` `message` events (`{ message: { action, data } }`). Maps the
236
+ * TronLink `action` to the requested UWC event and forwards a
237
+ * Comlink-cloneable payload (never the raw event). Returns a teardown.
238
+ *
239
+ * `message` is window-global (not wallet-scoped), so this is only reached
240
+ * when no `.on` emitter exists anywhere for this session.
241
+ */
242
+ private subscribeTronWindowMessage;
88
243
  private getTronWallets;
89
244
  private isTonConnectBridge;
90
245
  private getTonWallets;
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeParent.d.ts","sourceRoot":"","sources":["../src/BridgeParent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BridgeParent.d.ts","sourceRoot":"","sources":["../src/BridgeParent.ts"],"names":[],"mappings":"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"}