@solana/connector 0.1.8 → 0.1.10

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 (58) hide show
  1. package/README.md +97 -0
  2. package/dist/chunk-4JT24DIX.js +466 -0
  3. package/dist/chunk-4JT24DIX.js.map +1 -0
  4. package/dist/chunk-4KD6HQQG.js +69 -0
  5. package/dist/chunk-4KD6HQQG.js.map +1 -0
  6. package/dist/{chunk-DSUCH44G.js → chunk-64LV76OK.js} +2 -67
  7. package/dist/chunk-64LV76OK.js.map +1 -0
  8. package/dist/{chunk-FTXIXM43.js → chunk-6AJJJG5B.js} +614 -138
  9. package/dist/chunk-6AJJJG5B.js.map +1 -0
  10. package/dist/chunk-7XHVZW2L.mjs +460 -0
  11. package/dist/chunk-7XHVZW2L.mjs.map +1 -0
  12. package/dist/{chunk-K3BNIGPX.js → chunk-ATYK5OKR.js} +81 -33
  13. package/dist/chunk-ATYK5OKR.js.map +1 -0
  14. package/dist/{chunk-J7DHGLW6.mjs → chunk-DKCZA2QI.mjs} +3 -61
  15. package/dist/chunk-DKCZA2QI.mjs.map +1 -0
  16. package/dist/chunk-FVA4TUI4.mjs +178 -0
  17. package/dist/chunk-FVA4TUI4.mjs.map +1 -0
  18. package/dist/chunk-HO6QNKFM.mjs +61 -0
  19. package/dist/chunk-HO6QNKFM.mjs.map +1 -0
  20. package/dist/chunk-MN7XNCYI.js +230 -0
  21. package/dist/chunk-MN7XNCYI.js.map +1 -0
  22. package/dist/{chunk-6F6M6L7R.mjs → chunk-QOIQBWMP.mjs} +524 -56
  23. package/dist/chunk-QOIQBWMP.mjs.map +1 -0
  24. package/dist/{chunk-TTOKQAPX.mjs → chunk-WGZYKDXF.mjs} +57 -11
  25. package/dist/chunk-WGZYKDXF.mjs.map +1 -0
  26. package/dist/compat.js +10 -9
  27. package/dist/compat.js.map +1 -1
  28. package/dist/compat.mjs +2 -1
  29. package/dist/compat.mjs.map +1 -1
  30. package/dist/headless.d.mts +217 -100
  31. package/dist/headless.d.ts +217 -100
  32. package/dist/headless.js +190 -168
  33. package/dist/headless.mjs +5 -3
  34. package/dist/index.d.mts +3 -3
  35. package/dist/index.d.ts +3 -3
  36. package/dist/index.js +233 -203
  37. package/dist/index.mjs +6 -4
  38. package/dist/react.d.mts +72 -4
  39. package/dist/react.d.ts +72 -4
  40. package/dist/react.js +52 -36
  41. package/dist/react.mjs +2 -2
  42. package/dist/{standard-shim-CT49DM5l.d.mts → standard-shim-BTUm7cur.d.mts} +280 -1
  43. package/dist/{standard-shim-D9guL5fz.d.ts → standard-shim-LsQ97i9T.d.ts} +280 -1
  44. package/dist/walletconnect-D4JN6H2O.js +28 -0
  45. package/dist/walletconnect-D4JN6H2O.js.map +1 -0
  46. package/dist/walletconnect-I3PZUBTA.mjs +3 -0
  47. package/dist/walletconnect-I3PZUBTA.mjs.map +1 -0
  48. package/package.json +6 -2
  49. package/dist/chunk-6F6M6L7R.mjs.map +0 -1
  50. package/dist/chunk-AOIXHVRH.js +0 -535
  51. package/dist/chunk-AOIXHVRH.js.map +0 -1
  52. package/dist/chunk-DSUCH44G.js.map +0 -1
  53. package/dist/chunk-FTXIXM43.js.map +0 -1
  54. package/dist/chunk-G575OAT4.mjs +0 -476
  55. package/dist/chunk-G575OAT4.mjs.map +0 -1
  56. package/dist/chunk-J7DHGLW6.mjs.map +0 -1
  57. package/dist/chunk-K3BNIGPX.js.map +0 -1
  58. package/dist/chunk-TTOKQAPX.mjs.map +0 -1
package/dist/compat.js CHANGED
@@ -1,9 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkDSUCH44G_js = require('./chunk-DSUCH44G.js');
3
+ var chunk4KD6HQQG_js = require('./chunk-4KD6HQQG.js');
4
+ var chunk64LV76OK_js = require('./chunk-64LV76OK.js');
4
5
  var react = require('react');
5
6
 
