@meshconnect/uwc-bridge-parent 0.0.2
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 +58 -0
- package/dist/BridgeParent.d.ts.map +1 -0
- package/dist/BridgeParent.js +127 -0
- package/dist/BridgeParent.js.map +1 -0
- package/dist/bridge-parent.d.ts +27 -0
- package/dist/bridge-parent.d.ts.map +1 -0
- package/dist/bridge-parent.js +148 -0
- package/dist/bridge-parent.js.map +1 -0
- package/dist/comlink-bridge.d.ts +26 -0
- package/dist/comlink-bridge.d.ts.map +1 -0
- package/dist/comlink-bridge.js +126 -0
- package/dist/comlink-bridge.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/postmate-bridge.d.ts +37 -0
- package/dist/postmate-bridge.d.ts.map +1 -0
- package/dist/postmate-bridge.js +631 -0
- package/dist/postmate-bridge.js.map +1 -0
- package/dist/standard-wallet-adapter.d.ts +17 -0
- package/dist/standard-wallet-adapter.d.ts.map +1 -0
- package/dist/standard-wallet-adapter.js +53 -0
- package/dist/standard-wallet-adapter.js.map +1 -0
- package/dist/types.d.ts +30 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/wallet-bridge-parent.d.ts +41 -0
- package/dist/wallet-bridge-parent.d.ts.map +1 -0
- package/dist/wallet-bridge-parent.js +224 -0
- package/dist/wallet-bridge-parent.js.map +1 -0
- package/dist/wallet-bridge.d.ts +38 -0
- package/dist/wallet-bridge.d.ts.map +1 -0
- package/dist/wallet-bridge.js +71 -0
- package/dist/wallet-bridge.js.map +1 -0
- package/package.json +36 -0
- package/src/BridgeParent.ts +216 -0
- package/src/index.ts +2 -0
|
@@ -0,0 +1,631 @@
|
|
|
1
|
+
import { BridgeParent } from './bridge-parent';
|
|
2
|
+
export class PostmateBridge {
|
|
3
|
+
bridgeParent;
|
|
4
|
+
iframe = null;
|
|
5
|
+
messageHandlers = new Map();
|
|
6
|
+
pendingRequests = new Map();
|
|
7
|
+
handshakeComplete = false;
|
|
8
|
+
constructor(bridgeParent) {
|
|
9
|
+
this.bridgeParent = bridgeParent;
|
|
10
|
+
this.setupMessageHandlers();
|
|
11
|
+
}
|
|
12
|
+
setupMessageHandlers() {
|
|
13
|
+
// Set up the handlers for methods that can be called from child
|
|
14
|
+
this.messageHandlers.set('getWallets', () => this.getWalletsMetadata());
|
|
15
|
+
this.messageHandlers.set('rpc', (request) => this.handleRPC(request));
|
|
16
|
+
this.messageHandlers.set('getProperty', (request) => this.handleGetProperty(request));
|
|
17
|
+
this.messageHandlers.set('refreshDetection', () => {
|
|
18
|
+
this.bridgeParent.refreshDetection();
|
|
19
|
+
return this.getWalletsMetadata();
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async initializeWithIframe(iframe) {
|
|
23
|
+
this.iframe = iframe;
|
|
24
|
+
// Listen for messages from the iframe
|
|
25
|
+
window.addEventListener('message', this.handleMessage.bind(this));
|
|
26
|
+
// Send handshake multiple times to ensure iframe receives it
|
|
27
|
+
let attempts = 0;
|
|
28
|
+
const sendHandshakeWithRetry = () => {
|
|
29
|
+
if (attempts < 10 && !this.handshakeComplete) {
|
|
30
|
+
this.sendHandshake();
|
|
31
|
+
attempts++;
|
|
32
|
+
setTimeout(sendHandshakeWithRetry, 500);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
// Start sending handshakes after a short delay
|
|
36
|
+
setTimeout(sendHandshakeWithRetry, 100);
|
|
37
|
+
console.log('PostmateBridge initialized with existing iframe');
|
|
38
|
+
}
|
|
39
|
+
sendHandshake() {
|
|
40
|
+
if (!this.iframe?.contentWindow) {
|
|
41
|
+
console.error('PostmateBridge: No iframe contentWindow available');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
console.log('PostmateBridge: Sending handshake to child iframe');
|
|
45
|
+
// Send handshake message to establish connection
|
|
46
|
+
this.iframe.contentWindow.postMessage({
|
|
47
|
+
type: 'postmate-handshake',
|
|
48
|
+
methods: Array.from(this.messageHandlers.keys())
|
|
49
|
+
}, '*');
|
|
50
|
+
}
|
|
51
|
+
async handleMessage(event) {
|
|
52
|
+
// Only handle messages from iframes (not from same window)
|
|
53
|
+
if (event.source === window) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const message = event.data;
|
|
57
|
+
console.log('[PostmateBridge] Received message:', message.type, message.method);
|
|
58
|
+
if (message.type === 'call') {
|
|
59
|
+
// Mark handshake complete when we receive first call from child
|
|
60
|
+
if (!this.handshakeComplete) {
|
|
61
|
+
this.handshakeComplete = true;
|
|
62
|
+
}
|
|
63
|
+
// Handle method call from child
|
|
64
|
+
const handler = this.messageHandlers.get(message.method);
|
|
65
|
+
console.log('[PostmateBridge] Handler found:', !!handler, 'for method:', message.method);
|
|
66
|
+
if (handler) {
|
|
67
|
+
try {
|
|
68
|
+
const result = await handler(message.args?.[0]);
|
|
69
|
+
console.log('[PostmateBridge] Handler result:', result);
|
|
70
|
+
// For RPC calls, the handler returns {id, result} or {id, error}
|
|
71
|
+
// We need to handle this specially
|
|
72
|
+
if (message.method === 'rpc') {
|
|
73
|
+
// Ensure result is an object (should always be for RPC)
|
|
74
|
+
if (!result || typeof result !== 'object') {
|
|
75
|
+
// If somehow the RPC didn't return a proper response, send empty result
|
|
76
|
+
;
|
|
77
|
+
event.source?.postMessage({
|
|
78
|
+
id: message.id,
|
|
79
|
+
type: 'response',
|
|
80
|
+
result: { id: message.id, result: undefined }
|
|
81
|
+
}, event.origin);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (result.error) {
|
|
85
|
+
// Send error response back to the source
|
|
86
|
+
;
|
|
87
|
+
event.source?.postMessage({
|
|
88
|
+
id: message.id,
|
|
89
|
+
type: 'response',
|
|
90
|
+
error: result.error.message || 'RPC error'
|
|
91
|
+
}, event.origin);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
// Send the RPC result back to the source
|
|
96
|
+
// The result object has {id, result} - we send the full object
|
|
97
|
+
;
|
|
98
|
+
event.source?.postMessage({
|
|
99
|
+
id: message.id,
|
|
100
|
+
type: 'response',
|
|
101
|
+
result: result // This is the full RPCResponse
|
|
102
|
+
}, event.origin);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// For non-RPC calls, send result as-is back to the source
|
|
107
|
+
try {
|
|
108
|
+
// Deep clean the result before sending
|
|
109
|
+
const cleanedResult = JSON.parse(JSON.stringify(result, (_key, value) => {
|
|
110
|
+
if (typeof value === 'function')
|
|
111
|
+
return undefined;
|
|
112
|
+
if (typeof value === 'symbol')
|
|
113
|
+
return undefined;
|
|
114
|
+
// Check for function-like objects
|
|
115
|
+
if (value && typeof value === 'object') {
|
|
116
|
+
try {
|
|
117
|
+
const str = String(value);
|
|
118
|
+
if (str.includes('=>') || str.startsWith('function')) {
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
// Ignore
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return value;
|
|
127
|
+
}));
|
|
128
|
+
event.source?.postMessage({
|
|
129
|
+
id: message.id,
|
|
130
|
+
type: 'response',
|
|
131
|
+
result: cleanedResult
|
|
132
|
+
}, event.origin);
|
|
133
|
+
}
|
|
134
|
+
catch (cloneError) {
|
|
135
|
+
// If we can't clone the result, log the error
|
|
136
|
+
console.error('Failed to send result:', cloneError);
|
|
137
|
+
console.log('Problematic result:', result);
|
|
138
|
+
event.source?.postMessage({
|
|
139
|
+
id: message.id,
|
|
140
|
+
type: 'response',
|
|
141
|
+
error: `Failed to serialize response: ${cloneError.message}`
|
|
142
|
+
}, event.origin);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
// Send error response back to the source
|
|
147
|
+
;
|
|
148
|
+
event.source?.postMessage({
|
|
149
|
+
id: message.id,
|
|
150
|
+
type: 'response',
|
|
151
|
+
error: error.message || 'Unknown error'
|
|
152
|
+
}, event.origin);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else if (message.type === 'response') {
|
|
157
|
+
// Handle response from child (if we ever call child methods)
|
|
158
|
+
const resolver = this.pendingRequests.get(message.id);
|
|
159
|
+
if (resolver) {
|
|
160
|
+
resolver(message);
|
|
161
|
+
this.pendingRequests.delete(message.id);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Commenting out as it's no longer needed with simplified approach
|
|
166
|
+
/*
|
|
167
|
+
private getAvailableMembers(obj: any): {
|
|
168
|
+
functions: string[]
|
|
169
|
+
properties: string[]
|
|
170
|
+
} {
|
|
171
|
+
const functions = new Set<string>()
|
|
172
|
+
const properties = new Set<string>()
|
|
173
|
+
|
|
174
|
+
// Get own properties safely using property descriptors
|
|
175
|
+
Object.getOwnPropertyNames(obj).forEach(prop => {
|
|
176
|
+
try {
|
|
177
|
+
if (prop === 'constructor') return
|
|
178
|
+
|
|
179
|
+
const descriptor = Object.getOwnPropertyDescriptor(obj, prop)
|
|
180
|
+
if (descriptor) {
|
|
181
|
+
// Check if it's a direct function property
|
|
182
|
+
if (typeof descriptor.value === 'function') {
|
|
183
|
+
functions.add(prop)
|
|
184
|
+
}
|
|
185
|
+
// If it's not a function, it's a property
|
|
186
|
+
else if (descriptor.value !== undefined) {
|
|
187
|
+
properties.add(prop)
|
|
188
|
+
}
|
|
189
|
+
// Handle getters - check if the getter returns a function
|
|
190
|
+
else if (descriptor.get) {
|
|
191
|
+
try {
|
|
192
|
+
const value = obj[prop]
|
|
193
|
+
// Only add as property if it doesn't return a function
|
|
194
|
+
if (typeof value !== 'function') {
|
|
195
|
+
properties.add(prop)
|
|
196
|
+
} else {
|
|
197
|
+
// If getter returns a function, add it to functions
|
|
198
|
+
functions.add(prop)
|
|
199
|
+
}
|
|
200
|
+
} catch {
|
|
201
|
+
// If we can't access it, skip it
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
} catch {
|
|
206
|
+
// Ignore any errors
|
|
207
|
+
}
|
|
208
|
+
})
|
|
209
|
+
|
|
210
|
+
// Get prototype methods and properties safely
|
|
211
|
+
let proto = Object.getPrototypeOf(obj)
|
|
212
|
+
while (proto && proto !== Object.prototype) {
|
|
213
|
+
Object.getOwnPropertyNames(proto).forEach(prop => {
|
|
214
|
+
try {
|
|
215
|
+
if (prop === 'constructor') return
|
|
216
|
+
|
|
217
|
+
const descriptor = Object.getOwnPropertyDescriptor(proto, prop)
|
|
218
|
+
if (descriptor) {
|
|
219
|
+
if (typeof descriptor.value === 'function') {
|
|
220
|
+
functions.add(prop)
|
|
221
|
+
} else if (descriptor.get || descriptor.set) {
|
|
222
|
+
// This is a getter/setter property - check what it returns
|
|
223
|
+
try {
|
|
224
|
+
const value = obj[prop]
|
|
225
|
+
if (typeof value !== 'function') {
|
|
226
|
+
properties.add(prop)
|
|
227
|
+
} else {
|
|
228
|
+
functions.add(prop)
|
|
229
|
+
}
|
|
230
|
+
} catch {
|
|
231
|
+
// If we can't access it, skip it
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
} catch {
|
|
236
|
+
// Ignore any errors
|
|
237
|
+
}
|
|
238
|
+
})
|
|
239
|
+
proto = Object.getPrototypeOf(proto)
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
return {
|
|
243
|
+
functions: Array.from(functions).sort(),
|
|
244
|
+
properties: Array.from(properties).sort()
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
*/
|
|
248
|
+
getWalletsMetadata() {
|
|
249
|
+
const metadata = {
|
|
250
|
+
eip6963: [],
|
|
251
|
+
walletStandard: [],
|
|
252
|
+
adapters: []
|
|
253
|
+
};
|
|
254
|
+
// Helper function to deep clean property values
|
|
255
|
+
const cleanPropertyValues = (values) => {
|
|
256
|
+
if (!values)
|
|
257
|
+
return {};
|
|
258
|
+
// Remove known problematic properties
|
|
259
|
+
const cleaned = { ...values };
|
|
260
|
+
delete cleaned.rpcEngine;
|
|
261
|
+
delete cleaned._rpcEngine;
|
|
262
|
+
delete cleaned.features;
|
|
263
|
+
try {
|
|
264
|
+
// Try to stringify and parse to ensure it's serializable
|
|
265
|
+
return JSON.parse(JSON.stringify(cleaned, (_key, value) => {
|
|
266
|
+
// Skip functions completely
|
|
267
|
+
if (typeof value === 'function') {
|
|
268
|
+
return undefined;
|
|
269
|
+
}
|
|
270
|
+
// Check if value has a toString that looks like a function
|
|
271
|
+
if (value && typeof value === 'object') {
|
|
272
|
+
const stringified = String(value);
|
|
273
|
+
if (stringified.includes('=>') ||
|
|
274
|
+
stringified.startsWith('function')) {
|
|
275
|
+
return undefined;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return value;
|
|
279
|
+
}));
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
// If that fails, do manual cleaning
|
|
283
|
+
const cleaned = {};
|
|
284
|
+
for (const key in values) {
|
|
285
|
+
const value = values[key];
|
|
286
|
+
// Skip functions and undefined values
|
|
287
|
+
if (typeof value !== 'function' && value !== undefined) {
|
|
288
|
+
// Additional check for function-like strings
|
|
289
|
+
const stringified = String(value);
|
|
290
|
+
if (!stringified.includes('=>') &&
|
|
291
|
+
!stringified.startsWith('function')) {
|
|
292
|
+
cleaned[key] = value;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return cleaned;
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
// Get EIP-6963 wallets with new structure - SIMPLIFIED
|
|
300
|
+
this.bridgeParent.getDetectedEip6963Wallets().forEach((wallet, uuid) => {
|
|
301
|
+
// Only expose essential EIP6963 provider methods
|
|
302
|
+
const essentialFunctions = ['request', 'on', 'removeListener'];
|
|
303
|
+
const availableFunctions = essentialFunctions.filter(fn => typeof wallet.provider[fn] === 'function');
|
|
304
|
+
// No properties needed for EIP6963 providers
|
|
305
|
+
const availableProperties = [];
|
|
306
|
+
const propertyValues = {};
|
|
307
|
+
// Create the wallet entry
|
|
308
|
+
const walletEntry = {
|
|
309
|
+
uuid,
|
|
310
|
+
info: wallet.info,
|
|
311
|
+
availableFunctions,
|
|
312
|
+
availableProperties,
|
|
313
|
+
propertyValues
|
|
314
|
+
};
|
|
315
|
+
// Verify it's serializable before adding
|
|
316
|
+
try {
|
|
317
|
+
JSON.parse(JSON.stringify(walletEntry));
|
|
318
|
+
metadata.eip6963.push(walletEntry);
|
|
319
|
+
}
|
|
320
|
+
catch (e) {
|
|
321
|
+
console.warn(`Skipping wallet ${wallet.info.name} - not serializable`);
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
// Get Wallet Standard wallets with new structure - SIMPLIFIED
|
|
325
|
+
this.bridgeParent.getDetectedWalletStandardWallets().forEach(detected => {
|
|
326
|
+
const { wallet, adapter } = detected;
|
|
327
|
+
// Get adapter members and property values - SIMPLIFIED
|
|
328
|
+
const adapterData = (() => {
|
|
329
|
+
try {
|
|
330
|
+
const solanaAdapter = adapter.getSolanaAdapter();
|
|
331
|
+
const targetAdapter = adapter.isSolana && solanaAdapter ? solanaAdapter : adapter;
|
|
332
|
+
// Only expose essential adapter methods and properties
|
|
333
|
+
const essentialFunctions = [
|
|
334
|
+
'connect',
|
|
335
|
+
'signMessage',
|
|
336
|
+
'sendTransaction'
|
|
337
|
+
];
|
|
338
|
+
const essentialProperties = ['name', 'publicKey'];
|
|
339
|
+
const availableFunctions = essentialFunctions.filter(fn => typeof targetAdapter[fn] === 'function');
|
|
340
|
+
const availableProperties = essentialProperties.filter(prop => {
|
|
341
|
+
try {
|
|
342
|
+
return targetAdapter[prop] !== undefined;
|
|
343
|
+
}
|
|
344
|
+
catch {
|
|
345
|
+
return false;
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
// Get property values for essential properties only
|
|
349
|
+
const propertyValues = {};
|
|
350
|
+
essentialProperties.forEach(prop => {
|
|
351
|
+
try {
|
|
352
|
+
const value = targetAdapter[prop];
|
|
353
|
+
if (value !== undefined && typeof value !== 'function') {
|
|
354
|
+
const serialized = this.serializeResult(value);
|
|
355
|
+
if (serialized !== undefined) {
|
|
356
|
+
propertyValues[prop] = serialized;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
catch {
|
|
361
|
+
// Skip properties that can't be accessed or serialized
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
return {
|
|
365
|
+
functions: availableFunctions,
|
|
366
|
+
properties: availableProperties,
|
|
367
|
+
propertyValues
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
catch {
|
|
371
|
+
// If getting members fails, return empty arrays
|
|
372
|
+
return { functions: [], properties: [], propertyValues: {} };
|
|
373
|
+
}
|
|
374
|
+
})();
|
|
375
|
+
const walletStandardEntry = {
|
|
376
|
+
name: wallet.name,
|
|
377
|
+
icon: typeof wallet.icon === 'string'
|
|
378
|
+
? wallet.icon
|
|
379
|
+
: wallet.icon?.light || '',
|
|
380
|
+
version: wallet.version,
|
|
381
|
+
chains: wallet.chains,
|
|
382
|
+
features: Object.keys(wallet.features),
|
|
383
|
+
availableFunctions: [], // Simplified - no wallet functions needed
|
|
384
|
+
availableProperties: [], // Simplified - no wallet properties needed
|
|
385
|
+
propertyValues: {},
|
|
386
|
+
adapter: {
|
|
387
|
+
name: adapter.name,
|
|
388
|
+
icon: adapter.icon,
|
|
389
|
+
version: adapter.version,
|
|
390
|
+
chains: adapter.chains,
|
|
391
|
+
isSolana: adapter.isSolana,
|
|
392
|
+
connected: adapter.connected,
|
|
393
|
+
features: adapter.getFeatures(),
|
|
394
|
+
availableFunctions: adapterData.functions,
|
|
395
|
+
availableProperties: adapterData.properties,
|
|
396
|
+
propertyValues: cleanPropertyValues(adapterData.propertyValues)
|
|
397
|
+
}
|
|
398
|
+
};
|
|
399
|
+
// Verify it's serializable before adding
|
|
400
|
+
try {
|
|
401
|
+
JSON.parse(JSON.stringify(walletStandardEntry));
|
|
402
|
+
metadata.walletStandard.push(walletStandardEntry);
|
|
403
|
+
}
|
|
404
|
+
catch (e) {
|
|
405
|
+
console.warn(`Skipping wallet standard ${wallet.name} - not serializable`, e);
|
|
406
|
+
}
|
|
407
|
+
});
|
|
408
|
+
// Final check - try to serialize the entire object
|
|
409
|
+
try {
|
|
410
|
+
JSON.parse(JSON.stringify(metadata));
|
|
411
|
+
}
|
|
412
|
+
catch (e) {
|
|
413
|
+
console.error('Metadata not fully serializable, applying deep clean:', e);
|
|
414
|
+
// If still not serializable, do a deep clean
|
|
415
|
+
const cleanMetadata = JSON.parse(JSON.stringify(metadata, (_key, value) => {
|
|
416
|
+
if (typeof value === 'function')
|
|
417
|
+
return undefined;
|
|
418
|
+
if (typeof value === 'symbol')
|
|
419
|
+
return undefined;
|
|
420
|
+
return value;
|
|
421
|
+
}));
|
|
422
|
+
return cleanMetadata;
|
|
423
|
+
}
|
|
424
|
+
return metadata;
|
|
425
|
+
}
|
|
426
|
+
async handleGetProperty(request) {
|
|
427
|
+
try {
|
|
428
|
+
const { target, property } = request;
|
|
429
|
+
let targetObject;
|
|
430
|
+
// Get the target object based on type
|
|
431
|
+
switch (target.type) {
|
|
432
|
+
case 'eip6963': {
|
|
433
|
+
const eip6963Wallet = this.bridgeParent
|
|
434
|
+
.getDetectedEip6963Wallets()
|
|
435
|
+
.get(target.identifier);
|
|
436
|
+
if (!eip6963Wallet) {
|
|
437
|
+
throw new Error(`EIP-6963 provider not found: ${target.identifier}`);
|
|
438
|
+
}
|
|
439
|
+
targetObject = eip6963Wallet.provider;
|
|
440
|
+
break;
|
|
441
|
+
}
|
|
442
|
+
case 'wallet-standard': {
|
|
443
|
+
const walletStandardWallet = this.bridgeParent
|
|
444
|
+
.getDetectedWalletStandardWallets()
|
|
445
|
+
.get(target.identifier);
|
|
446
|
+
if (!walletStandardWallet) {
|
|
447
|
+
throw new Error(`Wallet Standard wallet not found: ${target.identifier}`);
|
|
448
|
+
}
|
|
449
|
+
targetObject = walletStandardWallet.wallet;
|
|
450
|
+
break;
|
|
451
|
+
}
|
|
452
|
+
case 'adapter': {
|
|
453
|
+
const walletWithAdapter = this.bridgeParent
|
|
454
|
+
.getDetectedWalletStandardWallets()
|
|
455
|
+
.get(target.identifier);
|
|
456
|
+
if (!walletWithAdapter) {
|
|
457
|
+
throw new Error(`Adapter not found: ${target.identifier}`);
|
|
458
|
+
}
|
|
459
|
+
const standardAdapter = walletWithAdapter.adapter;
|
|
460
|
+
const solanaAdapter = standardAdapter.getSolanaAdapter();
|
|
461
|
+
targetObject = solanaAdapter || standardAdapter;
|
|
462
|
+
break;
|
|
463
|
+
}
|
|
464
|
+
default:
|
|
465
|
+
throw new Error(`Unknown target type: ${target.type}`);
|
|
466
|
+
}
|
|
467
|
+
// Get the property value
|
|
468
|
+
const value = targetObject[property];
|
|
469
|
+
// Serialize the value (handle non-serializable objects)
|
|
470
|
+
return this.serializeResult(value);
|
|
471
|
+
}
|
|
472
|
+
catch (error) {
|
|
473
|
+
return {
|
|
474
|
+
error: {
|
|
475
|
+
code: -32603,
|
|
476
|
+
message: error.message || 'Internal error',
|
|
477
|
+
data: error.stack
|
|
478
|
+
}
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
async handleRPC(request) {
|
|
483
|
+
try {
|
|
484
|
+
const { id, method, params = [], target } = request;
|
|
485
|
+
if (!target) {
|
|
486
|
+
throw new Error('Target not specified in RPC request');
|
|
487
|
+
}
|
|
488
|
+
let targetObject;
|
|
489
|
+
// Get the target object based on type
|
|
490
|
+
switch (target.type) {
|
|
491
|
+
case 'eip6963': {
|
|
492
|
+
const eip6963Wallet = this.bridgeParent
|
|
493
|
+
.getDetectedEip6963Wallets()
|
|
494
|
+
.get(target.identifier);
|
|
495
|
+
if (!eip6963Wallet) {
|
|
496
|
+
throw new Error(`EIP-6963 provider not found: ${target.identifier}`);
|
|
497
|
+
}
|
|
498
|
+
targetObject = eip6963Wallet.provider;
|
|
499
|
+
break;
|
|
500
|
+
}
|
|
501
|
+
case 'wallet-standard': {
|
|
502
|
+
const walletStandardWallet = this.bridgeParent
|
|
503
|
+
.getDetectedWalletStandardWallets()
|
|
504
|
+
.get(target.identifier);
|
|
505
|
+
if (!walletStandardWallet) {
|
|
506
|
+
throw new Error(`Wallet Standard wallet not found: ${target.identifier}`);
|
|
507
|
+
}
|
|
508
|
+
targetObject = walletStandardWallet.wallet;
|
|
509
|
+
break;
|
|
510
|
+
}
|
|
511
|
+
case 'adapter': {
|
|
512
|
+
const walletWithAdapter = this.bridgeParent
|
|
513
|
+
.getDetectedWalletStandardWallets()
|
|
514
|
+
.get(target.identifier);
|
|
515
|
+
if (!walletWithAdapter) {
|
|
516
|
+
throw new Error(`Adapter not found: ${target.identifier}`);
|
|
517
|
+
}
|
|
518
|
+
// Get the underlying Solana adapter if available
|
|
519
|
+
const standardAdapter = walletWithAdapter.adapter;
|
|
520
|
+
const solanaAdapter = standardAdapter.getSolanaAdapter();
|
|
521
|
+
// If trying to call a Solana-specific method without a Solana adapter
|
|
522
|
+
if (!solanaAdapter &&
|
|
523
|
+
['connect', 'disconnect', 'sendTransaction'].includes(method)) {
|
|
524
|
+
throw new Error(`Method '${method}' requires a Solana wallet adapter`);
|
|
525
|
+
}
|
|
526
|
+
targetObject = solanaAdapter || standardAdapter;
|
|
527
|
+
break;
|
|
528
|
+
}
|
|
529
|
+
default:
|
|
530
|
+
throw new Error(`Unknown target type: ${target.type}`);
|
|
531
|
+
}
|
|
532
|
+
// Check if the method exists
|
|
533
|
+
if (!targetObject[method] || typeof targetObject[method] !== 'function') {
|
|
534
|
+
throw new Error(`Method not found: ${method}`);
|
|
535
|
+
}
|
|
536
|
+
// Call the method
|
|
537
|
+
const result = await targetObject[method](...params);
|
|
538
|
+
// Serialize the result (handle non-serializable objects)
|
|
539
|
+
const serializedResult = this.serializeResult(result);
|
|
540
|
+
return {
|
|
541
|
+
id,
|
|
542
|
+
result: serializedResult
|
|
543
|
+
};
|
|
544
|
+
}
|
|
545
|
+
catch (error) {
|
|
546
|
+
return {
|
|
547
|
+
id: request.id,
|
|
548
|
+
error: {
|
|
549
|
+
code: -32603,
|
|
550
|
+
message: error.message || 'Internal error',
|
|
551
|
+
data: error.stack
|
|
552
|
+
}
|
|
553
|
+
};
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
serializeResult(result) {
|
|
557
|
+
// Handle common non-serializable objects
|
|
558
|
+
if (result === null || result === undefined) {
|
|
559
|
+
return result;
|
|
560
|
+
}
|
|
561
|
+
// Skip functions entirely
|
|
562
|
+
if (typeof result === 'function') {
|
|
563
|
+
return undefined;
|
|
564
|
+
}
|
|
565
|
+
// Handle PublicKey objects (Solana)
|
|
566
|
+
if (result &&
|
|
567
|
+
typeof result === 'object' &&
|
|
568
|
+
result.constructor &&
|
|
569
|
+
result.constructor.name === 'PublicKey') {
|
|
570
|
+
return {
|
|
571
|
+
_type: 'PublicKey',
|
|
572
|
+
value: result.toString()
|
|
573
|
+
};
|
|
574
|
+
}
|
|
575
|
+
// Handle BN (BigNumber) objects
|
|
576
|
+
if (result &&
|
|
577
|
+
typeof result === 'object' &&
|
|
578
|
+
result._bn &&
|
|
579
|
+
typeof result.toString === 'function') {
|
|
580
|
+
return {
|
|
581
|
+
_type: 'PublicKey',
|
|
582
|
+
value: result.toString()
|
|
583
|
+
};
|
|
584
|
+
}
|
|
585
|
+
// Handle objects with toBase58 method (another Solana PublicKey pattern)
|
|
586
|
+
if (result &&
|
|
587
|
+
typeof result === 'object' &&
|
|
588
|
+
typeof result.toBase58 === 'function') {
|
|
589
|
+
return {
|
|
590
|
+
_type: 'PublicKey',
|
|
591
|
+
value: result.toBase58()
|
|
592
|
+
};
|
|
593
|
+
}
|
|
594
|
+
// Handle Uint8Array
|
|
595
|
+
if (result instanceof Uint8Array) {
|
|
596
|
+
return {
|
|
597
|
+
_type: 'Uint8Array',
|
|
598
|
+
value: Array.from(result)
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
// Handle arrays
|
|
602
|
+
if (Array.isArray(result)) {
|
|
603
|
+
return result.map(item => this.serializeResult(item));
|
|
604
|
+
}
|
|
605
|
+
// Handle objects - but be more careful to avoid circular references
|
|
606
|
+
if (typeof result === 'object') {
|
|
607
|
+
try {
|
|
608
|
+
// Try to convert to JSON first to check if it's serializable
|
|
609
|
+
JSON.stringify(result);
|
|
610
|
+
return result;
|
|
611
|
+
}
|
|
612
|
+
catch {
|
|
613
|
+
// If not directly serializable, try to extract essential properties
|
|
614
|
+
if (typeof result.toString === 'function') {
|
|
615
|
+
return result.toString();
|
|
616
|
+
}
|
|
617
|
+
// Return a placeholder for non-serializable objects
|
|
618
|
+
return '[Non-serializable Object]';
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
return result;
|
|
622
|
+
}
|
|
623
|
+
destroy() {
|
|
624
|
+
if (this.iframe) {
|
|
625
|
+
window.removeEventListener('message', this.handleMessage.bind(this));
|
|
626
|
+
this.iframe = null;
|
|
627
|
+
}
|
|
628
|
+
this.pendingRequests.clear();
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
//# sourceMappingURL=postmate-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postmate-bridge.js","sourceRoot":"","sources":["../src/postmate-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Wallet } from '@wallet-standard/base';
|
|
2
|
+
/**
|
|
3
|
+
* Adapter for Wallet Standard wallets to provide Solana adapter interface
|
|
4
|
+
*/
|
|
5
|
+
export declare class StandardWalletAdapter {
|
|
6
|
+
private wallet;
|
|
7
|
+
constructor(wallet: Wallet);
|
|
8
|
+
/**
|
|
9
|
+
* Check if this is a Solana wallet
|
|
10
|
+
*/
|
|
11
|
+
get isSolana(): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Get Solana adapter if available
|
|
14
|
+
*/
|
|
15
|
+
getSolanaAdapter(): any;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=standard-wallet-adapter.d.ts.map
|