@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.
- package/dist/BridgeParent.d.ts +155 -0
- package/dist/BridgeParent.d.ts.map +1 -1
- package/dist/BridgeParent.js +468 -7
- package/dist/BridgeParent.js.map +1 -1
- package/dist/BridgeParent.test.js +867 -29
- package/dist/BridgeParent.test.js.map +1 -1
- package/package.json +1 -1
- package/src/BridgeParent.test.ts +1238 -29
- package/src/BridgeParent.ts +666 -9
package/dist/BridgeParent.d.ts
CHANGED
|
@@ -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":"AAOA,OAAO,EAAc,WAAW,EAAwB,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAkCnF,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAEvE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAE/D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;CAC5E;AAED,UAAU,6BAA8B,SAAQ,qBAAqB;IACnE,eAAe,EAAE,CACb,2BAA2B,GAC3B,2BAA2B,GAC3B,+BAA+B,GAC/B,4BAA4B,CAC/B,EAAE,CAAA;IACH,yBAAyB,EAAE,CACzB,WAAW,EAAE,eAAe,EAC5B,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,MAAM,CAAC,CAAA;IACpB,yBAAyB,EAAE,CACzB,WAAW,EAAE,eAAe,KACzB,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,CAAA;IACjC,6BAA6B,EAAE,CAC7B,YAAY,EAAE,eAAe,EAAE,KAC5B,OAAO,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC,CAAA;IACnC,0BAA0B,EAAE,CAC1B,WAAW,EAAE,eAAe,EAC5B,gBAAgB,CAAC,EAAE,MAAM,KACtB,OAAO,CAAC,UAAU,CAAC,CAAA;CACzB;
|
|
1
|
+
{"version":3,"file":"BridgeParent.d.ts","sourceRoot":"","sources":["../src/BridgeParent.ts"],"names":[],"mappings":"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"}
|