6
- var logger = chunkDSUCH44G_js.createLogger("WalletAdapterCompat");
7
+ var logger = chunk64LV76OK_js.createLogger("WalletAdapterCompat");
7
8
  function createWalletAdapterCompat(signer, options) {
8
9
  let { disconnect, transformTransaction, onError } = options, handleError = (error, operation) => {
9
10
  onError ? onError(error, operation) : logger.error("Wallet adapter compat error", { operation, error });
@@ -18,7 +19,7 @@ function createWalletAdapterCompat(signer, options) {
18
19
  let error2 = new Error("Wallet not connected");
19
20
  throw handleError(error2, "signTransaction"), error2;
20
21
  }
21
- let tx = transformTransaction ? transformTransaction(transaction) : transaction, { data: signed, error } = await chunkDSUCH44G_js.tryCatch(signer.signTransaction(tx));
22
+ let tx = transformTransaction ? transformTransaction(transaction) : transaction, { data: signed, error } = await chunk4KD6HQQG_js.tryCatch(signer.signTransaction(tx));
22
23
  if (error)
23
24
  throw handleError(error, "signTransaction"), error;
24
25
  return signed;
@@ -28,7 +29,7 @@ function createWalletAdapterCompat(signer, options) {
28
29
  let error2 = new Error("Wallet not connected");
29
30
  throw handleError(error2, "signAllTransactions"), error2;
30
31
  }
31
- let txs = transformTransaction ? transactions.map((tx) => transformTransaction(tx)) : transactions, { data: signedTxs, error } = await chunkDSUCH44G_js.tryCatch(Promise.all(txs.map((tx) => signer.signTransaction(tx))));
32
+ let txs = transformTransaction ? transactions.map((tx) => transformTransaction(tx)) : transactions, { data: signedTxs, error } = await chunk4KD6HQQG_js.tryCatch(Promise.all(txs.map((tx) => signer.signTransaction(tx))));
32
33
  if (error)
33
34
  throw handleError(error, "signAllTransactions"), error;
34
35
  return signedTxs;
@@ -43,11 +44,11 @@ function createWalletAdapterCompat(signer, options) {
43
44
  let error = new Error("Wallet does not support transaction signing");
44
45
  throw handleError(error, "sendTransaction"), error;
45
46
  }
46
- let { data: signedTx, error: signError } = await chunkDSUCH44G_js.tryCatch(signer.signTransaction(tx));
47
+ let { data: signedTx, error: signError } = await chunk4KD6HQQG_js.tryCatch(signer.signTransaction(tx));
47
48
  if (signError)
48
49
  throw handleError(signError, "sendTransaction"), signError;
49
50
  let rawTransaction;
50
- if (chunkDSUCH44G_js.isWeb3jsTransaction(signedTx))
51
+ if (chunk4KD6HQQG_js.isWeb3jsTransaction(signedTx))
51
52
  rawTransaction = signedTx.serialize();
52
53
  else if (signedTx instanceof Uint8Array)
53
54
  rawTransaction = signedTx;
@@ -55,7 +56,7 @@ function createWalletAdapterCompat(signer, options) {
55
56
  let error = new Error("Unexpected signed transaction format");
56
57
  throw handleError(error, "sendTransaction"), error;
57
58
  }
58
- let { data: signature, error: sendError } = await chunkDSUCH44G_js.tryCatch(
59
+ let { data: signature, error: sendError } = await chunk4KD6HQQG_js.tryCatch(
59
60
  connection.sendRawTransaction(rawTransaction, sendOptions)
60
61
  );
61
62
  if (sendError)
@@ -64,7 +65,7 @@ function createWalletAdapterCompat(signer, options) {
64
65
  },
65
66
  connect: async () => Promise.resolve(),
66
67
  disconnect: async () => {
67
- let { error } = await chunkDSUCH44G_js.tryCatch(disconnect());
68
+ let { error } = await chunk4KD6HQQG_js.tryCatch(disconnect());
68
69
  if (error)
69
70
  throw handleError(error, "disconnect"), error;
70
71
  },
@@ -73,7 +74,7 @@ function createWalletAdapterCompat(signer, options) {
73
74
  let error2 = new Error("Message signing not supported");
74
75
  throw handleError(error2, "signMessage"), error2;
75
76
  }
76
- let { data, error } = await chunkDSUCH44G_js.tryCatch(signer.signMessage(message));
77
+ let { data, error } = await chunk4KD6HQQG_js.tryCatch(signer.signMessage(message));
77
78
  if (error)
78
79
  throw handleError(error, "signMessage"), error;
79
80
  return data;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compat.ts"],"names":["createLogger","error","tryCatch","isWeb3jsTransaction","useMemo"],"mappings":"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","file":"compat.js","sourcesContent":["/**\n * Wallet Adapter Compatibility Bridge\n */\n\nimport { useMemo } from 'react';\nimport type { TransactionSigner } from './lib/transaction/transaction-signer';\nimport type { SolanaTransaction } from './types/transactions';\nimport type { Connection, SendOptions } from '@solana/web3.js';\nimport { isWeb3jsTransaction } from './utils/transaction-format';\nimport { createLogger } from './lib/utils/secure-logger';\nimport { tryCatch } from './lib/core/try-catch';\n\nconst logger = createLogger('WalletAdapterCompat');\n\n/**\n * Wallet adapter compatible interface that libraries expect\n */\nexport interface WalletAdapterCompatible {\n publicKey: string | null;\n connected: boolean;\n connecting: boolean;\n disconnecting: boolean;\n\n signTransaction: (transaction: SolanaTransaction) => Promise<SolanaTransaction>;\n signAllTransactions: (transactions: SolanaTransaction[]) => Promise<SolanaTransaction[]>;\n sendTransaction: (transaction: SolanaTransaction, connection: Connection, options?: SendOptions) => Promise<string>;\n\n connect: () => Promise<void>;\n disconnect: () => Promise<void>;\n\n signMessage?: (message: Uint8Array) => Promise<Uint8Array>;\n}\n\n/**\n * Options for creating wallet adapter compatibility\n */\nexport interface WalletAdapterCompatOptions {\n /** Function to handle disconnect */\n disconnect: () => Promise<void>;\n\n /** Optional function to transform transactions before signing */\n transformTransaction?: (tx: SolanaTransaction) => SolanaTransaction;\n\n /** Optional error handler */\n onError?: (error: Error, operation: string) => void;\n}\n\nexport function createWalletAdapterCompat(\n signer: TransactionSigner | null,\n options: WalletAdapterCompatOptions,\n): WalletAdapterCompatible {\n const { disconnect, transformTransaction, onError } = options;\n\n const handleError = (error: Error, operation: string) => {\n if (onError) {\n onError(error, operation);\n } else {\n logger.error('Wallet adapter compat error', { operation, error });\n }\n };\n\n return {\n publicKey: signer?.address || null,\n connected: !!signer,\n connecting: false,\n disconnecting: false,\n\n signTransaction: async (transaction: SolanaTransaction) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'signTransaction');\n throw error;\n }\n\n const tx = transformTransaction ? transformTransaction(transaction) : transaction;\n const { data: signed, error } = await tryCatch(signer.signTransaction(tx));\n\n if (error) {\n handleError(error, 'signTransaction');\n throw error;\n }\n\n return signed;\n },\n\n signAllTransactions: async (transactions: SolanaTransaction[]) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'signAllTransactions');\n throw error;\n }\n\n const txs = transformTransaction ? transactions.map(tx => transformTransaction(tx)) : transactions;\n const { data: signedTxs, error } = await tryCatch(Promise.all(txs.map(tx => signer.signTransaction(tx))));\n\n if (error) {\n handleError(error, 'signAllTransactions');\n throw error;\n }\n\n return signedTxs;\n },\n\n sendTransaction: async (transaction: SolanaTransaction, connection: Connection, sendOptions?: SendOptions) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const tx = transformTransaction ? transformTransaction(transaction) : transaction;\n\n const capabilities = signer.getCapabilities();\n if (!capabilities.canSign) {\n const error = new Error('Wallet does not support transaction signing');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const { data: signedTx, error: signError } = await tryCatch(signer.signTransaction(tx));\n if (signError) {\n handleError(signError, 'sendTransaction');\n throw signError;\n }\n\n // Serialize the signed transaction\n let rawTransaction: Uint8Array;\n if (isWeb3jsTransaction(signedTx)) {\n rawTransaction = signedTx.serialize();\n } else if (signedTx instanceof Uint8Array) {\n rawTransaction = signedTx;\n } else {\n const error = new Error('Unexpected signed transaction format');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const { data: signature, error: sendError } = await tryCatch(\n connection.sendRawTransaction(rawTransaction, sendOptions),\n );\n\n if (sendError) {\n handleError(sendError, 'sendTransaction');\n throw sendError;\n }\n\n return signature;\n },\n\n connect: async () => {\n return Promise.resolve();\n },\n\n disconnect: async () => {\n const { error } = await tryCatch(disconnect());\n if (error) {\n handleError(error, 'disconnect');\n throw error;\n }\n },\n\n signMessage: signer?.signMessage\n ? async (message: Uint8Array) => {\n if (!signer?.signMessage) {\n const error = new Error('Message signing not supported');\n handleError(error, 'signMessage');\n throw error;\n }\n\n const { data, error } = await tryCatch(signer.signMessage(message));\n if (error) {\n handleError(error, 'signMessage');\n throw error;\n }\n\n return data;\n }\n : undefined,\n };\n}\n\nexport function useWalletAdapterCompat(\n signer: TransactionSigner | null,\n disconnect: () => Promise<void>,\n options?: Omit<WalletAdapterCompatOptions, 'disconnect'>,\n): WalletAdapterCompatible {\n return useMemo(() => {\n return createWalletAdapterCompat(signer, {\n disconnect,\n ...options,\n });\n }, [signer, disconnect, options?.transformTransaction, options?.onError]);\n}\n\n/**\n * Type guard to check if an object implements WalletAdapterCompatible interface\n *\n * @param obj - Object to check\n * @returns True if object implements WalletAdapterCompatible\n */\nexport function isWalletAdapterCompatible(obj: unknown): obj is WalletAdapterCompatible {\n if (!obj || typeof obj !== 'object') return false;\n\n const wallet = obj as Record<string, unknown>;\n\n return (\n 'publicKey' in wallet &&\n 'connected' in wallet &&\n 'connecting' in wallet &&\n 'disconnecting' in wallet &&\n typeof wallet.signTransaction === 'function' &&\n typeof wallet.signAllTransactions === 'function' &&\n typeof wallet.sendTransaction === 'function' &&\n typeof wallet.connect === 'function' &&\n typeof wallet.disconnect === 'function'\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/compat.ts"],"names":["createLogger","error","tryCatch","isWeb3jsTransaction","useMemo"],"mappings":"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","file":"compat.js","sourcesContent":["/**\n * Wallet Adapter Compatibility Bridge\n */\n\nimport { useMemo } from 'react';\nimport type { TransactionSigner } from './lib/transaction/transaction-signer';\nimport type { SolanaTransaction } from './types/transactions';\nimport type { Connection, SendOptions } from '@solana/web3.js';\nimport { isWeb3jsTransaction } from './utils/transaction-format';\nimport { createLogger } from './lib/utils/secure-logger';\nimport { tryCatch } from './lib/core/try-catch';\n\nconst logger = createLogger('WalletAdapterCompat');\n\n/**\n * Wallet adapter compatible interface that libraries expect\n */\nexport interface WalletAdapterCompatible {\n publicKey: string | null;\n connected: boolean;\n connecting: boolean;\n disconnecting: boolean;\n\n signTransaction: (transaction: SolanaTransaction) => Promise<SolanaTransaction>;\n signAllTransactions: (transactions: SolanaTransaction[]) => Promise<SolanaTransaction[]>;\n sendTransaction: (transaction: SolanaTransaction, connection: Connection, options?: SendOptions) => Promise<string>;\n\n connect: () => Promise<void>;\n disconnect: () => Promise<void>;\n\n signMessage?: (message: Uint8Array) => Promise<Uint8Array>;\n}\n\n/**\n * Options for creating wallet adapter compatibility\n */\nexport interface WalletAdapterCompatOptions {\n /** Function to handle disconnect */\n disconnect: () => Promise<void>;\n\n /** Optional function to transform transactions before signing */\n transformTransaction?: (tx: SolanaTransaction) => SolanaTransaction;\n\n /** Optional error handler */\n onError?: (error: Error, operation: string) => void;\n}\n\nexport function createWalletAdapterCompat(\n signer: TransactionSigner | null,\n options: WalletAdapterCompatOptions,\n): WalletAdapterCompatible {\n const { disconnect, transformTransaction, onError } = options;\n\n const handleError = (error: Error, operation: string) => {\n if (onError) {\n onError(error, operation);\n } else {\n logger.error('Wallet adapter compat error', { operation, error });\n }\n };\n\n return {\n publicKey: signer?.address || null,\n connected: !!signer,\n connecting: false,\n disconnecting: false,\n\n signTransaction: async (transaction: SolanaTransaction) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'signTransaction');\n throw error;\n }\n\n const tx = transformTransaction ? transformTransaction(transaction) : transaction;\n const { data: signed, error } = await tryCatch(signer.signTransaction(tx));\n\n if (error) {\n handleError(error, 'signTransaction');\n throw error;\n }\n\n return signed;\n },\n\n signAllTransactions: async (transactions: SolanaTransaction[]) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'signAllTransactions');\n throw error;\n }\n\n const txs = transformTransaction ? transactions.map(tx => transformTransaction(tx)) : transactions;\n const { data: signedTxs, error } = await tryCatch(Promise.all(txs.map(tx => signer.signTransaction(tx))));\n\n if (error) {\n handleError(error, 'signAllTransactions');\n throw error;\n }\n\n return signedTxs;\n },\n\n sendTransaction: async (transaction: SolanaTransaction, connection: Connection, sendOptions?: SendOptions) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const tx = transformTransaction ? transformTransaction(transaction) : transaction;\n\n const capabilities = signer.getCapabilities();\n if (!capabilities.canSign) {\n const error = new Error('Wallet does not support transaction signing');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const { data: signedTx, error: signError } = await tryCatch(signer.signTransaction(tx));\n if (signError) {\n handleError(signError, 'sendTransaction');\n throw signError;\n }\n\n // Serialize the signed transaction\n let rawTransaction: Uint8Array;\n if (isWeb3jsTransaction(signedTx)) {\n rawTransaction = signedTx.serialize();\n } else if (signedTx instanceof Uint8Array) {\n rawTransaction = signedTx;\n } else {\n const error = new Error('Unexpected signed transaction format');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const { data: signature, error: sendError } = await tryCatch(\n connection.sendRawTransaction(rawTransaction, sendOptions),\n );\n\n if (sendError) {\n handleError(sendError, 'sendTransaction');\n throw sendError;\n }\n\n return signature;\n },\n\n connect: async () => {\n return Promise.resolve();\n },\n\n disconnect: async () => {\n const { error } = await tryCatch(disconnect());\n if (error) {\n handleError(error, 'disconnect');\n throw error;\n }\n },\n\n signMessage: signer?.signMessage\n ? async (message: Uint8Array) => {\n if (!signer?.signMessage) {\n const error = new Error('Message signing not supported');\n handleError(error, 'signMessage');\n throw error;\n }\n\n const { data, error } = await tryCatch(signer.signMessage(message));\n if (error) {\n handleError(error, 'signMessage');\n throw error;\n }\n\n return data;\n }\n : undefined,\n };\n}\n\nexport function useWalletAdapterCompat(\n signer: TransactionSigner | null,\n disconnect: () => Promise<void>,\n options?: Omit<WalletAdapterCompatOptions, 'disconnect'>,\n): WalletAdapterCompatible {\n return useMemo(() => {\n return createWalletAdapterCompat(signer, {\n disconnect,\n ...options,\n });\n }, [signer, disconnect, options?.transformTransaction, options?.onError]);\n}\n\n/**\n * Type guard to check if an object implements WalletAdapterCompatible interface\n *\n * @param obj - Object to check\n * @returns True if object implements WalletAdapterCompatible\n */\nexport function isWalletAdapterCompatible(obj: unknown): obj is WalletAdapterCompatible {\n if (!obj || typeof obj !== 'object') return false;\n\n const wallet = obj as Record<string, unknown>;\n\n return (\n 'publicKey' in wallet &&\n 'connected' in wallet &&\n 'connecting' in wallet &&\n 'disconnecting' in wallet &&\n typeof wallet.signTransaction === 'function' &&\n typeof wallet.signAllTransactions === 'function' &&\n typeof wallet.sendTransaction === 'function' &&\n typeof wallet.connect === 'function' &&\n typeof wallet.disconnect === 'function'\n );\n}\n"]}
package/dist/compat.mjs CHANGED
@@ -1,4 +1,5 @@
1
- import { createLogger, tryCatch, isWeb3jsTransaction } from './chunk-J7DHGLW6.mjs';
1
+ import { tryCatch, isWeb3jsTransaction } from './chunk-HO6QNKFM.mjs';
2
+ import { createLogger } from './chunk-DKCZA2QI.mjs';
2
3
  import { useMemo } from 'react';
3
4
 
4
5
  var logger = createLogger("WalletAdapterCompat");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compat.ts"],"names":["error"],"mappings":";;;AAYA,IAAM,MAAA,GAAS,aAAa,qBAAqB,CAAA;AAmC1C,SAAS,yBAAA,CACZ,QACA,OAAA,EACuB;AACvB,EAAA,IAAM,EAAE,YAAY,oBAAA,EAAsB,OAAA,KAAY,OAAA,EAEhD,WAAA,GAAc,CAAC,KAAA,EAAc,SAAA,KAAsB;AACrD,IAAI,OAAA,GACA,OAAA,CAAQ,KAAA,EAAO,SAAS,CAAA,GAExB,MAAA,CAAO,KAAA,CAAM,6BAAA,EAA+B,EAAE,SAAA,EAAW,KAAA,EAAO,CAAA;AAAA,EAExE,CAAA;AAEA,EAAA,OAAO;AAAA,IACH,SAAA,EAAW,QAAQ,OAAA,IAAW,IAAA;AAAA,IAC9B,SAAA,EAAW,CAAC,CAAC,MAAA;AAAA,IACb,UAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAe,KAAA;AAAA,IAEf,eAAA,EAAiB,OAAO,WAAA,KAAmC;AACvD,MAAA,IAAI,CAAC,MAAA,EAAQ;AACT,QAAA,IAAMA,MAAAA,GAAQ,IAAI,KAAA,CAAM,sBAAsB,CAAA;AAC9C,QAAA,MAAA,WAAA,CAAYA,MAAAA,EAAO,iBAAiB,CAAA,EAC9BA,MAAAA;AAAA,MACV;AAEA,MAAA,IAAM,KAAK,oBAAA,GAAuB,oBAAA,CAAqB,WAAW,CAAA,GAAI,aAChE,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,KAAU,MAAM,QAAA,CAAS,MAAA,CAAO,eAAA,CAAgB,EAAE,CAAC,CAAA;AAEzE,MAAA,IAAI,KAAA;AACA,QAAA,MAAA,WAAA,CAAY,KAAA,EAAO,iBAAiB,CAAA,EAC9B,KAAA;AAGV,MAAA,OAAO,MAAA;AAAA,IACX,CAAA;AAAA,IAEA,mBAAA,EAAqB,OAAO,YAAA,KAAsC;AAC9D,MAAA,IAAI,CAAC,MAAA,EAAQ;AACT,QAAA,IAAMA,MAAAA,GAAQ,IAAI,KAAA,CAAM,sBAAsB,CAAA;AAC9C,QAAA,MAAA,WAAA,CAAYA,MAAAA,EAAO,qBAAqB,CAAA,EAClCA,MAAAA;AAAA,MACV;AAEA,MAAA,IAAM,GAAA,GAAM,oBAAA,GAAuB,YAAA,CAAa,GAAA,CAAI,CAAA,EAAA,KAAM,oBAAA,CAAqB,EAAE,CAAC,CAAA,GAAI,YAAA,EAChF,EAAE,IAAA,EAAM,SAAA,EAAW,KAAA,EAAM,GAAI,MAAM,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,GAAA,CAAI,GAAA,CAAI,CAAA,EAAA,KAAM,MAAA,CAAO,eAAA,CAAgB,EAAE,CAAC,CAAC,CAAC,CAAA;AAExG,MAAA,IAAI,KAAA;AACA,QAAA,MAAA,WAAA,CAAY,KAAA,EAAO,qBAAqB,CAAA,EAClC,KAAA;AAGV,MAAA,OAAO,SAAA;AAAA,IACX,CAAA;AAAA,IAEA,eAAA,EAAiB,OAAO,WAAA,EAAgC,UAAA,EAAwB,WAAA,KAA8B;AAC1G,MAAA,IAAI,CAAC,MAAA,EAAQ;AACT,QAAA,IAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,sBAAsB,CAAA;AAC9C,QAAA,MAAA,WAAA,CAAY,KAAA,EAAO,iBAAiB,CAAA,EAC9B,KAAA;AAAA,MACV;AAEA,MAAA,IAAM,EAAA,GAAK,oBAAA,GAAuB,oBAAA,CAAqB,WAAW,CAAA,GAAI,WAAA;AAGtE,MAAA,IAAI,CADiB,MAAA,CAAO,eAAA,EAAgB,CAC1B,OAAA,EAAS;AACvB,QAAA,IAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,6CAA6C,CAAA;AACrE,QAAA,MAAA,WAAA,CAAY,KAAA,EAAO,iBAAiB,CAAA,EAC9B,KAAA;AAAA,MACV;AAEA,MAAA,IAAM,EAAE,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,SAAA,EAAU,GAAI,MAAM,QAAA,CAAS,MAAA,CAAO,eAAA,CAAgB,EAAE,CAAC,CAAA;AACtF,MAAA,IAAI,SAAA;AACA,QAAA,MAAA,WAAA,CAAY,SAAA,EAAW,iBAAiB,CAAA,EAClC,SAAA;AAIV,MAAA,IAAI,cAAA;AACJ,MAAA,IAAI,oBAAoB,QAAQ,CAAA;AAC5B,QAAA,cAAA,GAAiB,SAAS,SAAA,EAAU;AAAA,WAAA,IAC7B,QAAA,YAAoB,UAAA;AAC3B,QAAA,cAAA,GAAiB,QAAA;AAAA,WACd;AACH,QAAA,IAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,sCAAsC,CAAA;AAC9D,QAAA,MAAA,WAAA,CAAY,KAAA,EAAO,iBAAiB,CAAA,EAC9B,KAAA;AAAA,MACV;AAEA,MAAA,IAAM,EAAE,IAAA,EAAM,SAAA,EAAW,KAAA,EAAO,SAAA,KAAc,MAAM,QAAA;AAAA,QAChD,UAAA,CAAW,kBAAA,CAAmB,cAAA,EAAgB,WAAW;AAAA,OAC7D;AAEA,MAAA,IAAI,SAAA;AACA,QAAA,MAAA,WAAA,CAAY,SAAA,EAAW,iBAAiB,CAAA,EAClC,SAAA;AAGV,MAAA,OAAO,SAAA;AAAA,IACX,CAAA;AAAA,IAEA,OAAA,EAAS,YACE,OAAA,CAAQ,OAAA,EAAQ;AAAA,IAG3B,YAAY,YAAY;AACpB,MAAA,IAAM,EAAE,KAAA,EAAM,GAAI,MAAM,QAAA,CAAS,YAAY,CAAA;AAC7C,MAAA,IAAI,KAAA;AACA,QAAA,MAAA,WAAA,CAAY,KAAA,EAAO,YAAY,CAAA,EACzB,KAAA;AAAA,IAEd,CAAA;AAAA,IAEA,WAAA,EAAa,MAAA,EAAQ,WAAA,GACf,OAAO,OAAA,KAAwB;AAC3B,MAAA,IAAI,CAAC,QAAQ,WAAA,EAAa;AACtB,QAAA,IAAMA,MAAAA,GAAQ,IAAI,KAAA,CAAM,+BAA+B,CAAA;AACvD,QAAA,MAAA,WAAA,CAAYA,MAAAA,EAAO,aAAa,CAAA,EAC1BA,MAAAA;AAAA,MACV;AAEA,MAAA,IAAM,EAAE,MAAM,KAAA,EAAM,GAAI,MAAM,QAAA,CAAS,MAAA,CAAO,WAAA,CAAY,OAAO,CAAC,CAAA;AAClE,MAAA,IAAI,KAAA;AACA,QAAA,MAAA,WAAA,CAAY,KAAA,EAAO,aAAa,CAAA,EAC1B,KAAA;AAGV,MAAA,OAAO,IAAA;AAAA,IACX,CAAA,GACA;AAAA,GACV;AACJ;AAEO,SAAS,sBAAA,CACZ,MAAA,EACA,UAAA,EACA,OAAA,EACuB;AACvB,EAAA,OAAO,OAAA,CAAQ,MACJ,yBAAA,CAA0B,MAAA,EAAQ;AAAA,IACrC,UAAA;AAAA,IACA,GAAG;AAAA,GACN,GACF,CAAC,MAAA,EAAQ,YAAY,OAAA,EAAS,oBAAA,EAAsB,OAAA,EAAS,OAAO,CAAC,CAAA;AAC5E;AAQO,SAAS,0BAA0B,GAAA,EAA8C;AACpF,EAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,IAAQ,UAAU,OAAO,KAAA;AAE5C,EAAA,IAAM,MAAA,GAAS,GAAA;AAEf,EAAA,OACI,WAAA,IAAe,MAAA,IACf,WAAA,IAAe,MAAA,IACf,YAAA,IAAgB,MAAA,IAChB,eAAA,IAAmB,MAAA,IACnB,OAAO,MAAA,CAAO,eAAA,IAAoB,UAAA,IAClC,OAAO,OAAO,mBAAA,IAAwB,UAAA,IACtC,OAAO,MAAA,CAAO,eAAA,IAAoB,UAAA,IAClC,OAAO,MAAA,CAAO,OAAA,IAAY,UAAA,IAC1B,OAAO,MAAA,CAAO,UAAA,IAAe,UAAA;AAErC","file":"compat.mjs","sourcesContent":["/**\n * Wallet Adapter Compatibility Bridge\n */\n\nimport { useMemo } from 'react';\nimport type { TransactionSigner } from './lib/transaction/transaction-signer';\nimport type { SolanaTransaction } from './types/transactions';\nimport type { Connection, SendOptions } from '@solana/web3.js';\nimport { isWeb3jsTransaction } from './utils/transaction-format';\nimport { createLogger } from './lib/utils/secure-logger';\nimport { tryCatch } from './lib/core/try-catch';\n\nconst logger = createLogger('WalletAdapterCompat');\n\n/**\n * Wallet adapter compatible interface that libraries expect\n */\nexport interface WalletAdapterCompatible {\n publicKey: string | null;\n connected: boolean;\n connecting: boolean;\n disconnecting: boolean;\n\n signTransaction: (transaction: SolanaTransaction) => Promise<SolanaTransaction>;\n signAllTransactions: (transactions: SolanaTransaction[]) => Promise<SolanaTransaction[]>;\n sendTransaction: (transaction: SolanaTransaction, connection: Connection, options?: SendOptions) => Promise<string>;\n\n connect: () => Promise<void>;\n disconnect: () => Promise<void>;\n\n signMessage?: (message: Uint8Array) => Promise<Uint8Array>;\n}\n\n/**\n * Options for creating wallet adapter compatibility\n */\nexport interface WalletAdapterCompatOptions {\n /** Function to handle disconnect */\n disconnect: () => Promise<void>;\n\n /** Optional function to transform transactions before signing */\n transformTransaction?: (tx: SolanaTransaction) => SolanaTransaction;\n\n /** Optional error handler */\n onError?: (error: Error, operation: string) => void;\n}\n\nexport function createWalletAdapterCompat(\n signer: TransactionSigner | null,\n options: WalletAdapterCompatOptions,\n): WalletAdapterCompatible {\n const { disconnect, transformTransaction, onError } = options;\n\n const handleError = (error: Error, operation: string) => {\n if (onError) {\n onError(error, operation);\n } else {\n logger.error('Wallet adapter compat error', { operation, error });\n }\n };\n\n return {\n publicKey: signer?.address || null,\n connected: !!signer,\n connecting: false,\n disconnecting: false,\n\n signTransaction: async (transaction: SolanaTransaction) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'signTransaction');\n throw error;\n }\n\n const tx = transformTransaction ? transformTransaction(transaction) : transaction;\n const { data: signed, error } = await tryCatch(signer.signTransaction(tx));\n\n if (error) {\n handleError(error, 'signTransaction');\n throw error;\n }\n\n return signed;\n },\n\n signAllTransactions: async (transactions: SolanaTransaction[]) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'signAllTransactions');\n throw error;\n }\n\n const txs = transformTransaction ? transactions.map(tx => transformTransaction(tx)) : transactions;\n const { data: signedTxs, error } = await tryCatch(Promise.all(txs.map(tx => signer.signTransaction(tx))));\n\n if (error) {\n handleError(error, 'signAllTransactions');\n throw error;\n }\n\n return signedTxs;\n },\n\n sendTransaction: async (transaction: SolanaTransaction, connection: Connection, sendOptions?: SendOptions) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const tx = transformTransaction ? transformTransaction(transaction) : transaction;\n\n const capabilities = signer.getCapabilities();\n if (!capabilities.canSign) {\n const error = new Error('Wallet does not support transaction signing');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const { data: signedTx, error: signError } = await tryCatch(signer.signTransaction(tx));\n if (signError) {\n handleError(signError, 'sendTransaction');\n throw signError;\n }\n\n // Serialize the signed transaction\n let rawTransaction: Uint8Array;\n if (isWeb3jsTransaction(signedTx)) {\n rawTransaction = signedTx.serialize();\n } else if (signedTx instanceof Uint8Array) {\n rawTransaction = signedTx;\n } else {\n const error = new Error('Unexpected signed transaction format');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const { data: signature, error: sendError } = await tryCatch(\n connection.sendRawTransaction(rawTransaction, sendOptions),\n );\n\n if (sendError) {\n handleError(sendError, 'sendTransaction');\n throw sendError;\n }\n\n return signature;\n },\n\n connect: async () => {\n return Promise.resolve();\n },\n\n disconnect: async () => {\n const { error } = await tryCatch(disconnect());\n if (error) {\n handleError(error, 'disconnect');\n throw error;\n }\n },\n\n signMessage: signer?.signMessage\n ? async (message: Uint8Array) => {\n if (!signer?.signMessage) {\n const error = new Error('Message signing not supported');\n handleError(error, 'signMessage');\n throw error;\n }\n\n const { data, error } = await tryCatch(signer.signMessage(message));\n if (error) {\n handleError(error, 'signMessage');\n throw error;\n }\n\n return data;\n }\n : undefined,\n };\n}\n\nexport function useWalletAdapterCompat(\n signer: TransactionSigner | null,\n disconnect: () => Promise<void>,\n options?: Omit<WalletAdapterCompatOptions, 'disconnect'>,\n): WalletAdapterCompatible {\n return useMemo(() => {\n return createWalletAdapterCompat(signer, {\n disconnect,\n ...options,\n });\n }, [signer, disconnect, options?.transformTransaction, options?.onError]);\n}\n\n/**\n * Type guard to check if an object implements WalletAdapterCompatible interface\n *\n * @param obj - Object to check\n * @returns True if object implements WalletAdapterCompatible\n */\nexport function isWalletAdapterCompatible(obj: unknown): obj is WalletAdapterCompatible {\n if (!obj || typeof obj !== 'object') return false;\n\n const wallet = obj as Record<string, unknown>;\n\n return (\n 'publicKey' in wallet &&\n 'connected' in wallet &&\n 'connecting' in wallet &&\n 'disconnecting' in wallet &&\n typeof wallet.signTransaction === 'function' &&\n typeof wallet.signAllTransactions === 'function' &&\n typeof wallet.sendTransaction === 'function' &&\n typeof wallet.connect === 'function' &&\n typeof wallet.disconnect === 'function'\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/compat.ts"],"names":["error"],"mappings":"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","file":"compat.mjs","sourcesContent":["/**\n * Wallet Adapter Compatibility Bridge\n */\n\nimport { useMemo } from 'react';\nimport type { TransactionSigner } from './lib/transaction/transaction-signer';\nimport type { SolanaTransaction } from './types/transactions';\nimport type { Connection, SendOptions } from '@solana/web3.js';\nimport { isWeb3jsTransaction } from './utils/transaction-format';\nimport { createLogger } from './lib/utils/secure-logger';\nimport { tryCatch } from './lib/core/try-catch';\n\nconst logger = createLogger('WalletAdapterCompat');\n\n/**\n * Wallet adapter compatible interface that libraries expect\n */\nexport interface WalletAdapterCompatible {\n publicKey: string | null;\n connected: boolean;\n connecting: boolean;\n disconnecting: boolean;\n\n signTransaction: (transaction: SolanaTransaction) => Promise<SolanaTransaction>;\n signAllTransactions: (transactions: SolanaTransaction[]) => Promise<SolanaTransaction[]>;\n sendTransaction: (transaction: SolanaTransaction, connection: Connection, options?: SendOptions) => Promise<string>;\n\n connect: () => Promise<void>;\n disconnect: () => Promise<void>;\n\n signMessage?: (message: Uint8Array) => Promise<Uint8Array>;\n}\n\n/**\n * Options for creating wallet adapter compatibility\n */\nexport interface WalletAdapterCompatOptions {\n /** Function to handle disconnect */\n disconnect: () => Promise<void>;\n\n /** Optional function to transform transactions before signing */\n transformTransaction?: (tx: SolanaTransaction) => SolanaTransaction;\n\n /** Optional error handler */\n onError?: (error: Error, operation: string) => void;\n}\n\nexport function createWalletAdapterCompat(\n signer: TransactionSigner | null,\n options: WalletAdapterCompatOptions,\n): WalletAdapterCompatible {\n const { disconnect, transformTransaction, onError } = options;\n\n const handleError = (error: Error, operation: string) => {\n if (onError) {\n onError(error, operation);\n } else {\n logger.error('Wallet adapter compat error', { operation, error });\n }\n };\n\n return {\n publicKey: signer?.address || null,\n connected: !!signer,\n connecting: false,\n disconnecting: false,\n\n signTransaction: async (transaction: SolanaTransaction) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'signTransaction');\n throw error;\n }\n\n const tx = transformTransaction ? transformTransaction(transaction) : transaction;\n const { data: signed, error } = await tryCatch(signer.signTransaction(tx));\n\n if (error) {\n handleError(error, 'signTransaction');\n throw error;\n }\n\n return signed;\n },\n\n signAllTransactions: async (transactions: SolanaTransaction[]) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'signAllTransactions');\n throw error;\n }\n\n const txs = transformTransaction ? transactions.map(tx => transformTransaction(tx)) : transactions;\n const { data: signedTxs, error } = await tryCatch(Promise.all(txs.map(tx => signer.signTransaction(tx))));\n\n if (error) {\n handleError(error, 'signAllTransactions');\n throw error;\n }\n\n return signedTxs;\n },\n\n sendTransaction: async (transaction: SolanaTransaction, connection: Connection, sendOptions?: SendOptions) => {\n if (!signer) {\n const error = new Error('Wallet not connected');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const tx = transformTransaction ? transformTransaction(transaction) : transaction;\n\n const capabilities = signer.getCapabilities();\n if (!capabilities.canSign) {\n const error = new Error('Wallet does not support transaction signing');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const { data: signedTx, error: signError } = await tryCatch(signer.signTransaction(tx));\n if (signError) {\n handleError(signError, 'sendTransaction');\n throw signError;\n }\n\n // Serialize the signed transaction\n let rawTransaction: Uint8Array;\n if (isWeb3jsTransaction(signedTx)) {\n rawTransaction = signedTx.serialize();\n } else if (signedTx instanceof Uint8Array) {\n rawTransaction = signedTx;\n } else {\n const error = new Error('Unexpected signed transaction format');\n handleError(error, 'sendTransaction');\n throw error;\n }\n\n const { data: signature, error: sendError } = await tryCatch(\n connection.sendRawTransaction(rawTransaction, sendOptions),\n );\n\n if (sendError) {\n handleError(sendError, 'sendTransaction');\n throw sendError;\n }\n\n return signature;\n },\n\n connect: async () => {\n return Promise.resolve();\n },\n\n disconnect: async () => {\n const { error } = await tryCatch(disconnect());\n if (error) {\n handleError(error, 'disconnect');\n throw error;\n }\n },\n\n signMessage: signer?.signMessage\n ? async (message: Uint8Array) => {\n if (!signer?.signMessage) {\n const error = new Error('Message signing not supported');\n handleError(error, 'signMessage');\n throw error;\n }\n\n const { data, error } = await tryCatch(signer.signMessage(message));\n if (error) {\n handleError(error, 'signMessage');\n throw error;\n }\n\n return data;\n }\n : undefined,\n };\n}\n\nexport function useWalletAdapterCompat(\n signer: TransactionSigner | null,\n disconnect: () => Promise<void>,\n options?: Omit<WalletAdapterCompatOptions, 'disconnect'>,\n): WalletAdapterCompatible {\n return useMemo(() => {\n return createWalletAdapterCompat(signer, {\n disconnect,\n ...options,\n });\n }, [signer, disconnect, options?.transformTransaction, options?.onError]);\n}\n\n/**\n * Type guard to check if an object implements WalletAdapterCompatible interface\n *\n * @param obj - Object to check\n * @returns True if object implements WalletAdapterCompatible\n */\nexport function isWalletAdapterCompatible(obj: unknown): obj is WalletAdapterCompatible {\n if (!obj || typeof obj !== 'object') return false;\n\n const wallet = obj as Record<string, unknown>;\n\n return (\n 'publicKey' in wallet &&\n 'connected' in wallet &&\n 'connecting' in wallet &&\n 'disconnecting' in wallet &&\n typeof wallet.signTransaction === 'function' &&\n typeof wallet.signAllTransactions === 'function' &&\n typeof wallet.sendTransaction === 'function' &&\n typeof wallet.connect === 'function' &&\n typeof wallet.disconnect === 'function'\n );\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { h as ClusterType, N as StorageOptions, K as StorageAdapter, O as EnhancedStorageAccountOptions, P as EnhancedStorageClusterOptions, Q as EnhancedStorageWalletOptions } from './standard-shim-CT49DM5l.mjs';
2
- export { x as AccountAddress, A as AccountInfo, R as ClipboardErrorType, T as ClipboardResult, B as CoinGeckoConfig, i as ConnectorClient, d as ConnectorConfig, G as ConnectorDebugMetrics, H as ConnectorDebugState, I as ConnectorEvent, J as ConnectorEventListener, F as ConnectorHealth, e as ConnectorState, U as CopyOptions, t as CreateSolanaClientArgs, D as DefaultConfigOptions, E as ExtendedConnectorConfig, L as Listener, M as MobileWalletAdapterConfig, q as ModifiedClusterUrl, s as SolanaClient, S as SolanaClusterMoniker, n as WalletError, m as WalletErrorType, W as WalletInfo, v as WalletName, g as WalletStandardAccount, f as WalletStandardWallet, Y as copyAddressToClipboard, Z as copySignatureToClipboard, X as copyToClipboard, p as createSolanaClient, a1 as getAddressUrl, a3 as getBlockUrl, ab as getChainIdForWalletStandard, aa as getClusterChainId, $ as getClusterExplorerUrl, a8 as getClusterName, _ as getClusterRpcUrl, a9 as getClusterType, j as getDefaultConfig, k as getDefaultMobileConfig, o as getPublicSolanaRpcUrl, a2 as getTokenUrl, a0 as getTransactionUrl, l as getWalletsRegistry, z as isAccountAddress, V as isClipboardAvailable, a5 as isDevnetCluster, a7 as isLocalCluster, a4 as isMainnetCluster, a6 as isTestnetCluster, y as isWalletName, r as ready } from './standard-shim-CT49DM5l.mjs';
1
+ import { j as ClusterType, R as StorageOptions, Q as StorageAdapter, T as EnhancedStorageAccountOptions, U as EnhancedStorageClusterOptions, V as EnhancedStorageWalletOptions, x as WalletConnectConfig, z as WalletConnectTransport } from './standard-shim-BTUm7cur.mjs';
2
+ export { F as AccountAddress, A as AccountInfo, a4 as ClipboardErrorType, a5 as ClipboardResult, I as CoinGeckoConfig, k as ConnectorClient, e as ConnectorConfig, K as ConnectorDebugMetrics, L as ConnectorDebugState, O as ConnectorEvent, P as ConnectorEventListener, J as ConnectorHealth, f as ConnectorState, a6 as CopyOptions, v as CreateSolanaClientArgs, D as DefaultConfigOptions, E as ExtendedConnectorConfig, N as Listener, M as MobileWalletAdapterConfig, s as ModifiedClusterUrl, t as SolanaClient, q as SolanaClusterMoniker, y as WalletConnectMetadata, a0 as WalletConnectSignAllTransactionsParams, a1 as WalletConnectSignAllTransactionsResult, a2 as WalletConnectSignAndSendTransactionParams, a3 as WalletConnectSignAndSendTransactionResult, Y as WalletConnectSignMessageParams, Z as WalletConnectSignMessageResult, _ as WalletConnectSignTransactionParams, $ as WalletConnectSignTransactionResult, X as WalletConnectSolanaAccount, n as WalletError, m as WalletErrorType, W as WalletInfo, B as WalletName, i as WalletStandardAccount, h as WalletStandardWallet, a9 as copyAddressToClipboard, aa as copySignatureToClipboard, a8 as copyToClipboard, p as createSolanaClient, ae as getAddressUrl, ag as getBlockUrl, ao as getChainIdForWalletStandard, an as getClusterChainId, ac as getClusterExplorerUrl, al as getClusterName, ab as getClusterRpcUrl, am as getClusterType, g as getDefaultConfig, b as getDefaultMobileConfig, o as getPublicSolanaRpcUrl, af as getTokenUrl, ad as getTransactionUrl, l as getWalletsRegistry, H as isAccountAddress, a7 as isClipboardAvailable, ai as isDevnetCluster, ak as isLocalCluster, ah as isMainnetCluster, aj as isTestnetCluster, G as isWalletName, r as ready } from './standard-shim-BTUm7cur.mjs';
3
3
  import { z } from 'zod/v4';
4
4
  import { a as TransactionSigner } from './transaction-signer-T-KVQFi8.mjs';
5
5
  export { d as ConfigurationError, p as ConfigurationErrorCode, b as ConnectionError, n as ConnectionErrorCode, C as ConnectorError, E as Errors, N as NetworkError, q as NetworkErrorCode, u as SignedTransaction, S as SolanaTransaction, w as TransactionActivity, x as TransactionActivityStatus, e as TransactionError, r as TransactionErrorCode, z as TransactionMetadata, y as TransactionMethod, v as TransactionSignerCapabilities, s as TransactionSignerConfig, T as TransactionSignerError, V as ValidationError, o as ValidationErrorCode, c as createTransactionSigner, m as getUserFriendlyMessage, j as isConfigurationError, g as isConnectionError, f as isConnectorError, k as isNetworkError, l as isTransactionError, i as isTransactionSignerError, h as isValidationError, t as toConnectorError } from './transaction-signer-T-KVQFi8.mjs';
@@ -22,6 +22,122 @@ import 'react';
22
22
  import '@solana-mobile/wallet-standard-mobile';
23
23
  import '@solana/transaction-messages';
24
24
 
25
+ /**
26
+ * @solana/connector - Configuration Schemas
27
+ *
28
+ * Zod schemas for runtime validation of configuration options.
29
+ * These schemas provide type-safe validation with helpful error messages.
30
+ */
31
+
32
+ declare const defaultConfigOptionsSchema: z.ZodObject<{
33
+ appName: z.ZodString;
34
+ appUrl: z.ZodOptional<z.ZodString>;
35
+ imageProxy: z.ZodOptional<z.ZodString>;
36
+ clusterStorageKey: z.ZodOptional<z.ZodString>;
37
+ autoConnect: z.ZodOptional<z.ZodBoolean>;
38
+ debug: z.ZodOptional<z.ZodBoolean>;
39
+ enableMobile: z.ZodOptional<z.ZodBoolean>;
40
+ persistClusterSelection: z.ZodOptional<z.ZodBoolean>;
41
+ enableErrorBoundary: z.ZodOptional<z.ZodBoolean>;
42
+ network: z.ZodOptional<z.ZodEnum<{
43
+ devnet: "devnet";
44
+ localnet: "localnet";
45
+ mainnet: "mainnet";
46
+ testnet: "testnet";
47
+ "mainnet-beta": "mainnet-beta";
48
+ }>>;
49
+ maxRetries: z.ZodOptional<z.ZodNumber>;
50
+ storage: z.ZodOptional<z.ZodObject<{
51
+ account: z.ZodObject<{
52
+ get: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
53
+ set: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
54
+ }, z.core.$loose>;
55
+ cluster: z.ZodObject<{
56
+ get: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
57
+ set: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
58
+ }, z.core.$loose>;
59
+ wallet: z.ZodObject<{
60
+ get: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
61
+ set: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
62
+ }, z.core.$loose>;
63
+ }, z.core.$strip>>;
64
+ clusters: z.ZodOptional<z.ZodArray<z.ZodObject<{
65
+ id: z.ZodString;
66
+ label: z.ZodString;
67
+ url: z.ZodString;
68
+ urlWs: z.ZodOptional<z.ZodString>;
69
+ }, z.core.$strip>>>;
70
+ customClusters: z.ZodOptional<z.ZodArray<z.ZodObject<{
71
+ id: z.ZodString;
72
+ label: z.ZodString;
73
+ url: z.ZodString;
74
+ urlWs: z.ZodOptional<z.ZodString>;
75
+ }, z.core.$strip>>>;
76
+ programLabels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
77
+ coingecko: z.ZodOptional<z.ZodObject<{
78
+ apiKey: z.ZodOptional<z.ZodString>;
79
+ isPro: z.ZodOptional<z.ZodBoolean>;
80
+ maxRetries: z.ZodOptional<z.ZodNumber>;
81
+ baseDelay: z.ZodOptional<z.ZodNumber>;
82
+ maxTimeout: z.ZodOptional<z.ZodNumber>;
83
+ }, z.core.$strict>>;
84
+ walletConnect: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
85
+ enabled: z.ZodOptional<z.ZodBoolean>;
86
+ projectId: z.ZodString;
87
+ metadata: z.ZodObject<{
88
+ name: z.ZodString;
89
+ description: z.ZodString;
90
+ url: z.ZodString;
91
+ icons: z.ZodArray<z.ZodString>;
92
+ }, z.core.$strip>;
93
+ defaultChain: z.ZodOptional<z.ZodEnum<{
94
+ "solana:mainnet": "solana:mainnet";
95
+ "solana:devnet": "solana:devnet";
96
+ "solana:testnet": "solana:testnet";
97
+ }>>;
98
+ onDisplayUri: z.ZodOptional<z.ZodCustom<(uri: string) => void, (uri: string) => void>>;
99
+ onSessionEstablished: z.ZodOptional<z.ZodCustom<() => void, () => void>>;
100
+ onSessionDisconnected: z.ZodOptional<z.ZodCustom<() => void, () => void>>;
101
+ relayUrl: z.ZodOptional<z.ZodString>;
102
+ }, z.core.$strip>]>>;
103
+ onError: z.ZodOptional<z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>>;
104
+ }, z.core.$strip>;
105
+ type DefaultConfigOptionsInput = z.input<typeof defaultConfigOptionsSchema>;
106
+ /**
107
+ * Validate configuration options and return a result with helpful errors
108
+ *
109
+ * @example
110
+ * ```ts
111
+ * const result = validateConfigOptions({
112
+ * appName: 'My App',
113
+ * network: 'mainnet',
114
+ * });
115
+ *
116
+ * if (!result.success) {
117
+ * console.error('Config validation failed:', result.error.format());
118
+ * }
119
+ * ```
120
+ */
121
+ declare function validateConfigOptions(options: unknown): z.ZodSafeParseResult<DefaultConfigOptionsInput>;
122
+ /**
123
+ * Parse and validate config options, throwing on error with formatted message
124
+ *
125
+ * @throws {z.ZodError} If validation fails
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * try {
130
+ * const validOptions = parseConfigOptions(userInput);
131
+ * // validOptions is typed and validated
132
+ * } catch (error) {
133
+ * if (error instanceof z.ZodError) {
134
+ * console.error(error.format());
135
+ * }
136
+ * }
137
+ * ```
138
+ */
139
+ declare function parseConfigOptions(options: unknown): DefaultConfigOptionsInput;
140
+
25
141
  /**
26
142
  * @solana/connector - Formatting utilities
27
143
  *
@@ -548,103 +664,6 @@ declare function freezeSigner<T extends object>(signer: T): Readonly<T>;
548
664
  declare function base58ToSignatureBytes(signature: string): SignatureBytes;
549
665
  declare function signatureBytesToBase58(bytes: SignatureBytes): string;
550
666
 
551
- /**
552
- * @solana/connector - Configuration Schemas
553
- *
554
- * Zod schemas for runtime validation of configuration options.
555
- * These schemas provide type-safe validation with helpful error messages.
556
- */
557
-
558
- declare const defaultConfigOptionsSchema: z.ZodObject<{
559
- appName: z.ZodString;
560
- appUrl: z.ZodOptional<z.ZodString>;
561
- imageProxy: z.ZodOptional<z.ZodString>;
562
- clusterStorageKey: z.ZodOptional<z.ZodString>;
563
- autoConnect: z.ZodOptional<z.ZodBoolean>;
564
- debug: z.ZodOptional<z.ZodBoolean>;
565
- enableMobile: z.ZodOptional<z.ZodBoolean>;
566
- persistClusterSelection: z.ZodOptional<z.ZodBoolean>;
567
- enableErrorBoundary: z.ZodOptional<z.ZodBoolean>;
568
- network: z.ZodOptional<z.ZodEnum<{
569
- devnet: "devnet";
570
- localnet: "localnet";
571
- mainnet: "mainnet";
572
- testnet: "testnet";
573
- "mainnet-beta": "mainnet-beta";
574
- }>>;
575
- maxRetries: z.ZodOptional<z.ZodNumber>;
576
- storage: z.ZodOptional<z.ZodObject<{
577
- account: z.ZodObject<{
578
- get: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
579
- set: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
580
- }, z.core.$loose>;
581
- cluster: z.ZodObject<{
582
- get: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
583
- set: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
584
- }, z.core.$loose>;
585
- wallet: z.ZodObject<{
586
- get: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
587
- set: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
588
- }, z.core.$loose>;
589
- }, z.core.$strip>>;
590
- clusters: z.ZodOptional<z.ZodArray<z.ZodObject<{
591
- id: z.ZodString;
592
- label: z.ZodString;
593
- url: z.ZodString;
594
- urlWs: z.ZodOptional<z.ZodString>;
595
- }, z.core.$strip>>>;
596
- customClusters: z.ZodOptional<z.ZodArray<z.ZodObject<{
597
- id: z.ZodString;
598
- label: z.ZodString;
599
- url: z.ZodString;
600
- urlWs: z.ZodOptional<z.ZodString>;
601
- }, z.core.$strip>>>;
602
- programLabels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
603
- coingecko: z.ZodOptional<z.ZodObject<{
604
- apiKey: z.ZodOptional<z.ZodString>;
605
- isPro: z.ZodOptional<z.ZodBoolean>;
606
- maxRetries: z.ZodOptional<z.ZodNumber>;
607
- baseDelay: z.ZodOptional<z.ZodNumber>;
608
- maxTimeout: z.ZodOptional<z.ZodNumber>;
609
- }, z.core.$strict>>;
610
- onError: z.ZodOptional<z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>>;
611
- }, z.core.$strip>;
612
- type DefaultConfigOptionsInput = z.input<typeof defaultConfigOptionsSchema>;
613
- /**
614
- * Validate configuration options and return a result with helpful errors
615
- *
616
- * @example
617
- * ```ts
618
- * const result = validateConfigOptions({
619
- * appName: 'My App',
620
- * network: 'mainnet',
621
- * });
622
- *
623
- * if (!result.success) {
624
- * console.error('Config validation failed:', result.error.format());
625
- * }
626
- * ```
627
- */
628
- declare function validateConfigOptions(options: unknown): z.ZodSafeParseResult<DefaultConfigOptionsInput>;
629
- /**
630
- * Parse and validate config options, throwing on error with formatted message
631
- *
632
- * @throws {z.ZodError} If validation fails
633
- *
634
- * @example
635
- * ```ts
636
- * try {
637
- * const validOptions = parseConfigOptions(userInput);
638
- * // validOptions is typed and validated
639
- * } catch (error) {
640
- * if (error instanceof z.ZodError) {
641
- * console.error(error.format());
642
- * }
643
- * }
644
- * ```
645
- */
646
- declare function parseConfigOptions(options: unknown): DefaultConfigOptionsInput;
647
-
648
667
  /**
649
668
  * Enhanced Storage
650
669
  */
