@dynamic-labs-sdk/solana 0.1.1 → 0.2.3

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 (198) hide show
  1. package/dist/SolanaNetworkProvider.types.d.ts.map +1 -0
  2. package/dist/SolanaWalletAccount.types.d.ts.map +1 -0
  3. package/dist/SolanaWalletProvider.types.d.ts.map +1 -0
  4. package/{src → dist}/addSolanaExtension/addSolanaExtension.d.ts +1 -1
  5. package/dist/addSolanaExtension/addSolanaExtension.d.ts.map +1 -0
  6. package/dist/addSolanaExtension/index.d.ts.map +1 -0
  7. package/dist/addSolanaWalletStandardExtension-BToyMUc9.cjs.js +231 -0
  8. package/dist/addSolanaWalletStandardExtension-BToyMUc9.cjs.js.map +1 -0
  9. package/dist/addSolanaWalletStandardExtension-nZhmVofg.esm.js +192 -0
  10. package/dist/addSolanaWalletStandardExtension-nZhmVofg.esm.js.map +1 -0
  11. package/dist/addWaasSolanaExtension-CUJHPuv5.esm.js +145 -0
  12. package/dist/addWaasSolanaExtension-CUJHPuv5.esm.js.map +1 -0
  13. package/dist/addWaasSolanaExtension-DB0ZNIuG.cjs.js +157 -0
  14. package/dist/addWaasSolanaExtension-DB0ZNIuG.cjs.js.map +1 -0
  15. package/dist/errors/NotSolanaProviderError/NotSolanaProviderError.d.ts.map +1 -0
  16. package/dist/errors/NotSolanaProviderError/index.d.ts.map +1 -0
  17. package/dist/exports/index.d.ts.map +1 -0
  18. package/dist/exports/waas.d.ts.map +1 -0
  19. package/dist/exports/walletStandard.d.ts.map +1 -0
  20. package/dist/getSolanaConnection/getSolanaConnection.d.ts.map +1 -0
  21. package/dist/getSolanaConnection/index.d.ts.map +1 -0
  22. package/dist/index.cjs.js +132 -0
  23. package/dist/index.cjs.js.map +1 -0
  24. package/dist/index.esm.js +125 -0
  25. package/dist/index.esm.js.map +1 -0
  26. package/dist/isSolanaNetworkProvider/index.d.ts.map +1 -0
  27. package/dist/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts.map +1 -0
  28. package/dist/isSolanaWalletAccount/index.d.ts.map +1 -0
  29. package/dist/isSolanaWalletAccount/isSolanaWalletAccount.d.ts.map +1 -0
  30. package/dist/isSolanaWalletProvider/index.d.ts.map +1 -0
  31. package/dist/isSolanaWalletProvider/isSolanaWalletProvider.d.ts.map +1 -0
  32. package/dist/isVersionedTransaction-B-yrMKci.esm.js +48 -0
  33. package/dist/isVersionedTransaction-B-yrMKci.esm.js.map +1 -0
  34. package/dist/isVersionedTransaction-BAaz3ONI.cjs.js +72 -0
  35. package/dist/isVersionedTransaction-BAaz3ONI.cjs.js.map +1 -0
  36. package/dist/registerSolanaNetworkProviderBuilder/index.d.ts.map +1 -0
  37. package/dist/registerSolanaNetworkProviderBuilder/registerSolanaNetworkProviderBuilder.d.ts.map +1 -0
  38. package/dist/signAllTransactions/index.d.ts.map +1 -0
  39. package/{src → dist}/signAllTransactions/signAllTransactions.d.ts +1 -1
  40. package/dist/signAllTransactions/signAllTransactions.d.ts.map +1 -0
  41. package/dist/signAndSendTransaction/index.d.ts.map +1 -0
  42. package/{src → dist}/signAndSendTransaction/signAndSendTransaction.d.ts +1 -1
  43. package/dist/signAndSendTransaction/signAndSendTransaction.d.ts.map +1 -0
  44. package/dist/signTransaction/index.d.ts.map +1 -0
  45. package/{src → dist}/signTransaction/signTransaction.d.ts +1 -1
  46. package/dist/signTransaction/signTransaction.d.ts.map +1 -0
  47. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  48. package/dist/utils/createEmptyEventEmitter/createEmptyEventEmitter.d.ts.map +1 -0
  49. package/dist/utils/createEmptyEventEmitter/index.d.ts.map +1 -0
  50. package/dist/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.d.ts.map +1 -0
  51. package/dist/utils/createSolanaNetworkProvider/index.d.ts.map +1 -0
  52. package/dist/utils/fetchSolBalance/fetchSolBalance.d.ts.map +1 -0
  53. package/dist/utils/fetchSolBalance/index.d.ts.map +1 -0
  54. package/dist/utils/isVersionedTransaction/index.d.ts.map +1 -0
  55. package/dist/utils/isVersionedTransaction/isVersionedTransaction.d.ts.map +1 -0
  56. package/dist/waas/WaasSolanaWalletProvider.types.d.ts.map +1 -0
  57. package/{src → dist}/waas/addWaasSolanaExtension/addWaasSolanaExtension.d.ts +1 -1
  58. package/dist/waas/addWaasSolanaExtension/addWaasSolanaExtension.d.ts.map +1 -0
  59. package/dist/waas/addWaasSolanaExtension/index.d.ts.map +1 -0
  60. package/dist/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts.map +1 -0
  61. package/dist/waas/utils/createWalletProviderForWaasSolana/index.d.ts.map +1 -0
  62. package/dist/waas.cjs.js +11 -0
  63. package/dist/waas.cjs.js.map +1 -0
  64. package/dist/waas.esm.js +10 -0
  65. package/dist/waas.esm.js.map +1 -0
  66. package/{src → dist}/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.d.ts +1 -1
  67. package/dist/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.d.ts.map +1 -0
  68. package/dist/walletStandard/addSolanaWalletStandardExtension/index.d.ts.map +1 -0
  69. package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.d.ts.map +1 -0
  70. package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/getActiveNetworkId.d.ts.map +1 -0
  71. package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/index.d.ts.map +1 -0
  72. package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/index.d.ts.map +1 -0
  73. package/dist/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts.map +1 -0
  74. package/dist/walletStandard/utils/getActiveNetworkCluster/index.d.ts.map +1 -0
  75. package/{src → dist}/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.d.ts +1 -1
  76. package/dist/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.d.ts.map +1 -0
  77. package/dist/walletStandard/utils/getFeaturesForSolanaStandardWallet/index.d.ts.map +1 -0
  78. package/dist/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.d.ts.map +1 -0
  79. package/dist/walletStandard/utils/hasAllRequiredFeatures/index.d.ts.map +1 -0
  80. package/dist/walletStandard.cjs.js +10 -0
  81. package/dist/walletStandard.cjs.js.map +1 -0
  82. package/dist/walletStandard.esm.js +10 -0
  83. package/dist/walletStandard.esm.js.map +1 -0
  84. package/package.json +31 -17
  85. package/CHANGELOG.md +0 -600
  86. package/addSolanaWalletStandardExtension.cjs.js +0 -268
  87. package/addSolanaWalletStandardExtension.esm.js +0 -266
  88. package/addWaasSolanaExtension.cjs.js +0 -163
  89. package/addWaasSolanaExtension.esm.js +0 -160
  90. package/index.cjs.d.ts +0 -1
  91. package/index.cjs.js +0 -131
  92. package/index.esm.d.ts +0 -1
  93. package/index.esm.js +0 -123
  94. package/isVersionedTransaction.cjs.js +0 -64
  95. package/isVersionedTransaction.esm.js +0 -58
  96. package/src/SolanaNetworkProvider.types.d.ts.map +0 -1
  97. package/src/SolanaWalletAccount.types.d.ts.map +0 -1
  98. package/src/SolanaWalletProvider.types.d.ts.map +0 -1
  99. package/src/addSolanaExtension/addSolanaExtension.d.ts.map +0 -1
  100. package/src/addSolanaExtension/index.d.ts.map +0 -1
  101. package/src/errors/NotSolanaProviderError/NotSolanaProviderError.d.ts.map +0 -1
  102. package/src/errors/NotSolanaProviderError/index.d.ts.map +0 -1
  103. package/src/exports/index.d.ts.map +0 -1
  104. package/src/exports/waas.d.ts.map +0 -1
  105. package/src/exports/walletStandard.d.ts.map +0 -1
  106. package/src/getSolanaConnection/getSolanaConnection.d.ts.map +0 -1
  107. package/src/getSolanaConnection/index.d.ts.map +0 -1
  108. package/src/isSolanaNetworkProvider/index.d.ts.map +0 -1
  109. package/src/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts.map +0 -1
  110. package/src/isSolanaWalletAccount/index.d.ts.map +0 -1
  111. package/src/isSolanaWalletAccount/isSolanaWalletAccount.d.ts.map +0 -1
  112. package/src/isSolanaWalletProvider/index.d.ts.map +0 -1
  113. package/src/isSolanaWalletProvider/isSolanaWalletProvider.d.ts.map +0 -1
  114. package/src/registerSolanaNetworkProviderBuilder/index.d.ts.map +0 -1
  115. package/src/registerSolanaNetworkProviderBuilder/registerSolanaNetworkProviderBuilder.d.ts.map +0 -1
  116. package/src/signAllTransactions/index.d.ts.map +0 -1
  117. package/src/signAllTransactions/signAllTransactions.d.ts.map +0 -1
  118. package/src/signAndSendTransaction/index.d.ts.map +0 -1
  119. package/src/signAndSendTransaction/signAndSendTransaction.d.ts.map +0 -1
  120. package/src/signTransaction/index.d.ts.map +0 -1
  121. package/src/signTransaction/signTransaction.d.ts.map +0 -1
  122. package/src/utils/createEmptyEventEmitter/createEmptyEventEmitter.d.ts.map +0 -1
  123. package/src/utils/createEmptyEventEmitter/index.d.ts.map +0 -1
  124. package/src/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.d.ts.map +0 -1
  125. package/src/utils/createSolanaNetworkProvider/index.d.ts.map +0 -1
  126. package/src/utils/fetchSolBalance/fetchSolBalance.d.ts.map +0 -1
  127. package/src/utils/fetchSolBalance/index.d.ts.map +0 -1
  128. package/src/utils/isVersionedTransaction/index.d.ts.map +0 -1
  129. package/src/utils/isVersionedTransaction/isVersionedTransaction.d.ts.map +0 -1
  130. package/src/waas/WaasSolanaWalletProvider.types.d.ts.map +0 -1
  131. package/src/waas/addWaasSolanaExtension/addWaasSolanaExtension.d.ts.map +0 -1
  132. package/src/waas/addWaasSolanaExtension/index.d.ts.map +0 -1
  133. package/src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts.map +0 -1
  134. package/src/waas/utils/createWalletProviderForWaasSolana/index.d.ts.map +0 -1
  135. package/src/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.d.ts.map +0 -1
  136. package/src/walletStandard/addSolanaWalletStandardExtension/index.d.ts.map +0 -1
  137. package/src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.d.ts.map +0 -1
  138. package/src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/getActiveNetworkId.d.ts.map +0 -1
  139. package/src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/index.d.ts.map +0 -1
  140. package/src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/index.d.ts.map +0 -1
  141. package/src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts.map +0 -1
  142. package/src/walletStandard/utils/getActiveNetworkCluster/index.d.ts.map +0 -1
  143. package/src/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.d.ts.map +0 -1
  144. package/src/walletStandard/utils/getFeaturesForSolanaStandardWallet/index.d.ts.map +0 -1
  145. package/src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.d.ts.map +0 -1
  146. package/src/walletStandard/utils/hasAllRequiredFeatures/index.d.ts.map +0 -1
  147. package/waas.cjs.d.ts +0 -1
  148. package/waas.cjs.js +0 -14
  149. package/waas.esm.d.ts +0 -1
  150. package/waas.esm.js +0 -10
  151. package/walletStandard.cjs.d.ts +0 -1
  152. package/walletStandard.cjs.js +0 -15
  153. package/walletStandard.esm.d.ts +0 -1
  154. package/walletStandard.esm.js +0 -11
  155. /package/{src → dist}/SolanaNetworkProvider.types.d.ts +0 -0
  156. /package/{src → dist}/SolanaWalletAccount.types.d.ts +0 -0
  157. /package/{src → dist}/SolanaWalletProvider.types.d.ts +0 -0
  158. /package/{src → dist}/addSolanaExtension/index.d.ts +0 -0
  159. /package/{src → dist}/errors/NotSolanaProviderError/NotSolanaProviderError.d.ts +0 -0
  160. /package/{src → dist}/errors/NotSolanaProviderError/index.d.ts +0 -0
  161. /package/{src → dist}/exports/index.d.ts +0 -0
  162. /package/{src → dist}/exports/waas.d.ts +0 -0
  163. /package/{src → dist}/exports/walletStandard.d.ts +0 -0
  164. /package/{src → dist}/getSolanaConnection/getSolanaConnection.d.ts +0 -0
  165. /package/{src → dist}/getSolanaConnection/index.d.ts +0 -0
  166. /package/{src → dist}/isSolanaNetworkProvider/index.d.ts +0 -0
  167. /package/{src → dist}/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts +0 -0
  168. /package/{src → dist}/isSolanaWalletAccount/index.d.ts +0 -0
  169. /package/{src → dist}/isSolanaWalletAccount/isSolanaWalletAccount.d.ts +0 -0
  170. /package/{src → dist}/isSolanaWalletProvider/index.d.ts +0 -0
  171. /package/{src → dist}/isSolanaWalletProvider/isSolanaWalletProvider.d.ts +0 -0
  172. /package/{src → dist}/registerSolanaNetworkProviderBuilder/index.d.ts +0 -0
  173. /package/{src → dist}/registerSolanaNetworkProviderBuilder/registerSolanaNetworkProviderBuilder.d.ts +0 -0
  174. /package/{src → dist}/signAllTransactions/index.d.ts +0 -0
  175. /package/{src → dist}/signAndSendTransaction/index.d.ts +0 -0
  176. /package/{src → dist}/signTransaction/index.d.ts +0 -0
  177. /package/{src → dist}/utils/createEmptyEventEmitter/createEmptyEventEmitter.d.ts +0 -0
  178. /package/{src → dist}/utils/createEmptyEventEmitter/index.d.ts +0 -0
  179. /package/{src → dist}/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.d.ts +0 -0
  180. /package/{src → dist}/utils/createSolanaNetworkProvider/index.d.ts +0 -0
  181. /package/{src → dist}/utils/fetchSolBalance/fetchSolBalance.d.ts +0 -0
  182. /package/{src → dist}/utils/fetchSolBalance/index.d.ts +0 -0
  183. /package/{src → dist}/utils/isVersionedTransaction/index.d.ts +0 -0
  184. /package/{src → dist}/utils/isVersionedTransaction/isVersionedTransaction.d.ts +0 -0
  185. /package/{src → dist}/waas/WaasSolanaWalletProvider.types.d.ts +0 -0
  186. /package/{src → dist}/waas/addWaasSolanaExtension/index.d.ts +0 -0
  187. /package/{src → dist}/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts +0 -0
  188. /package/{src → dist}/waas/utils/createWalletProviderForWaasSolana/index.d.ts +0 -0
  189. /package/{src → dist}/walletStandard/addSolanaWalletStandardExtension/index.d.ts +0 -0
  190. /package/{src → dist}/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.d.ts +0 -0
  191. /package/{src → dist}/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/getActiveNetworkId.d.ts +0 -0
  192. /package/{src → dist}/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/index.d.ts +0 -0
  193. /package/{src → dist}/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/index.d.ts +0 -0
  194. /package/{src → dist}/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts +0 -0
  195. /package/{src → dist}/walletStandard/utils/getActiveNetworkCluster/index.d.ts +0 -0
  196. /package/{src → dist}/walletStandard/utils/getFeaturesForSolanaStandardWallet/index.d.ts +0 -0
  197. /package/{src → dist}/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.d.ts +0 -0
  198. /package/{src → dist}/walletStandard/utils/hasAllRequiredFeatures/index.d.ts +0 -0
