@meshconnect/uwc-bridge-parent 0.0.3 → 1.0.1

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,5 @@
1
- import type { WalletAdapter } from '@solana/wallet-adapter-base';
1
+ import { Transaction } from '@solana/web3.js';
2
+ import { StandardWalletAdapter } from '@solana/wallet-standard-wallet-adapter-base';
2
3
  export interface EthereumProvider {
3
4
  request: (args: {
4
5
  method: string;
@@ -7,12 +8,18 @@ export interface EthereumProvider {
7
8
  on?: (event: string, handler: (...args: any[]) => void) => void;
8
9
  removeListener?: (event: string, handler: (...args: any[]) => void) => void;
9
10
  }
11
+ interface ExtendedStandardWalletAdapter extends StandardWalletAdapter {
12
+ customFunctions: ('sendSerializedTransaction' | 'signSerializedTransaction' | 'signAllSerializedTransactions')[];
13
+ sendSerializedTransaction: (transaction: ArrayBufferLike, rpcUrl: string) => Promise<string>;
14
+ signSerializedTransaction: (transaction: ArrayBufferLike) => Promise<Error | Transaction>;
15
+ signAllSerializedTransactions: (transactions: ArrayBufferLike[]) => Promise<Error | Transaction[]>;
16
+ }
10
17
  export interface WalletStandardInfo {
11
18
  uuid: string;
12
19
  name: string;
13
20
  chains: string[];
14
21
  features: string[];
15
- adapter: WalletAdapter | undefined;
22
+ adapter: ExtendedStandardWalletAdapter | undefined;
16
23
  }
17
24
  export interface EIP6963ProviderInfo {
18
25
  uuid: string;
@@ -58,4 +65,5 @@ export declare class BridgeParent {
58
65
  private generateWalletId;
59
66
  destroy(): void;
60
67
  }
68
+ export {};
61
69
  //# sourceMappingURL=BridgeParent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeParent.d.ts","sourceRoot":"","sources":["../src/BridgeParent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAOhE,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,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,aAAa,GAAG,SAAS,CAAA;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,4BAA6B,SAAQ,WAAW;IAC/D,IAAI,EAAE,0BAA0B,CAAA;IAChC,MAAM,EAAE,qBAAqB,CAAA;CAC9B;AAED,MAAM,WAAW,2BAA4B,SAAQ,KAAK;IACxD,IAAI,EAAE,yBAAyB,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,cAAc,EAAE,CAAA;IAChC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,qBAAqB,EAAE,kBAAkB,EAAE,CAAA;IAC3C,0BAA0B,EAAE,OAAO,CAAA;CACpC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAgC;gBAEpC,MAAM,EAAE,iBAAiB;YASvB,oBAAoB;IA2BlC,WAAW,IAAI,OAAO;YAIR,eAAe;IA2C7B,OAAO,CAAC,gBAAgB;IAyDxB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,gBAAgB;IAKjB,OAAO,IAAI,IAAI;CAYvB"}
1
+ {"version":3,"file":"BridgeParent.d.ts","sourceRoot":"","sources":["../src/BridgeParent.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,WAAW,EAAwB,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAEnF,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,CAClC,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;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,6BAA6B,GAAG,SAAS,CAAA;CACnD;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,4BAA6B,SAAQ,WAAW;IAC/D,IAAI,EAAE,0BAA0B,CAAA;IAChC,MAAM,EAAE,qBAAqB,CAAA;CAC9B;AAED,MAAM,WAAW,2BAA4B,SAAQ,KAAK;IACxD,IAAI,EAAE,yBAAyB,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,cAAc,EAAE,CAAA;IAChC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,qBAAqB,EAAE,kBAAkB,EAAE,CAAA;IAC3C,0BAA0B,EAAE,OAAO,CAAA;CACpC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAgC;gBAEpC,MAAM,EAAE,iBAAiB;YASvB,oBAAoB;IA2BlC,WAAW,IAAI,OAAO;YAIR,eAAe;IA2C7B,OAAO,CAAC,gBAAgB;IAoMxB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,gBAAgB;IAKjB,OAAO,IAAI,IAAI;CAYvB"}
@@ -1,8 +1,8 @@
1
1
  import * as Comlink from 'comlink';
2
2
  import { getWallets } from '@wallet-standard/app';
3
3
  import { isWalletAdapterCompatibleStandardWallet } from '@solana/wallet-adapter-base';
4
+ import { Connection, Transaction, VersionedTransaction } from '@solana/web3.js';
4
5
  import { StandardWalletAdapter } from '@solana/wallet-standard-wallet-adapter-base';
5
- import { CoinbaseWalletAdapter } from '@solana/wallet-adapter-wallets';
6
6
  export class BridgeParent {
7
7
  iframe;
8
8
  handshakeComplete = false;
@@ -86,34 +86,144 @@ export class BridgeParent {
86
86
  name: wallet.name,
87
87
  chains: (wallet.chains || []),
88
88
  features: Object.keys(wallet.features),
89
+ // Expect a TS error, as not all adapter properties are implemented
90
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
91
+ // @ts-ignore
89
92
  adapter: adapter
93
+ ? {
94
+ name: adapter.name,
95
+ url: adapter.url,
96
+ icon: adapter.icon,
97
+ readyState: adapter.readyState,
98
+ publicKey: Comlink.proxy({
99
+ get value() {
100
+ return adapter.publicKey;
101
+ },
102
+ toBase58: async () => {
103
+ return adapter.publicKey?.toBase58();
104
+ },
105
+ toJSON: async () => {
106
+ return adapter.publicKey?.toJSON();
107
+ },
108
+ toBytes: async () => {
109
+ return adapter.publicKey?.toBytes();
110
+ },
111
+ toBuffer: async () => {
112
+ return adapter.publicKey?.toBuffer();
113
+ },
114
+ toString: async () => {
115
+ return adapter.publicKey?.toString();
116
+ }
117
+ }),
118
+ connecting: adapter.connecting,
119
+ connected: adapter.connected,
120
+ supportedTransactionVersions: adapter.supportedTransactionVersions,
121
+ wallet: adapter.wallet,
122
+ standard: adapter.standard,
123
+ destroy: async () => await adapter.destroy(),
124
+ autoConnect: async () => await adapter.autoConnect(),
125
+ connect: async () => await adapter.connect(),
126
+ disconnect: async () => await adapter.disconnect(),
127
+ sendTransaction: async (transaction, connection, options) => await adapter.sendTransaction(transaction, connection, options),
128
+ signTransaction: async (transaction) => {
129
+ return adapter.signTransaction !== undefined
130
+ ? await adapter.signTransaction(transaction)
131
+ : new Error('Adapter does not support signTransaction');
132
+ },
133
+ signAllTransactions: async (transactions) => {
134
+ return adapter.signAllTransactions !== undefined
135
+ ? await adapter.signAllTransactions(transactions)
136
+ : new Error('Adapter does not support signAllTransactions');
137
+ },
138
+ signMessage: async (message) => {
139
+ return adapter.signMessage !== undefined
140
+ ? await adapter.signMessage(message)
141
+ : new Error('Adapter does not support signMessage');
142
+ },
143
+ signIn: async (input) => {
144
+ return adapter.signIn !== undefined
145
+ ? await adapter.signIn(input)
146
+ : new Error('Adapter does not support signIn');
147
+ },
148
+ customFunctions: [
149
+ 'sendSerializedTransaction',
150
+ 'signAllSerializedTransactions',
151
+ 'signSerializedTransaction'
152
+ ],
153
+ sendSerializedTransaction: async (transaction, rpcUrl) => {
154
+ const connection = new Connection(rpcUrl);
155
+ const uint8Array = new Uint8Array(transaction);
156
+ // Try to deserialize as VersionedTransaction first
157
+ let deserializedTx;
158
+ try {
159
+ deserializedTx =
160
+ VersionedTransaction.deserialize(uint8Array);
161
+ }
162
+ catch {
163
+ // If that fails, try as legacy Transaction
164
+ try {
165
+ deserializedTx = Transaction.from(uint8Array);
166
+ }
167
+ catch {
168
+ throw new Error('Failed to deserialize transaction as either versioned or legacy format');
169
+ }
170
+ }
171
+ return await adapter.sendTransaction(deserializedTx, connection);
172
+ },
173
+ signSerializedTransaction: async (transaction) => {
174
+ if (adapter.signTransaction === undefined) {
175
+ return new Error('Adapter does not support signTransaction');
176
+ }
177
+ const uint8Array = new Uint8Array(transaction);
178
+ // Try to deserialize as VersionedTransaction first
179
+ let deserializedTx;
180
+ try {
181
+ deserializedTx =
182
+ VersionedTransaction.deserialize(uint8Array);
183
+ }
184
+ catch {
185
+ // If that fails, try as legacy Transaction
186
+ try {
187
+ deserializedTx = Transaction.from(uint8Array);
188
+ }
189
+ catch {
190
+ return new Error('Failed to deserialize transaction as either versioned or legacy format');
191
+ }
192
+ }
193
+ return await adapter.signTransaction(deserializedTx);
194
+ },
195
+ signAllSerializedTransactions: async (transactions) => {
196
+ if (adapter.signAllTransactions === undefined) {
197
+ return new Error('Adapter does not support signAllTransactions');
198
+ }
199
+ const deserializedTransactions = [];
200
+ for (const transaction of transactions) {
201
+ const uint8Array = new Uint8Array(transaction);
202
+ // Try to deserialize as VersionedTransaction first
203
+ let deserializedTx;
204
+ try {
205
+ deserializedTx =
206
+ VersionedTransaction.deserialize(uint8Array);
207
+ }
208
+ catch {
209
+ // If that fails, try as legacy Transaction
210
+ try {
211
+ deserializedTx = Transaction.from(uint8Array);
212
+ }
213
+ catch {
214
+ return new Error('Failed to deserialize one or more transactions');
215
+ }
216
+ }
217
+ deserializedTransactions.push(deserializedTx);
218
+ }
219
+ return await adapter.signAllTransactions(deserializedTransactions);
220
+ }
221
+ }
222
+ : undefined
90
223
  });
91
224
  walletNames.add(wallet.name);
92
225
  }
93
226
  }
94
- // Initialize traditional wallet adapters - Only import CBW for now, as it's not using Wallet Standard
95
- const walletAdapters = [new CoinbaseWalletAdapter()];
96
- // Add traditional wallet adapters (but skip duplicates)
97
- for (const adapter of walletAdapters) {
98
- if (walletNames.has(adapter.name)) {
99
- // Skipping duplicate wallet already detected via Wallet Standard
100
- continue;
101
- }
102
- const readyState = adapter.readyState;
103
- const isDetected = readyState === 'Installed' || readyState === 'Loadable';
104
- // Only add if installed
105
- if (isDetected) {
106
- solanaWallets.push({
107
- uuid: `${adapter.name}-traditional`
108
- .toLowerCase()
109
- .replace(/\s+/g, '-'),
110
- name: adapter.name,
111
- chains: ['solana:mainnet'],
112
- features: [],
113
- adapter: adapter
114
- });
115
- }
116
- }
117
227
  return solanaWallets;
118
228
  }
119
229
  isSolanaWallet(wallet) {
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeParent.js","sourceRoot":"","sources":["../src/BridgeParent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BridgeParent.js","sourceRoot":"","sources":["../src/BridgeParent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshconnect/uwc-bridge-parent",
3
- "version": "0.0.3",
3
+ "version": "1.0.1",
4
4
  "description": "Parent window bridge for Universal Wallet Connector",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -12,8 +12,8 @@
12
12
  },
13
13
  "dependencies": {
14
14
  "@solana/wallet-adapter-base": "^0.9.23",
15
- "@solana/wallet-adapter-wallets": "^0.19.37",
16
15
  "@solana/wallet-standard-wallet-adapter-base": "^1.1.4",
16
+ "@solana/web3.js": "^1.98.4",
17
17
  "@wallet-standard/app": "^1.1.0",
18
18
  "@wallet-standard/base": "^1.1.0",
19
19
  "comlink": "^4.4.1"
@@ -1,10 +1,9 @@
1
1
  import * as Comlink from 'comlink'
2
- import type { WalletAdapter } from '@solana/wallet-adapter-base'
3
2
  import type { Wallet } from '@wallet-standard/base'
4
3
  import { getWallets } from '@wallet-standard/app'
5
4
  import { isWalletAdapterCompatibleStandardWallet } from '@solana/wallet-adapter-base'
5
+ import { Connection, Transaction, VersionedTransaction } from '@solana/web3.js'
6
6
  import { StandardWalletAdapter } from '@solana/wallet-standard-wallet-adapter-base'
7
- import { CoinbaseWalletAdapter } from '@solana/wallet-adapter-wallets'
8
7
 
9
8
  export interface EthereumProvider {
10
9
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -15,12 +14,30 @@ export interface EthereumProvider {
15
14
  removeListener?: (event: string, handler: (...args: any[]) => void) => void
16
15
  }
17
16
 
17
+ interface ExtendedStandardWalletAdapter extends StandardWalletAdapter {
18
+ customFunctions: (
19
+ | 'sendSerializedTransaction'
20
+ | 'signSerializedTransaction'
21
+ | 'signAllSerializedTransactions'
22
+ )[]
23
+ sendSerializedTransaction: (
24
+ transaction: ArrayBufferLike,
25
+ rpcUrl: string
26
+ ) => Promise<string>
27
+ signSerializedTransaction: (
28
+ transaction: ArrayBufferLike
29
+ ) => Promise<Error | Transaction>
30
+ signAllSerializedTransactions: (
31
+ transactions: ArrayBufferLike[]
32
+ ) => Promise<Error | Transaction[]>
33
+ }
34
+
18
35
  export interface WalletStandardInfo {
19
36
  uuid: string
20
37
  name: string
21
38
  chains: string[]
22
39
  features: string[]
23
- adapter: WalletAdapter | undefined
40
+ adapter: ExtendedStandardWalletAdapter | undefined
24
41
  }
25
42
 
26
43
  export interface EIP6963ProviderInfo {
@@ -170,38 +187,177 @@ export class BridgeParent {
170
187
  name: wallet.name,
171
188
  chains: (wallet.chains || []) as string[],
172
189
  features: Object.keys(wallet.features),
190
+ // Expect a TS error, as not all adapter properties are implemented
191
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
192
+ // @ts-ignore
173
193
  adapter: adapter
194
+ ? {
195
+ name: adapter.name,
196
+ url: adapter.url,
197
+ icon: adapter.icon,
198
+ readyState: adapter.readyState,
199
+ publicKey: Comlink.proxy({
200
+ get value() {
201
+ return adapter.publicKey
202
+ },
203
+ toBase58: async () => {
204
+ return adapter.publicKey?.toBase58()
205
+ },
206
+ toJSON: async () => {
207
+ return adapter.publicKey?.toJSON()
208
+ },
209
+ toBytes: async () => {
210
+ return adapter.publicKey?.toBytes()
211
+ },
212
+ toBuffer: async () => {
213
+ return adapter.publicKey?.toBuffer()
214
+ },
215
+ toString: async () => {
216
+ return adapter.publicKey?.toString()
217
+ }
218
+ }),
219
+ connecting: adapter.connecting,
220
+ connected: adapter.connected,
221
+ supportedTransactionVersions:
222
+ adapter.supportedTransactionVersions,
223
+ wallet: adapter.wallet,
224
+ standard: adapter.standard,
225
+ destroy: async () => await adapter.destroy(),
226
+ autoConnect: async () => await adapter.autoConnect(),
227
+ connect: async () => await adapter.connect(),
228
+ disconnect: async () => await adapter.disconnect(),
229
+ sendTransaction: async (transaction, connection, options) =>
230
+ await adapter.sendTransaction(
231
+ transaction,
232
+ connection,
233
+ options
234
+ ),
235
+ signTransaction: async transaction => {
236
+ return adapter.signTransaction !== undefined
237
+ ? await adapter.signTransaction(transaction)
238
+ : new Error('Adapter does not support signTransaction')
239
+ },
240
+ signAllTransactions: async transactions => {
241
+ return adapter.signAllTransactions !== undefined
242
+ ? await adapter.signAllTransactions(transactions)
243
+ : new Error('Adapter does not support signAllTransactions')
244
+ },
245
+ signMessage: async message => {
246
+ return adapter.signMessage !== undefined
247
+ ? await adapter.signMessage(message)
248
+ : new Error('Adapter does not support signMessage')
249
+ },
250
+ signIn: async input => {
251
+ return adapter.signIn !== undefined
252
+ ? await adapter.signIn(input)
253
+ : new Error('Adapter does not support signIn')
254
+ },
255
+ customFunctions: [
256
+ 'sendSerializedTransaction',
257
+ 'signAllSerializedTransactions',
258
+ 'signSerializedTransaction'
259
+ ],
260
+ sendSerializedTransaction: async (
261
+ transaction: ArrayBufferLike,
262
+ rpcUrl: string
263
+ ) => {
264
+ const connection = new Connection(rpcUrl)
265
+ const uint8Array = new Uint8Array(transaction)
266
+
267
+ // Try to deserialize as VersionedTransaction first
268
+ let deserializedTx: Transaction | VersionedTransaction
269
+ try {
270
+ deserializedTx =
271
+ VersionedTransaction.deserialize(uint8Array)
272
+ } catch {
273
+ // If that fails, try as legacy Transaction
274
+ try {
275
+ deserializedTx = Transaction.from(uint8Array)
276
+ } catch {
277
+ throw new Error(
278
+ 'Failed to deserialize transaction as either versioned or legacy format'
279
+ )
280
+ }
281
+ }
282
+
283
+ return await adapter.sendTransaction(
284
+ deserializedTx,
285
+ connection
286
+ )
287
+ },
288
+ signSerializedTransaction: async (
289
+ transaction: ArrayBufferLike
290
+ ) => {
291
+ if (adapter.signTransaction === undefined) {
292
+ return new Error('Adapter does not support signTransaction')
293
+ }
294
+
295
+ const uint8Array = new Uint8Array(transaction)
296
+
297
+ // Try to deserialize as VersionedTransaction first
298
+ let deserializedTx: Transaction | VersionedTransaction
299
+ try {
300
+ deserializedTx =
301
+ VersionedTransaction.deserialize(uint8Array)
302
+ } catch {
303
+ // If that fails, try as legacy Transaction
304
+ try {
305
+ deserializedTx = Transaction.from(uint8Array)
306
+ } catch {
307
+ return new Error(
308
+ 'Failed to deserialize transaction as either versioned or legacy format'
309
+ )
310
+ }
311
+ }
312
+
313
+ return await adapter.signTransaction(deserializedTx)
314
+ },
315
+ signAllSerializedTransactions: async (
316
+ transactions: ArrayBufferLike[]
317
+ ) => {
318
+ if (adapter.signAllTransactions === undefined) {
319
+ return new Error(
320
+ 'Adapter does not support signAllTransactions'
321
+ )
322
+ }
323
+
324
+ const deserializedTransactions: (
325
+ | Transaction
326
+ | VersionedTransaction
327
+ )[] = []
328
+
329
+ for (const transaction of transactions) {
330
+ const uint8Array = new Uint8Array(transaction)
331
+
332
+ // Try to deserialize as VersionedTransaction first
333
+ let deserializedTx: Transaction | VersionedTransaction
334
+ try {
335
+ deserializedTx =
336
+ VersionedTransaction.deserialize(uint8Array)
337
+ } catch {
338
+ // If that fails, try as legacy Transaction
339
+ try {
340
+ deserializedTx = Transaction.from(uint8Array)
341
+ } catch {
342
+ return new Error(
343
+ 'Failed to deserialize one or more transactions'
344
+ )
345
+ }
346
+ }
347
+
348
+ deserializedTransactions.push(deserializedTx)
349
+ }
350
+
351
+ return await adapter.signAllTransactions(
352
+ deserializedTransactions
353
+ )
354
+ }
355
+ }
356
+ : undefined
174
357
  })
175
358
  walletNames.add(wallet.name)
176
359
  }
177
360
  }
178
-
179
- // Initialize traditional wallet adapters - Only import CBW for now, as it's not using Wallet Standard
180
- const walletAdapters = [new CoinbaseWalletAdapter()]
181
-
182
- // Add traditional wallet adapters (but skip duplicates)
183
- for (const adapter of walletAdapters) {
184
- if (walletNames.has(adapter.name)) {
185
- // Skipping duplicate wallet already detected via Wallet Standard
186
- continue
187
- }
188
-
189
- const readyState = adapter.readyState
190
- const isDetected = readyState === 'Installed' || readyState === 'Loadable'
191
-
192
- // Only add if installed
193
- if (isDetected) {
194
- solanaWallets.push({
195
- uuid: `${adapter.name}-traditional`
196
- .toLowerCase()
197
- .replace(/\s+/g, '-'),
198
- name: adapter.name,
199
- chains: ['solana:mainnet'],
200
- features: [],
201
- adapter: adapter
202
- })
203
- }
204
- }
205
361
  return solanaWallets
206
362
  }
207
363