@@ -689,6 +708,104 @@ declare class EnhancedStorageAdapter<T> implements StorageAdapter<T> {
689
708
  onError(handler: (error: Error) => void): this;
690
709
  }
691
710
 
711
+ /**
712
+ * WalletConnect Wallet Standard Shim
713
+ *
714
+ * Creates a Wallet Standard-compatible wallet that proxies all operations
715
+ * to WalletConnect Solana JSON-RPC methods.
716
+ *
717
+ * @see https://docs.walletconnect.network/wallet-sdk/chain-support/solana
718
+ */
719
+
720
+ /**
721
+ * Create a Wallet Standard-compatible wallet that uses WalletConnect
722
+ */
723
+ declare function createWalletConnectWallet(config: WalletConnectConfig, transport: WalletConnectTransport): Wallet;
724
+
725
+ /**
726
+ * WalletConnect Universal Provider Adapter
727
+ *
728
+ * Provides a thin adapter around @walletconnect/universal-provider that:
729
+ * - Lazily imports the provider (optional dependency)
730
+ * - Handles display_uri events and forwards to onDisplayUri callback
731
+ * - Implements the WalletConnectTransport interface
732
+ *
733
+ * @see https://docs.walletconnect.network/wallet-sdk/chain-support/solana
734
+ */
735
+
736
+ /**
737
+ * Create a WalletConnect transport adapter
738
+ *
739
+ * This adapter lazily loads @walletconnect/universal-provider and implements
740
+ * the WalletConnectTransport interface for use with the WalletConnect wallet shim.
741
+ */
742
+ declare function createWalletConnectTransport(config: WalletConnectConfig): Promise<WalletConnectTransport>;
743
+ /**
744
+ * Create a mock transport for testing purposes
745
+ *
746
+ * This allows testing the WalletConnect wallet shim without actual WalletConnect
747
+ * network dependencies.
748
+ */
749
+ declare function createMockWalletConnectTransport(mockImplementation?: Partial<WalletConnectTransport>): WalletConnectTransport;
750
+
751
+ /**
752
+ * WalletConnect Registration Helper
753
+ *
754
+ * Registers the WalletConnect wallet shim into the Wallet Standard registry,
755
+ * making it available to ConnectorKit's wallet detection system.
756
+ */
757
+
758
+ /**
759
+ * Result of registering the WalletConnect wallet
760
+ */
761
+ interface WalletConnectRegistration {
762
+ /** The registered wallet instance */
763
+ wallet: Wallet;
764
+ /** Function to unregister the wallet from the registry */
765
+ unregister: () => void;
766
+ }
767
+ /**
768
+ * Register a WalletConnect wallet into the Wallet Standard registry
769
+ *
770
+ * This function:
771
+ * 1. Creates a WalletConnect transport adapter
772
+ * 2. Creates a Wallet Standard-compatible wallet shim
773
+ * 3. Registers the wallet with the Wallet Standard registry
774
+ *
775
+ * The wallet will appear in ConnectorKit's wallet list as "WalletConnect"
776
+ * and can be selected like any other wallet.
777
+ *
778
+ * @param config - WalletConnect configuration
779
+ * @returns Registration result with wallet and unregister function
780
+ *
781
+ * @example
782
+ * ```typescript
783
+ * const { wallet, unregister } = await registerWalletConnectWallet({
784
+ * projectId: 'your-project-id',
785
+ * metadata: {
786
+ * name: 'My App',
787
+ * description: 'My Solana App',
788
+ * url: 'https://myapp.com',
789
+ * icons: ['https://myapp.com/icon.png'],
790
+ * },
791
+ * onDisplayUri: (uri) => {
792
+ * // Show QR code with this URI
793
+ * },
794
+ * });
795
+ *
796
+ * // Later, to remove from registry:
797
+ * unregister();
798
+ * ```
799
+ */
800
+ declare function registerWalletConnectWallet(config: WalletConnectConfig): Promise<WalletConnectRegistration>;
801
+ /**
802
+ * Check if WalletConnect dependencies are available
803
+ *
804
+ * This function checks if @walletconnect/universal-provider can be imported.
805
+ * Useful for conditionally showing WalletConnect options in UI.
806
+ */
807
+ declare function isWalletConnectAvailable(): Promise<boolean>;
808
+
692
809
  /**
693
810
  * @solana/connector - Kit Transaction Signer Adapter
694
811
  *
@@ -1028,4 +1145,4 @@ declare function formatSignature(signature: string, chars?: number): string;
1028
1145
  */