@@ -0,0 +1,145 @@
1
+ import { n as registerSolanaNetworkProviderBuilder, t as isVersionedTransaction } from "./isVersionedTransaction-B-yrMKci.esm.js";
2
+ import { WalletProviderPriority, assertDefined, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getBuffer, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
3
+ import { Connection, PublicKey } from "@solana/web3.js";
4
+ import { getActiveNetworkData } from "@dynamic-labs-sdk/client";
5
+ import { DYNAMIC_WAAS_METADATA, createWaasProvider, getAllUserWaasAddressesForChain } from "@dynamic-labs-sdk/client/waas/core";
6
+ import { WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
7
+
8
+ //#region src/getSolanaConnection/getSolanaConnection.ts
9
+ /**
10
+ * Returns a new Solana connection for the given network provider.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import { getActiveNetworkData } from '@dynamic-labs-sdk/client';
15
+ * import { isSolanaNetworkProvider, getSolanaConnection } from '@dynamic-labs-sdk/solana';
16
+ *
17
+ * const { networkData } = getActiveNetworkData({ walletAccount });
18
+ *
19
+ * if(!networkData) {
20
+ * throw new Error('No network data found');
21
+ * }
22
+ *
23
+ * const connection = getSolanaConnection({
24
+ * networkData,
25
+ * });
26
+ * ```
27
+ */
28
+ const getSolanaConnection = ({ networkData, commitmentOrConfig }) => {
29
+ return new Connection(networkData.rpcUrls.http[0], commitmentOrConfig);
30
+ };
31
+
32
+ //#endregion
33
+ //#region src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.ts
34
+ const createWalletProviderForWaasSolana = (sdkClient) => {
35
+ const chain = "SOL";
36
+ const walletProviderType = WalletProviderEnum.EmbeddedWallet;
37
+ const key = formatWalletProviderKey({
38
+ chain,
39
+ displayName: DYNAMIC_WAAS_METADATA.displayName,
40
+ walletProviderType
41
+ });
42
+ const waasProvider = createWaasProvider({
43
+ chain,
44
+ sdkClient
45
+ });
46
+ const getActiveNetworkId = async () => getActiveNetworkIdFromLastKnownRegistry({
47
+ client: sdkClient,
48
+ walletProviderKey: key
49
+ });
50
+ const switchActiveNetwork = async ({ networkId }) => switchActiveNetworkInLastKnownRegistry({
51
+ client: sdkClient,
52
+ networkId,
53
+ walletProviderKey: key
54
+ });
55
+ const getConnectedAddresses = async () => {
56
+ return { addresses: getAllUserWaasAddressesForChain({ chain }, sdkClient) };
57
+ };
58
+ const signAndSendTransaction = async ({ transaction, walletAccount }) => {
59
+ const { signedTransaction } = await signTransaction({
60
+ transaction,
61
+ walletAccount
62
+ });
63
+ const { networkData } = await getActiveNetworkData({ walletAccount }, sdkClient);
64
+ assertDefined(networkData, "Network data is required");
65
+ const connection = getSolanaConnection({ networkData });
66
+ const rawTransaction = signedTransaction.serialize();
67
+ return { signature: await connection.sendRawTransaction(rawTransaction) };
68
+ };
69
+ const signTransaction = async ({ transaction, walletAccount }) => {
70
+ const messageBytes = isVersionedTransaction(transaction) ? transaction.message.serialize() : transaction.serializeMessage();
71
+ const serializedTransaction = getBuffer().from(messageBytes).toString("hex");
72
+ const { signature } = await waasProvider.signSerializedTransaction({
73
+ serializedTransaction,
74
+ walletAccount
75
+ });
76
+ const publicKey = new PublicKey(walletAccount.address);
77
+ transaction.addSignature(publicKey, getBuffer().from(signature, "hex"));
78
+ transaction.serialize({
79
+ requireAllSignatures: false,
80
+ verifySignatures: true
81
+ });
82
+ return { signedTransaction: transaction };
83
+ };
84
+ const signAllTransactions = async ({ transactions, walletAccount }) => {
85
+ return { signedTransactions: await Promise.all(transactions.map(async (transaction) => {
86
+ const { signedTransaction } = await signTransaction({
87
+ transaction,
88
+ walletAccount
89
+ });
90
+ return signedTransaction;
91
+ })) };
92
+ };
93
+ const signMessage = async ({ message, walletAccount }) => {
94
+ assertDefined(walletAccount, "Wallet account is required");
95
+ return waasProvider.signMessage({
96
+ message,
97
+ walletAccount
98
+ });
99
+ };
100
+ return {
101
+ ...waasProvider,
102
+ chain,
103
+ getActiveNetworkId,
104
+ getConnectedAddresses,
105
+ groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),
106
+ key,
107
+ metadata: {
108
+ displayName: DYNAMIC_WAAS_METADATA.displayName,
109
+ icon: DYNAMIC_WAAS_METADATA.icon
110
+ },
111
+ signAllTransactions,
112
+ signAndSendTransaction,
113
+ signMessage,
114
+ signTransaction,
115
+ switchActiveNetwork,
116
+ walletProviderType
117
+ };
118
+ };
119
+
120
+ //#endregion
121
+ //#region src/waas/addWaasSolanaExtension/addWaasSolanaExtension.ts
122
+ const WAAS_SOLANA_EXTENSION_KEY = "waasSolana";
123
+ /**
124
+ * Adds the Dynamic WaaS (Wallet as a Service) Solana extension to the Dynamic client.
125
+ *
126
+ * This extension enables embedded wallet functionality for Solana blockchain,
127
+ * allowing users to have wallets managed by Dynamic's infrastructure.
128
+ *
129
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
130
+ */
131
+ const addWaasSolanaExtension = (client = getDefaultClient()) => {
132
+ if (hasExtension({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client)) return;
133
+ registerExtension({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client);
134
+ registerSolanaNetworkProviderBuilder(client);
135
+ const walletProviderRegistry = getWalletProviderRegistry(client);
136
+ const walletProvider = createWalletProviderForWaasSolana(client);
137
+ walletProviderRegistry.register({
138
+ priority: WalletProviderPriority.WALLET_SDK,
139
+ walletProvider
140
+ });
141
+ };
142
+
143
+ //#endregion
144
+ export { getSolanaConnection as n, addWaasSolanaExtension as t };
145
+ //# sourceMappingURL=addWaasSolanaExtension-CUJHPuv5.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasSolanaExtension-CUJHPuv5.esm.js","names":["chain: Chain","getActiveNetworkId: WaasSolanaWalletProvider['getActiveNetworkId']","switchActiveNetwork: WaasSolanaWalletProvider['switchActiveNetwork']","getConnectedAddresses: WaasSolanaWalletProvider['getConnectedAddresses']","signAndSendTransaction: WaasSolanaWalletProvider['signAndSendTransaction']","signTransaction: WaasSolanaWalletProvider['signTransaction']","signAllTransactions: WaasSolanaWalletProvider['signAllTransactions']","signMessage: WaasSolanaWalletProvider['signMessage']"],"sources":["../src/getSolanaConnection/getSolanaConnection.ts","../src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.ts","../src/waas/addWaasSolanaExtension/addWaasSolanaExtension.ts"],"sourcesContent":["import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type { Commitment, ConnectionConfig } from '@solana/web3.js';\nimport { Connection } from '@solana/web3.js';\n\ntype GetSolanaConnectionOptions = {\n commitmentOrConfig?: Commitment | ConnectionConfig;\n networkData: NetworkData;\n};\n\n/**\n * Returns a new Solana connection for the given network provider.\n *\n * @example\n * ```ts\n * import { getActiveNetworkData } from '@dynamic-labs-sdk/client';\n * import { isSolanaNetworkProvider, getSolanaConnection } from '@dynamic-labs-sdk/solana';\n *\n * const { networkData } = getActiveNetworkData({ walletAccount });\n *\n * if(!networkData) {\n * throw new Error('No network data found');\n * }\n *\n * const connection = getSolanaConnection({\n * networkData,\n * });\n * ```\n */\nexport const getSolanaConnection = ({\n networkData,\n commitmentOrConfig,\n}: GetSolanaConnectionOptions) => {\n return new Connection(networkData.rpcUrls.http[0], commitmentOrConfig);\n};\n","import {\n type Chain,\n type DynamicClient,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n getBuffer,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { PublicKey } from '@solana/web3.js';\n\nimport { getSolanaConnection } from '../../../getSolanaConnection';\nimport { isVersionedTransaction } from '../../../utils/isVersionedTransaction';\nimport type { WaasSolanaWalletProvider } from '../../WaasSolanaWalletProvider.types';\n\nexport const createWalletProviderForWaasSolana = (\n sdkClient: DynamicClient\n): WaasSolanaWalletProvider => {\n const chain: Chain = 'SOL';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({ chain, sdkClient });\n\n const getActiveNetworkId: WaasSolanaWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: sdkClient,\n walletProviderKey: key,\n });\n\n const switchActiveNetwork: WaasSolanaWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: sdkClient,\n networkId,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasSolanaWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasSolanaAddresses = getAllUserWaasAddressesForChain(\n { chain },\n sdkClient\n );\n\n return {\n addresses: waasSolanaAddresses,\n };\n };\n\n const signAndSendTransaction: WaasSolanaWalletProvider['signAndSendTransaction'] =\n async ({ transaction, walletAccount }) => {\n const { signedTransaction } = await signTransaction({\n transaction,\n walletAccount,\n });\n\n const { networkData } = await getActiveNetworkData(\n { walletAccount },\n sdkClient\n );\n\n assertDefined(networkData, 'Network data is required');\n\n const connection = getSolanaConnection({ networkData });\n\n const rawTransaction = signedTransaction.serialize();\n\n const signature = await connection.sendRawTransaction(rawTransaction);\n\n return { signature };\n };\n\n const signTransaction: WaasSolanaWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const messageBytes = isVersionedTransaction(transaction)\n ? transaction.message.serialize()\n : transaction.serializeMessage();\n\n const serializedTransaction = getBuffer()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .from(messageBytes as any)\n .toString('hex');\n\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction,\n walletAccount,\n });\n\n const publicKey = new PublicKey(walletAccount.address);\n\n transaction.addSignature(\n publicKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getBuffer().from(signature, 'hex') as any\n );\n\n transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: true,\n });\n\n return { signedTransaction: transaction };\n };\n\n const signAllTransactions: WaasSolanaWalletProvider['signAllTransactions'] =\n async ({ transactions, walletAccount }) => {\n const signedTransactions = await Promise.all(\n transactions.map(async (transaction) => {\n const { signedTransaction } = await signTransaction({\n transaction,\n walletAccount,\n });\n\n return signedTransaction;\n })\n );\n\n return { signedTransactions };\n };\n\n const signMessage: WaasSolanaWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({ message, walletAccount });\n };\n\n return {\n ...waasProvider,\n chain,\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signAllTransactions,\n signAndSendTransaction,\n signMessage,\n signTransaction,\n switchActiveNetwork,\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerSolanaNetworkProviderBuilder } from '../../registerSolanaNetworkProviderBuilder';\nimport { createWalletProviderForWaasSolana } from '../utils/createWalletProviderForWaasSolana';\n\nexport const WAAS_SOLANA_EXTENSION_KEY = 'waasSolana';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) Solana extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for Solana blockchain,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addWaasSolanaExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client);\n registerSolanaNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasSolana(client);\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAa,uBAAuB,EAClC,aACA,yBACgC;AAChC,QAAO,IAAI,WAAW,YAAY,QAAQ,KAAK,IAAI,mBAAmB;;;;;ACPxE,MAAa,qCACX,cAC6B;CAC7B,MAAMA,QAAe;CAErB,MAAM,qBAAqB,mBAAmB;CAE9C,MAAM,MAAM,wBAAwB;EAClC;EACA,aAAa,sBAAsB;EACnC;EACD,CAAC;CAEF,MAAM,eAAe,mBAAmB;EAAE;EAAO;EAAW,CAAC;CAE7D,MAAMC,qBACJ,YACE,wCAAwC;EACtC,QAAQ;EACR,mBAAmB;EACpB,CAAC;CAEN,MAAMC,sBACJ,OAAO,EAAE,gBACP,uCAAuC;EACrC,QAAQ;EACR;EACA,mBAAmB;EACpB,CAAC;CAEN,MAAMC,wBACJ,YAAY;AAMV,SAAO,EACL,WAN0B,gCAC1B,EAAE,OAAO,EACT,UACD,EAIA;;CAGL,MAAMC,yBACJ,OAAO,EAAE,aAAa,oBAAoB;EACxC,MAAM,EAAE,sBAAsB,MAAM,gBAAgB;GAClD;GACA;GACD,CAAC;EAEF,MAAM,EAAE,gBAAgB,MAAM,qBAC5B,EAAE,eAAe,EACjB,UACD;AAED,gBAAc,aAAa,2BAA2B;EAEtD,MAAM,aAAa,oBAAoB,EAAE,aAAa,CAAC;EAEvD,MAAM,iBAAiB,kBAAkB,WAAW;AAIpD,SAAO,EAAE,WAFS,MAAM,WAAW,mBAAmB,eAAe,EAEjD;;CAGxB,MAAMC,kBAA+D,OAAO,EAC1E,aACA,oBACI;EACJ,MAAM,eAAe,uBAAuB,YAAY,GACpD,YAAY,QAAQ,WAAW,GAC/B,YAAY,kBAAkB;EAElC,MAAM,wBAAwB,WAAW,CAEtC,KAAK,aAAoB,CACzB,SAAS,MAAM;EAElB,MAAM,EAAE,cAAc,MAAM,aAAa,0BAA0B;GACjE;GACA;GACD,CAAC;EAEF,MAAM,YAAY,IAAI,UAAU,cAAc,QAAQ;AAEtD,cAAY,aACV,WAEA,WAAW,CAAC,KAAK,WAAW,MAAM,CACnC;AAED,cAAY,UAAU;GACpB,sBAAsB;GACtB,kBAAkB;GACnB,CAAC;AAEF,SAAO,EAAE,mBAAmB,aAAa;;CAG3C,MAAMC,sBACJ,OAAO,EAAE,cAAc,oBAAoB;AAYzC,SAAO,EAAE,oBAXkB,MAAM,QAAQ,IACvC,aAAa,IAAI,OAAO,gBAAgB;GACtC,MAAM,EAAE,sBAAsB,MAAM,gBAAgB;IAClD;IACA;IACD,CAAC;AAEF,UAAO;IACP,CACH,EAE4B;;CAGjC,MAAMC,cAAuD,OAAO,EAClE,SACA,oBACI;AACJ,gBAAc,eAAe,6BAA6B;AAE1D,SAAO,aAAa,YAAY;GAAE;GAAS;GAAe,CAAC;;AAG7D,QAAO;EACL,GAAG;EACH;EACA;EACA;EACA,UAAU,6BAA6B,sBAAsB,YAAY;EACzE;EACA,UAAU;GACR,aAAa,sBAAsB;GACnC,MAAM,sBAAsB;GAC7B;EACD;EACA;EACA;EACA;EACA;EACA;EACD;;;;;AC3JH,MAAa,4BAA4B;;;;;;;;;AAUzC,MAAa,0BAA0B,SAAS,kBAAkB,KAAW;AAC3E,KAAI,aAAa,EAAE,cAAc,2BAA2B,EAAE,OAAO,CACnE;AAGF,mBAAkB,EAAE,cAAc,2BAA2B,EAAE,OAAO;AACtE,sCAAqC,OAAO;CAE5C,MAAM,yBAAyB,0BAA0B,OAAO;CAEhE,MAAM,iBAAiB,kCAAkC,OAAO;AAEhE,wBAAuB,SAAS;EAC9B,UAAU,uBAAuB;EACjC;EACD,CAAC"}
@@ -0,0 +1,157 @@
1
+ const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-BToyMUc9.cjs.js');
2
+ const require_isVersionedTransaction = require('./isVersionedTransaction-BAaz3ONI.cjs.js');
3
+ let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
4
+ let _solana_web3_js = require("@solana/web3.js");
5
+ let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
6
+ let _dynamic_labs_sdk_client_waas_core = require("@dynamic-labs-sdk/client/waas/core");
7
+ let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
8
+
9
+ //#region src/getSolanaConnection/getSolanaConnection.ts
10
+ /**
11
+ * Returns a new Solana connection for the given network provider.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { getActiveNetworkData } from '@dynamic-labs-sdk/client';
16
+ * import { isSolanaNetworkProvider, getSolanaConnection } from '@dynamic-labs-sdk/solana';
17
+ *
18
+ * const { networkData } = getActiveNetworkData({ walletAccount });
19
+ *
20
+ * if(!networkData) {
21
+ * throw new Error('No network data found');
22
+ * }
23
+ *
24
+ * const connection = getSolanaConnection({
25
+ * networkData,
26
+ * });
27
+ * ```
28
+ */
29
+ const getSolanaConnection = ({ networkData, commitmentOrConfig }) => {
30
+ return new _solana_web3_js.Connection(networkData.rpcUrls.http[0], commitmentOrConfig);
31
+ };
32
+
33
+ //#endregion
34
+ //#region src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.ts
35
+ const createWalletProviderForWaasSolana = (sdkClient) => {
36
+ const chain = "SOL";
37
+ const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.EmbeddedWallet;
38
+ const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
39
+ chain,
40
+ displayName: _dynamic_labs_sdk_client_waas_core.DYNAMIC_WAAS_METADATA.displayName,
41
+ walletProviderType
42
+ });
43
+ const waasProvider = (0, _dynamic_labs_sdk_client_waas_core.createWaasProvider)({
44
+ chain,
45
+ sdkClient
46
+ });
47
+ const getActiveNetworkId = async () => (0, _dynamic_labs_sdk_client_core.getActiveNetworkIdFromLastKnownRegistry)({
48
+ client: sdkClient,
49
+ walletProviderKey: key
50
+ });
51
+ const switchActiveNetwork = async ({ networkId }) => (0, _dynamic_labs_sdk_client_core.switchActiveNetworkInLastKnownRegistry)({
52
+ client: sdkClient,
53
+ networkId,
54
+ walletProviderKey: key
55
+ });
56
+ const getConnectedAddresses = async () => {
57
+ return { addresses: (0, _dynamic_labs_sdk_client_waas_core.getAllUserWaasAddressesForChain)({ chain }, sdkClient) };
58
+ };
59
+ const signAndSendTransaction = async ({ transaction, walletAccount }) => {
60
+ const { signedTransaction } = await signTransaction({
61
+ transaction,
62
+ walletAccount
63
+ });
64
+ const { networkData } = await (0, _dynamic_labs_sdk_client.getActiveNetworkData)({ walletAccount }, sdkClient);
65
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(networkData, "Network data is required");
66
+ const connection = getSolanaConnection({ networkData });
67
+ const rawTransaction = signedTransaction.serialize();
68
+ return { signature: await connection.sendRawTransaction(rawTransaction) };
69
+ };
70
+ const signTransaction = async ({ transaction, walletAccount }) => {
71
+ const messageBytes = require_isVersionedTransaction.isVersionedTransaction(transaction) ? transaction.message.serialize() : transaction.serializeMessage();
72
+ const serializedTransaction = (0, _dynamic_labs_sdk_client_core.getBuffer)().from(messageBytes).toString("hex");
73
+ const { signature } = await waasProvider.signSerializedTransaction({
74
+ serializedTransaction,
75
+ walletAccount
76
+ });
77
+ const publicKey = new _solana_web3_js.PublicKey(walletAccount.address);
78
+ transaction.addSignature(publicKey, (0, _dynamic_labs_sdk_client_core.getBuffer)().from(signature, "hex"));
79
+ transaction.serialize({
80
+ requireAllSignatures: false,
81
+ verifySignatures: true
82
+ });
83
+ return { signedTransaction: transaction };
84
+ };
85
+ const signAllTransactions = async ({ transactions, walletAccount }) => {
86
+ return { signedTransactions: await Promise.all(transactions.map(async (transaction) => {
87
+ const { signedTransaction } = await signTransaction({
88
+ transaction,
89
+ walletAccount
90
+ });
91
+ return signedTransaction;
92
+ })) };
93
+ };
94
+ const signMessage = async ({ message, walletAccount }) => {
95
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account is required");
96
+ return waasProvider.signMessage({
97
+ message,
98
+ walletAccount
99
+ });
100
+ };
101
+ return {
102
+ ...waasProvider,
103
+ chain,
104
+ getActiveNetworkId,
105
+ getConnectedAddresses,
106
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(_dynamic_labs_sdk_client_waas_core.DYNAMIC_WAAS_METADATA.displayName),
107
+ key,
108
+ metadata: {
109
+ displayName: _dynamic_labs_sdk_client_waas_core.DYNAMIC_WAAS_METADATA.displayName,
110
+ icon: _dynamic_labs_sdk_client_waas_core.DYNAMIC_WAAS_METADATA.icon
111
+ },
112
+ signAllTransactions,
113
+ signAndSendTransaction,
114
+ signMessage,
115
+ signTransaction,
116
+ switchActiveNetwork,
117
+ walletProviderType
118
+ };
119
+ };
120
+
121
+ //#endregion
122
+ //#region src/waas/addWaasSolanaExtension/addWaasSolanaExtension.ts
123
+ const WAAS_SOLANA_EXTENSION_KEY = "waasSolana";
124
+ /**
125
+ * Adds the Dynamic WaaS (Wallet as a Service) Solana extension to the Dynamic client.
126
+ *
127
+ * This extension enables embedded wallet functionality for Solana blockchain,
128
+ * allowing users to have wallets managed by Dynamic's infrastructure.
129
+ *
130
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
131
+ */
132
+ const addWaasSolanaExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
133
+ if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client)) return;
134
+ (0, _dynamic_labs_sdk_client_core.registerExtension)({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client);
135
+ require_isVersionedTransaction.registerSolanaNetworkProviderBuilder(client);
136
+ const walletProviderRegistry = (0, _dynamic_labs_sdk_client_core.getWalletProviderRegistry)(client);
137
+ const walletProvider = createWalletProviderForWaasSolana(client);
138
+ walletProviderRegistry.register({
139
+ priority: _dynamic_labs_sdk_client_core.WalletProviderPriority.WALLET_SDK,
140
+ walletProvider
141
+ });
142
+ };
143
+
144
+ //#endregion
145
+ Object.defineProperty(exports, 'addWaasSolanaExtension', {
146
+ enumerable: true,
147
+ get: function () {
148
+ return addWaasSolanaExtension;
149
+ }
150
+ });
151
+ Object.defineProperty(exports, 'getSolanaConnection', {
152
+ enumerable: true,
153
+ get: function () {
154
+ return getSolanaConnection;
155
+ }
156
+ });
157
+ //# sourceMappingURL=addWaasSolanaExtension-DB0ZNIuG.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasSolanaExtension-DB0ZNIuG.cjs.js","names":["Connection","chain: Chain","WalletProviderEnum","DYNAMIC_WAAS_METADATA","getActiveNetworkId: WaasSolanaWalletProvider['getActiveNetworkId']","switchActiveNetwork: WaasSolanaWalletProvider['switchActiveNetwork']","getConnectedAddresses: WaasSolanaWalletProvider['getConnectedAddresses']","signAndSendTransaction: WaasSolanaWalletProvider['signAndSendTransaction']","signTransaction: WaasSolanaWalletProvider['signTransaction']","isVersionedTransaction","PublicKey","signAllTransactions: WaasSolanaWalletProvider['signAllTransactions']","signMessage: WaasSolanaWalletProvider['signMessage']","WalletProviderPriority"],"sources":["../src/getSolanaConnection/getSolanaConnection.ts","../src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.ts","../src/waas/addWaasSolanaExtension/addWaasSolanaExtension.ts"],"sourcesContent":["import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type { Commitment, ConnectionConfig } from '@solana/web3.js';\nimport { Connection } from '@solana/web3.js';\n\ntype GetSolanaConnectionOptions = {\n commitmentOrConfig?: Commitment | ConnectionConfig;\n networkData: NetworkData;\n};\n\n/**\n * Returns a new Solana connection for the given network provider.\n *\n * @example\n * ```ts\n * import { getActiveNetworkData } from '@dynamic-labs-sdk/client';\n * import { isSolanaNetworkProvider, getSolanaConnection } from '@dynamic-labs-sdk/solana';\n *\n * const { networkData } = getActiveNetworkData({ walletAccount });\n *\n * if(!networkData) {\n * throw new Error('No network data found');\n * }\n *\n * const connection = getSolanaConnection({\n * networkData,\n * });\n * ```\n */\nexport const getSolanaConnection = ({\n networkData,\n commitmentOrConfig,\n}: GetSolanaConnectionOptions) => {\n return new Connection(networkData.rpcUrls.http[0], commitmentOrConfig);\n};\n","import {\n type Chain,\n type DynamicClient,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n getBuffer,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { PublicKey } from '@solana/web3.js';\n\nimport { getSolanaConnection } from '../../../getSolanaConnection';\nimport { isVersionedTransaction } from '../../../utils/isVersionedTransaction';\nimport type { WaasSolanaWalletProvider } from '../../WaasSolanaWalletProvider.types';\n\nexport const createWalletProviderForWaasSolana = (\n sdkClient: DynamicClient\n): WaasSolanaWalletProvider => {\n const chain: Chain = 'SOL';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({ chain, sdkClient });\n\n const getActiveNetworkId: WaasSolanaWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: sdkClient,\n walletProviderKey: key,\n });\n\n const switchActiveNetwork: WaasSolanaWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: sdkClient,\n networkId,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasSolanaWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasSolanaAddresses = getAllUserWaasAddressesForChain(\n { chain },\n sdkClient\n );\n\n return {\n addresses: waasSolanaAddresses,\n };\n };\n\n const signAndSendTransaction: WaasSolanaWalletProvider['signAndSendTransaction'] =\n async ({ transaction, walletAccount }) => {\n const { signedTransaction } = await signTransaction({\n transaction,\n walletAccount,\n });\n\n const { networkData } = await getActiveNetworkData(\n { walletAccount },\n sdkClient\n );\n\n assertDefined(networkData, 'Network data is required');\n\n const connection = getSolanaConnection({ networkData });\n\n const rawTransaction = signedTransaction.serialize();\n\n const signature = await connection.sendRawTransaction(rawTransaction);\n\n return { signature };\n };\n\n const signTransaction: WaasSolanaWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const messageBytes = isVersionedTransaction(transaction)\n ? transaction.message.serialize()\n : transaction.serializeMessage();\n\n const serializedTransaction = getBuffer()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .from(messageBytes as any)\n .toString('hex');\n\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction,\n walletAccount,\n });\n\n const publicKey = new PublicKey(walletAccount.address);\n\n transaction.addSignature(\n publicKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getBuffer().from(signature, 'hex') as any\n );\n\n transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: true,\n });\n\n return { signedTransaction: transaction };\n };\n\n const signAllTransactions: WaasSolanaWalletProvider['signAllTransactions'] =\n async ({ transactions, walletAccount }) => {\n const signedTransactions = await Promise.all(\n transactions.map(async (transaction) => {\n const { signedTransaction } = await signTransaction({\n transaction,\n walletAccount,\n });\n\n return signedTransaction;\n })\n );\n\n return { signedTransactions };\n };\n\n const signMessage: WaasSolanaWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({ message, walletAccount });\n };\n\n return {\n ...waasProvider,\n chain,\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signAllTransactions,\n signAndSendTransaction,\n signMessage,\n signTransaction,\n switchActiveNetwork,\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerSolanaNetworkProviderBuilder } from '../../registerSolanaNetworkProviderBuilder';\nimport { createWalletProviderForWaasSolana } from '../utils/createWalletProviderForWaasSolana';\n\nexport const WAAS_SOLANA_EXTENSION_KEY = 'waasSolana';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) Solana extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for Solana blockchain,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addWaasSolanaExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client);\n registerSolanaNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasSolana(client);\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAa,uBAAuB,EAClC,aACA,yBACgC;AAChC,QAAO,IAAIA,2BAAW,YAAY,QAAQ,KAAK,IAAI,mBAAmB;;;;;ACPxE,MAAa,qCACX,cAC6B;CAC7B,MAAMC,QAAe;CAErB,MAAM,qBAAqBC,8CAAmB;CAE9C,MAAM,iEAA8B;EAClC;EACA,aAAaC,yDAAsB;EACnC;EACD,CAAC;CAEF,MAAM,0EAAkC;EAAE;EAAO;EAAW,CAAC;CAE7D,MAAMC,qBACJ,uFAC0C;EACtC,QAAQ;EACR,mBAAmB;EACpB,CAAC;CAEN,MAAMC,sBACJ,OAAO,EAAE,0FACgC;EACrC,QAAQ;EACR;EACA,mBAAmB;EACpB,CAAC;CAEN,MAAMC,wBACJ,YAAY;AAMV,SAAO,EACL,mFALA,EAAE,OAAO,EACT,UACD,EAIA;;CAGL,MAAMC,yBACJ,OAAO,EAAE,aAAa,oBAAoB;EACxC,MAAM,EAAE,sBAAsB,MAAM,gBAAgB;GAClD;GACA;GACD,CAAC;EAEF,MAAM,EAAE,gBAAgB,yDACtB,EAAE,eAAe,EACjB,UACD;AAED,mDAAc,aAAa,2BAA2B;EAEtD,MAAM,aAAa,oBAAoB,EAAE,aAAa,CAAC;EAEvD,MAAM,iBAAiB,kBAAkB,WAAW;AAIpD,SAAO,EAAE,WAFS,MAAM,WAAW,mBAAmB,eAAe,EAEjD;;CAGxB,MAAMC,kBAA+D,OAAO,EAC1E,aACA,oBACI;EACJ,MAAM,eAAeC,sDAAuB,YAAY,GACpD,YAAY,QAAQ,WAAW,GAC/B,YAAY,kBAAkB;EAElC,MAAM,sEAAmC,CAEtC,KAAK,aAAoB,CACzB,SAAS,MAAM;EAElB,MAAM,EAAE,cAAc,MAAM,aAAa,0BAA0B;GACjE;GACA;GACD,CAAC;EAEF,MAAM,YAAY,IAAIC,0BAAU,cAAc,QAAQ;AAEtD,cAAY,aACV,yDAEW,CAAC,KAAK,WAAW,MAAM,CACnC;AAED,cAAY,UAAU;GACpB,sBAAsB;GACtB,kBAAkB;GACnB,CAAC;AAEF,SAAO,EAAE,mBAAmB,aAAa;;CAG3C,MAAMC,sBACJ,OAAO,EAAE,cAAc,oBAAoB;AAYzC,SAAO,EAAE,oBAXkB,MAAM,QAAQ,IACvC,aAAa,IAAI,OAAO,gBAAgB;GACtC,MAAM,EAAE,sBAAsB,MAAM,gBAAgB;IAClD;IACA;IACD,CAAC;AAEF,UAAO;IACP,CACH,EAE4B;;CAGjC,MAAMC,cAAuD,OAAO,EAClE,SACA,oBACI;AACJ,mDAAc,eAAe,6BAA6B;AAE1D,SAAO,aAAa,YAAY;GAAE;GAAS;GAAe,CAAC;;AAG7D,QAAO;EACL,GAAG;EACH;EACA;EACA;EACA,0EAAuCT,yDAAsB,YAAY;EACzE;EACA,UAAU;GACR,aAAaA,yDAAsB;GACnC,MAAMA,yDAAsB;GAC7B;EACD;EACA;EACA;EACA;EACA;EACA;EACD;;;;;AC3JH,MAAa,4BAA4B;;;;;;;;;AAUzC,MAAa,0BAA0B,8DAA2B,KAAW;AAC3E,qDAAiB,EAAE,cAAc,2BAA2B,EAAE,OAAO,CACnE;AAGF,sDAAkB,EAAE,cAAc,2BAA2B,EAAE,OAAO;AACtE,qEAAqC,OAAO;CAE5C,MAAM,sFAAmD,OAAO;CAEhE,MAAM,iBAAiB,kCAAkC,OAAO;AAEhE,wBAAuB,SAAS;EAC9B,UAAUU,qDAAuB;EACjC;EACD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotSolanaProviderError.d.ts","sourceRoot":"","sources":["../../../src/errors/NotSolanaProviderError/NotSolanaProviderError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,qBAAa,sBAAuB,SAAQ,SAAS;IACnD,SAAgB,WAAW,EAAE,MAAM,CAAC;gBAExB,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE;CAW5C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/NotSolanaProviderError/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waas.d.ts","sourceRoot":"","sources":["../../src/exports/waas.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletStandard.d.ts","sourceRoot":"","sources":["../../src/exports/walletStandard.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gCAAgC,EAAE,MAAM,oDAAoD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSolanaConnection.d.ts","sourceRoot":"","sources":["../../src/getSolanaConnection/getSolanaConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,KAAK,0BAA0B,GAAG;IAChC,kBAAkB,CAAC,EAAE,UAAU,GAAG,gBAAgB,CAAC;IACnD,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,yCAG7B,0BAA0B,eAE5B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/getSolanaConnection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,132 @@
1
+ const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-BToyMUc9.cjs.js');
2
+ const require_isVersionedTransaction = require('./isVersionedTransaction-BAaz3ONI.cjs.js');
3
+ const require_addWaasSolanaExtension = require('./addWaasSolanaExtension-DB0ZNIuG.cjs.js');
4
+ let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
5
+ let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
6
+ let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
7
+
8
+ //#region src/addSolanaExtension/addSolanaExtension.ts
9
+ /**
10
+ * Adds the Solana extension to the Dynamic client.
11
+ *
12
+ * This is a convenience function that adds both the Solana Wallet Standard extension
13
+ * and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types
14
+ * including standard wallets and embedded wallets managed by Dynamic's infrastructure.
15
+ *
16
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
17
+ */
18
+ const addSolanaExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
19
+ require_addSolanaWalletStandardExtension.addSolanaWalletStandardExtension(client);
20
+ require_addWaasSolanaExtension.addWaasSolanaExtension(client);
21
+ };
22
+
23
+ //#endregion
24
+ //#region src/errors/NotSolanaProviderError/NotSolanaProviderError.ts
25
+ var NotSolanaProviderError = class extends _dynamic_labs_sdk_client.BaseError {
26
+ providerKey;
27
+ constructor(params) {
28
+ super({
29
+ cause: null,
30
+ code: "not_solana_provider_error",
31
+ docsUrl: null,
32
+ name: "NotSolanaProviderError",
33
+ shortMessage: "Provider is not a Solana wallet provider"
34
+ });
35
+ this.providerKey = params.providerKey;
36
+ }
37
+ };
38
+
39
+ //#endregion
40
+ //#region src/isSolanaNetworkProvider/isSolanaNetworkProvider.ts
41
+ /**
42
+ * Type guard function to check if a network provider is a Solana network provider.
43
+ *
44
+ * @param networkProvider - The network provider to check.
45
+ * @returns True if the network provider is a Solana network provider, false otherwise.
46
+ */
47
+ const isSolanaNetworkProvider = (networkProvider) => networkProvider.chain === "SOL";
48
+
49
+ //#endregion
50
+ //#region src/isSolanaWalletAccount/isSolanaWalletAccount.ts
51
+ /**
52
+ * Type guard function to check if a wallet account is a Solana wallet account.
53
+ *
54
+ * @param walletAccount - The wallet account to check.
55
+ * @returns True if the wallet account is a Solana wallet account, false otherwise.
56
+ */
57
+ const isSolanaWalletAccount = (walletAccount) => walletAccount.chain === "SOL";
58
+
59
+ //#endregion
60
+ //#region src/isSolanaWalletProvider/isSolanaWalletProvider.ts
61
+ const isSolanaWalletProvider = (provider) => {
62
+ return provider.chain === "SOL";
63
+ };
64
+
65
+ //#endregion
66
+ //#region src/signAllTransactions/signAllTransactions.ts
67
+ /**
68
+ * Signs multiple Solana transactions
69
+ * @param params.transactions - The transactions to sign
70
+ * @param params.walletAccount - The wallet account to sign the transactions with
71
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
72
+ * @returns An object containing the signed transactions
73
+ */
74
+ const signAllTransactions = async ({ walletAccount, transactions }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
75
+ const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
76
+ if (!isSolanaWalletProvider(provider)) throw new NotSolanaProviderError({ providerKey: provider.key });
77
+ return provider.signAllTransactions({
78
+ transactions,
79
+ walletAccount
80
+ });
81
+ };
82
+
83
+ //#endregion
84
+ //#region src/signAndSendTransaction/signAndSendTransaction.ts
85
+ /**
86
+ * Signs and sends a Solana transaction
87
+ * @param params.transaction - The transaction to sign and send
88
+ * @param params.walletAccount - The wallet account to sign and send the transaction with
89
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
90
+ * @returns An object containing the signature
91
+ */
92
+ const signAndSendTransaction = async ({ walletAccount, transaction }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
93
+ const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
94
+ if (!isSolanaWalletProvider(provider)) throw new NotSolanaProviderError({ providerKey: provider.key });
95
+ return provider.signAndSendTransaction({
96
+ transaction,
97
+ walletAccount
98
+ });
99
+ };
100
+
101
+ //#endregion
102
+ //#region src/signTransaction/signTransaction.ts
103
+ /**
104
+ * Signs a Solana transaction
105
+ * @param params.transaction - The transaction to sign
106
+ * @param params.walletAccount - The wallet account to sign the transaction with
107
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
108
+ * @returns An object containing the signed transaction
109
+ */
110
+ const signTransaction = async ({ walletAccount, transaction }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
111
+ const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
112
+ if (!isSolanaWalletProvider(provider)) throw new NotSolanaProviderError({ providerKey: provider.key });
113
+ return provider.signTransaction({
114
+ transaction,
115
+ walletAccount
116
+ });
117
+ };
118
+
119
+ //#endregion
120
+ //#region src/exports/index.ts
121
+ (0, _dynamic_labs_sdk_assert_package_version.assertPackageVersion)(require_isVersionedTransaction.name, require_isVersionedTransaction.version);
122
+
123
+ //#endregion
124
+ exports.NotSolanaProviderError = NotSolanaProviderError;
125
+ exports.addSolanaExtension = addSolanaExtension;
126
+ exports.getSolanaConnection = require_addWaasSolanaExtension.getSolanaConnection;
127
+ exports.isSolanaNetworkProvider = isSolanaNetworkProvider;
128
+ exports.isSolanaWalletAccount = isSolanaWalletAccount;
129
+ exports.signAllTransactions = signAllTransactions;
130
+ exports.signAndSendTransaction = signAndSendTransaction;
131
+ exports.signTransaction = signTransaction;
132
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","names":["BaseError","packageName","packageVersion"],"sources":["../src/addSolanaExtension/addSolanaExtension.ts","../src/errors/NotSolanaProviderError/NotSolanaProviderError.ts","../src/isSolanaNetworkProvider/isSolanaNetworkProvider.ts","../src/isSolanaWalletAccount/isSolanaWalletAccount.ts","../src/isSolanaWalletProvider/isSolanaWalletProvider.ts","../src/signAllTransactions/signAllTransactions.ts","../src/signAndSendTransaction/signAndSendTransaction.ts","../src/signTransaction/signTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addWaasSolanaExtension } from '../waas/addWaasSolanaExtension';\nimport { addSolanaWalletStandardExtension } from '../walletStandard/addSolanaWalletStandardExtension';\n\n/**\n * Adds the Solana extension to the Dynamic client.\n *\n * This is a convenience function that adds both the Solana Wallet Standard extension\n * and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types\n * including standard wallets and embedded wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addSolanaExtension = (client = getDefaultClient()): void => {\n addSolanaWalletStandardExtension(client);\n addWaasSolanaExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotSolanaProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_solana_provider_error',\n docsUrl: null,\n name: 'NotSolanaProviderError',\n shortMessage: 'Provider is not a Solana wallet provider',\n });\n\n this.providerKey = params.providerKey;\n }\n}\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';\n\n/**\n * Type guard function to check if a network provider is a Solana network provider.\n *\n * @param networkProvider - The network provider to check.\n * @returns True if the network provider is a Solana network provider, false otherwise.\n */\nexport const isSolanaNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is SolanaNetworkProvider => networkProvider.chain === 'SOL';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a Solana wallet account.\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a Solana wallet account, false otherwise.\n */\nexport const isSolanaWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is SolanaWalletAccount => walletAccount.chain === 'SOL';\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { SolanaWalletProvider } from '../SolanaWalletProvider.types';\n\nexport const isSolanaWalletProvider = (\n provider: WalletProvider\n): provider is SolanaWalletProvider => {\n return provider.chain === 'SOL';\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignAllTransactionsParams = {\n transactions: (Transaction | VersionedTransaction)[];\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs multiple Solana transactions\n * @param params.transactions - The transactions to sign\n * @param params.walletAccount - The wallet account to sign the transactions with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signed transactions\n */\nexport const signAllTransactions = async (\n { walletAccount, transactions }: SignAllTransactionsParams,\n client = getDefaultClient()\n): Promise<{ signedTransactions: (Transaction | VersionedTransaction)[] }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signAllTransactions({ transactions, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignAndSendTransactionParams = {\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs and sends a Solana transaction\n * @param params.transaction - The transaction to sign and send\n * @param params.walletAccount - The wallet account to sign and send the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signature\n */\nexport const signAndSendTransaction = async (\n { walletAccount, transaction }: SignAndSendTransactionParams,\n client = getDefaultClient()\n): Promise<{ signature: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signAndSendTransaction({ transaction, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignTransactionParams = {\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs a Solana transaction\n * @param params.transaction - The transaction to sign\n * @param params.walletAccount - The wallet account to sign the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signed transaction\n */\nexport const signTransaction = async (\n { walletAccount, transaction }: SignTransactionParams,\n client = getDefaultClient()\n): Promise<{ signedTransaction: Transaction | VersionedTransaction }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signTransaction({ transaction, walletAccount });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addSolanaExtension } from '../addSolanaExtension';\nexport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nexport { getSolanaConnection } from '../getSolanaConnection';\nexport { isSolanaNetworkProvider } from '../isSolanaNetworkProvider';\nexport { isSolanaWalletAccount } from '../isSolanaWalletAccount';\nexport type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';\nexport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\n\nexport { signAllTransactions } from '../signAllTransactions';\nexport { signAndSendTransaction } from '../signAndSendTransaction';\nexport { signTransaction } from '../signTransaction';\n"],"mappings":";;;;;;;;;;;;;;;;;AAcA,MAAa,sBAAsB,8DAA2B,KAAW;AACvE,2EAAiC,OAAO;AACxC,uDAAuB,OAAO;;;;;ACdhC,IAAa,yBAAb,cAA4CA,mCAAU;CACpD,AAAgB;CAEhB,YAAY,QAAiC;AAC3C,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;AAEF,OAAK,cAAc,OAAO;;;;;;;;;;;;ACJ9B,MAAa,2BACX,oBAC6C,gBAAgB,UAAU;;;;;;;;;;ACFzE,MAAa,yBACX,kBACyC,cAAc,UAAU;;;;ACRnE,MAAa,0BACX,aACqC;AACrC,QAAO,SAAS,UAAU;;;;;;;;;;;;ACa5B,MAAa,sBAAsB,OACjC,EAAE,eAAe,gBACjB,yDAA2B,KACiD;CAC5E,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,oBAAoB;EAAE;EAAc;EAAe,CAAC;;;;;;;;;;;;ACftE,MAAa,yBAAyB,OACpC,EAAE,eAAe,eACjB,yDAA2B,KACQ;CACnC,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,uBAAuB;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;ACfxE,MAAa,kBAAkB,OAC7B,EAAE,eAAe,eACjB,yDAA2B,KAC4C;CACvE,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,gBAAgB;EAAE;EAAa;EAAe,CAAC;;;;;mEC7B5CC,qCAAaC,uCAAe"}