1029
1146
  declare function copySignature(signature: string): Promise<boolean>;
1030
1147
 
1031
- export { ClusterType, type Commitment, type DualConnection, EnhancedStorage, EnhancedStorageAccountOptions, EnhancedStorageAdapter, EnhancedStorageClusterOptions, EnhancedStorageWalletOptions, type ExplorerOptions, type ExplorerType, type Failure, type GetExplorerLinkArgs, type KitSignersFromWallet, LAMPORTS_PER_SOL, PUBLIC_RPC_ENDPOINTS, type PrepareTransactionConfig, type Result, SOLANA_CHAIN_IDS, type SolanaNetwork, StorageAdapter, StorageOptions, type Success, TransactionSigner, base58ToSignatureBytes, chainIdToClusterId, chainIdToClusterType, clusterToChainId, copySignature, createEnhancedStorageAccount, createEnhancedStorageCluster, createEnhancedStorageWallet, createGillTransactionSigner, createKitSignersFromWallet, createKitTransactionSigner, createMessageSignerFromWallet, createTransactionSendingSignerFromWallet, detectMessageModification, formatAddress, formatBigIntBalance, formatBigIntUsd, formatLamportsToSolSafe, formatNumber, formatSOL, formatSignature, formatTokenAmount, formatTokenBalanceSafe, freezeSigner, getAllExplorerUrls, getChainIdFromCluster, getChainIdFromClusterId, getChainIdFromClusterType, getChainIdFromConnection, getClusterIdFromChainId, getClusterTypeFromChainId, getClusterTypeFromConnection, getDefaultRpcUrl, getExplorerLink, getLatestBlockhash, getNetworkDisplayName, getPolyfillStatus, getSolanaExplorerUrl, getSolanaFmUrl, getSolscanUrl, getXrayUrl, installPolyfills, isCryptoAvailable, isDevnet, isFailure, isKitConnection, isKnownSolanaChain, isLegacyConnection, isLocalnet, isMainnet, isPolyfillInstalled, isSolanaChain, isSuccess, isTestnet, lamportsToSol, normalizeNetwork, parseConfigOptions, prepareTransaction, sendRawTransaction, signatureBytesToBase58, solToLamports, toClusterId, truncate, tryCatch, tryCatchSync, updateSignatureDictionary, validateConfigOptions, validateKnownSolanaChain };
1148
+ export { ClusterType, type Commitment, type DualConnection, EnhancedStorage, EnhancedStorageAccountOptions, EnhancedStorageAdapter, EnhancedStorageClusterOptions, EnhancedStorageWalletOptions, type ExplorerOptions, type ExplorerType, type Failure, type GetExplorerLinkArgs, type KitSignersFromWallet, LAMPORTS_PER_SOL, PUBLIC_RPC_ENDPOINTS, type PrepareTransactionConfig, type Result, SOLANA_CHAIN_IDS, type SolanaNetwork, StorageAdapter, StorageOptions, type Success, TransactionSigner, WalletConnectConfig, type WalletConnectRegistration, WalletConnectTransport, base58ToSignatureBytes, chainIdToClusterId, chainIdToClusterType, clusterToChainId, copySignature, createEnhancedStorageAccount, createEnhancedStorageCluster, createEnhancedStorageWallet, createGillTransactionSigner, createKitSignersFromWallet, createKitTransactionSigner, createMessageSignerFromWallet, createMockWalletConnectTransport, createTransactionSendingSignerFromWallet, createWalletConnectTransport, createWalletConnectWallet, detectMessageModification, formatAddress, formatBigIntBalance, formatBigIntUsd, formatLamportsToSolSafe, formatNumber, formatSOL, formatSignature, formatTokenAmount, formatTokenBalanceSafe, freezeSigner, getAllExplorerUrls, getChainIdFromCluster, getChainIdFromClusterId, getChainIdFromClusterType, getChainIdFromConnection, getClusterIdFromChainId, getClusterTypeFromChainId, getClusterTypeFromConnection, getDefaultRpcUrl, getExplorerLink, getLatestBlockhash, getNetworkDisplayName, getPolyfillStatus, getSolanaExplorerUrl, getSolanaFmUrl, getSolscanUrl, getXrayUrl, installPolyfills, isCryptoAvailable, isDevnet, isFailure, isKitConnection, isKnownSolanaChain, isLegacyConnection, isLocalnet, isMainnet, isPolyfillInstalled, isSolanaChain, isSuccess, isTestnet, isWalletConnectAvailable, lamportsToSol, normalizeNetwork, parseConfigOptions, prepareTransaction, registerWalletConnectWallet, sendRawTransaction, signatureBytesToBase58, solToLamports, toClusterId, truncate, tryCatch, tryCatchSync, updateSignatureDictionary, validateConfigOptions, validateKnownSolanaChain };