@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
@@ -1,163 +0,0 @@
1
- 'use strict';
2
-
3
- var core = require('@dynamic-labs-sdk/client/core');
4
- var isVersionedTransaction = require('./isVersionedTransaction.cjs.js');
5
- var client = require('@dynamic-labs-sdk/client');
6
- var core$1 = require('@dynamic-labs-sdk/client/waas/core');
7
- var sdkApiCore = require('@dynamic-labs/sdk-api-core');
8
- var web3_js = require('@solana/web3.js');
9
-
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
- */ const getSolanaConnection = ({ networkData, commitmentOrConfig })=>{
29
- return new web3_js.Connection(networkData.rpcUrls.http[0], commitmentOrConfig);
30
- };
31
-
32
- const createWalletProviderForWaasSolana = (sdkClient)=>{
33
- const chain = 'SOL';
34
- const walletProviderType = sdkApiCore.WalletProviderEnum.EmbeddedWallet;
35
- const key = core.formatWalletProviderKey({
36
- chain,
37
- displayName: core$1.DYNAMIC_WAAS_METADATA.displayName,
38
- walletProviderType
39
- });
40
- const waasProvider = core$1.createWaasProvider({
41
- chain,
42
- sdkClient
43
- });
44
- const getActiveNetworkId = async ()=>core.getActiveNetworkIdFromLastKnownRegistry({
45
- client: sdkClient,
46
- walletProviderKey: key
47
- });
48
- const switchActiveNetwork = async ({ networkId })=>core.switchActiveNetworkInLastKnownRegistry({
49
- client: sdkClient,
50
- networkId,
51
- walletProviderKey: key
52
- });
53
- const getConnectedAddresses = async ()=>{
54
- const waasSolanaAddresses = core$1.getAllUserWaasAddressesForChain({
55
- chain
56
- }, sdkClient);
57
- return {
58
- addresses: waasSolanaAddresses
59
- };
60
- };
61
- const signAndSendTransaction = async ({ transaction, walletAccount })=>{
62
- const { signedTransaction } = await signTransaction({
63
- transaction,
64
- walletAccount
65
- });
66
- const { networkData } = await client.getActiveNetworkData({
67
- walletAccount
68
- }, sdkClient);
69
- core.assertDefined(networkData, 'Network data is required');
70
- const connection = getSolanaConnection({
71
- networkData
72
- });
73
- const rawTransaction = signedTransaction.serialize();
74
- const signature = await connection.sendRawTransaction(rawTransaction);
75
- return {
76
- signature
77
- };
78
- };
79
- const signTransaction = async ({ transaction, walletAccount })=>{
80
- const messageBytes = isVersionedTransaction.isVersionedTransaction(transaction) ? transaction.message.serialize() : transaction.serializeMessage();
81
- const serializedTransaction = core.getBuffer()// eslint-disable-next-line @typescript-eslint/no-explicit-any
82
- .from(messageBytes).toString('hex');
83
- const { signature } = await waasProvider.signSerializedTransaction({
84
- serializedTransaction,
85
- walletAccount
86
- });
87
- const publicKey = new web3_js.PublicKey(walletAccount.address);
88
- transaction.addSignature(publicKey, // eslint-disable-next-line @typescript-eslint/no-explicit-any
89
- core.getBuffer().from(signature, 'hex'));
90
- transaction.serialize({
91
- requireAllSignatures: false,
92
- verifySignatures: true
93
- });
94
- return {
95
- signedTransaction: transaction
96
- };
97
- };
98
- const signAllTransactions = async ({ transactions, walletAccount })=>{
99
- const signedTransactions = await Promise.all(transactions.map(async (transaction)=>{
100
- const { signedTransaction } = await signTransaction({
101
- transaction,
102
- walletAccount
103
- });
104
- return signedTransaction;
105
- }));
106
- return {
107
- signedTransactions
108
- };
109
- };
110
- const signMessage = async ({ message, walletAccount })=>{
111
- core.assertDefined(walletAccount, 'Wallet account is required');
112
- return waasProvider.signMessage({
113
- message,
114
- walletAccount
115
- });
116
- };
117
- return isVersionedTransaction._extends({}, waasProvider, {
118
- chain,
119
- getActiveNetworkId,
120
- getConnectedAddresses,
121
- groupKey: core.formatWalletProviderGroupKey(core$1.DYNAMIC_WAAS_METADATA.displayName),
122
- key,
123
- metadata: {
124
- displayName: core$1.DYNAMIC_WAAS_METADATA.displayName,
125
- icon: core$1.DYNAMIC_WAAS_METADATA.icon
126
- },
127
- signAllTransactions,
128
- signAndSendTransaction,
129
- signMessage,
130
- signTransaction,
131
- switchActiveNetwork,
132
- walletProviderType
133
- });
134
- };
135
-
136
- const WAAS_SOLANA_EXTENSION_KEY = 'waasSolana';
137
- /**
138
- * Adds the Dynamic WaaS (Wallet as a Service) Solana extension to the Dynamic client.
139
- *
140
- * This extension enables embedded wallet functionality for Solana blockchain,
141
- * allowing users to have wallets managed by Dynamic's infrastructure.
142
- *
143
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
144
- */ const addWaasSolanaExtension = (client = core.getDefaultClient())=>{
145
- if (core.hasExtension({
146
- extensionKey: WAAS_SOLANA_EXTENSION_KEY
147
- }, client)) {
148
- return;
149
- }
150
- core.registerExtension({
151
- extensionKey: WAAS_SOLANA_EXTENSION_KEY
152
- }, client);
153
- isVersionedTransaction.registerSolanaNetworkProviderBuilder(client);
154
- const walletProviderRegistry = core.getWalletProviderRegistry(client);
155
- const walletProvider = createWalletProviderForWaasSolana(client);
156
- walletProviderRegistry.register({
157
- priority: core.WalletProviderPriority.WALLET_SDK,
158
- walletProvider
159
- });
160
- };
161
-
162
- exports.addWaasSolanaExtension = addWaasSolanaExtension;
163
- exports.getSolanaConnection = getSolanaConnection;
@@ -1,160 +0,0 @@
1
- import { formatWalletProviderKey, formatWalletProviderGroupKey, switchActiveNetworkInLastKnownRegistry, getActiveNetworkIdFromLastKnownRegistry, getBuffer, assertDefined, getDefaultClient, hasExtension, registerExtension, getWalletProviderRegistry, WalletProviderPriority } from '@dynamic-labs-sdk/client/core';
2
- import { _ as _extends, i as isVersionedTransaction, r as registerSolanaNetworkProviderBuilder } from './isVersionedTransaction.esm.js';
3
- import { getActiveNetworkData } from '@dynamic-labs-sdk/client';
4
- import { DYNAMIC_WAAS_METADATA, createWaasProvider, getAllUserWaasAddressesForChain } from '@dynamic-labs-sdk/client/waas/core';
5
- import { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';
6
- import { Connection, PublicKey } from '@solana/web3.js';
7
-
8
- /**
9
- * Returns a new Solana connection for the given network provider.
10
- *
11
- * @example
12
- * ```ts
13
- * import { getActiveNetworkData } from '@dynamic-labs-sdk/client';
14
- * import { isSolanaNetworkProvider, getSolanaConnection } from '@dynamic-labs-sdk/solana';
15
- *
16
- * const { networkData } = getActiveNetworkData({ walletAccount });
17
- *
18
- * if(!networkData) {
19
- * throw new Error('No network data found');
20
- * }
21
- *
22
- * const connection = getSolanaConnection({
23
- * networkData,
24
- * });
25
- * ```
26
- */ const getSolanaConnection = ({ networkData, commitmentOrConfig })=>{
27
- return new Connection(networkData.rpcUrls.http[0], commitmentOrConfig);
28
- };
29
-
30
- const createWalletProviderForWaasSolana = (sdkClient)=>{
31
- const chain = 'SOL';
32
- const walletProviderType = WalletProviderEnum.EmbeddedWallet;
33
- const key = formatWalletProviderKey({
34
- chain,
35
- displayName: DYNAMIC_WAAS_METADATA.displayName,
36
- walletProviderType
37
- });
38
- const waasProvider = createWaasProvider({
39
- chain,
40
- sdkClient
41
- });
42
- const getActiveNetworkId = async ()=>getActiveNetworkIdFromLastKnownRegistry({
43
- client: sdkClient,
44
- walletProviderKey: key
45
- });
46
- const switchActiveNetwork = async ({ networkId })=>switchActiveNetworkInLastKnownRegistry({
47
- client: sdkClient,
48
- networkId,
49
- walletProviderKey: key
50
- });
51
- const getConnectedAddresses = async ()=>{
52
- const waasSolanaAddresses = getAllUserWaasAddressesForChain({
53
- chain
54
- }, sdkClient);
55
- return {
56
- addresses: waasSolanaAddresses
57
- };
58
- };
59
- const signAndSendTransaction = async ({ transaction, walletAccount })=>{
60
- const { signedTransaction } = await signTransaction({
61
- transaction,
62
- walletAccount
63
- });
64
- const { networkData } = await getActiveNetworkData({
65
- walletAccount
66
- }, sdkClient);
67
- assertDefined(networkData, 'Network data is required');
68
- const connection = getSolanaConnection({
69
- networkData
70
- });
71
- const rawTransaction = signedTransaction.serialize();
72
- const signature = await connection.sendRawTransaction(rawTransaction);
73
- return {
74
- signature
75
- };
76
- };
77
- const signTransaction = async ({ transaction, walletAccount })=>{
78
- const messageBytes = isVersionedTransaction(transaction) ? transaction.message.serialize() : transaction.serializeMessage();
79
- const serializedTransaction = getBuffer()// eslint-disable-next-line @typescript-eslint/no-explicit-any
80
- .from(messageBytes).toString('hex');
81
- const { signature } = await waasProvider.signSerializedTransaction({
82
- serializedTransaction,
83
- walletAccount
84
- });
85
- const publicKey = new PublicKey(walletAccount.address);
86
- transaction.addSignature(publicKey, // eslint-disable-next-line @typescript-eslint/no-explicit-any
87
- getBuffer().from(signature, 'hex'));
88
- transaction.serialize({
89
- requireAllSignatures: false,
90
- verifySignatures: true
91
- });
92
- return {
93
- signedTransaction: transaction
94
- };
95
- };
96
- const signAllTransactions = async ({ transactions, walletAccount })=>{
97
- const signedTransactions = await Promise.all(transactions.map(async (transaction)=>{
98
- const { signedTransaction } = await signTransaction({
99
- transaction,
100
- walletAccount
101
- });
102
- return signedTransaction;
103
- }));
104
- return {
105
- signedTransactions
106
- };
107
- };
108
- const signMessage = async ({ message, walletAccount })=>{
109
- assertDefined(walletAccount, 'Wallet account is required');
110
- return waasProvider.signMessage({
111
- message,
112
- walletAccount
113
- });
114
- };
115
- return _extends({}, waasProvider, {
116
- chain,
117
- getActiveNetworkId,
118
- getConnectedAddresses,
119
- groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),
120
- key,
121
- metadata: {
122
- displayName: DYNAMIC_WAAS_METADATA.displayName,
123
- icon: DYNAMIC_WAAS_METADATA.icon
124
- },
125
- signAllTransactions,
126
- signAndSendTransaction,
127
- signMessage,
128
- signTransaction,
129
- switchActiveNetwork,
130
- walletProviderType
131
- });
132
- };
133
-
134
- const WAAS_SOLANA_EXTENSION_KEY = 'waasSolana';
135
- /**
136
- * Adds the Dynamic WaaS (Wallet as a Service) Solana extension to the Dynamic client.
137
- *
138
- * This extension enables embedded wallet functionality for Solana blockchain,
139
- * allowing users to have wallets managed by Dynamic's infrastructure.
140
- *
141
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
142
- */ const addWaasSolanaExtension = (client = getDefaultClient())=>{
143
- if (hasExtension({
144
- extensionKey: WAAS_SOLANA_EXTENSION_KEY
145
- }, client)) {
146
- return;
147
- }
148
- registerExtension({
149
- extensionKey: WAAS_SOLANA_EXTENSION_KEY
150
- }, client);
151
- registerSolanaNetworkProviderBuilder(client);
152
- const walletProviderRegistry = getWalletProviderRegistry(client);
153
- const walletProvider = createWalletProviderForWaasSolana(client);
154
- walletProviderRegistry.register({
155
- priority: WalletProviderPriority.WALLET_SDK,
156
- walletProvider
157
- });
158
- };
159
-
160
- export { addWaasSolanaExtension as a, getSolanaConnection as g };
package/index.cjs.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./src/exports/index";
package/index.cjs.js DELETED
@@ -1,131 +0,0 @@
1
- 'use strict';
2
-
3
- var assertPackageVersion = require('@dynamic-labs-sdk/assert-package-version');
4
- var isVersionedTransaction = require('./isVersionedTransaction.cjs.js');
5
- var core = require('@dynamic-labs-sdk/client/core');
6
- var addWaasSolanaExtension = require('./addWaasSolanaExtension.cjs.js');
7
- var addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension.cjs.js');
8
- var client = require('@dynamic-labs-sdk/client');
9
- require('@solana/web3.js');
10
- require('@dynamic-labs-sdk/client/waas/core');
11
- require('@dynamic-labs/sdk-api-core');
12
- require('@wallet-standard/app');
13
- require('bs58');
14
-
15
- /**
16
- * Adds the Solana extension to the Dynamic client.
17
- *
18
- * This is a convenience function that adds both the Solana Wallet Standard extension
19
- * and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types
20
- * including standard wallets and embedded wallets managed by Dynamic's infrastructure.
21
- *
22
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
23
- */ const addSolanaExtension = (client = core.getDefaultClient())=>{
24
- addSolanaWalletStandardExtension.addSolanaWalletStandardExtension(client);
25
- addWaasSolanaExtension.addWaasSolanaExtension(client);
26
- };
27
-
28
- class NotSolanaProviderError extends client.BaseError {
29
- constructor(params){
30
- super({
31
- cause: null,
32
- code: 'not_solana_provider_error',
33
- docsUrl: null,
34
- name: 'NotSolanaProviderError',
35
- shortMessage: 'Provider is not a Solana wallet provider'
36
- });
37
- this.providerKey = params.providerKey;
38
- }
39
- }
40
-
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
- */ const isSolanaNetworkProvider = (networkProvider)=>networkProvider.chain === 'SOL';
47
-
48
- /**
49
- * Type guard function to check if a wallet account is a Solana wallet account.
50
- *
51
- * @param walletAccount - The wallet account to check.
52
- * @returns True if the wallet account is a Solana wallet account, false otherwise.
53
- */ const isSolanaWalletAccount = (walletAccount)=>walletAccount.chain === 'SOL';
54
-
55
- const isSolanaWalletProvider = (provider)=>{
56
- return provider.chain === 'SOL';
57
- };
58
-
59
- /**
60
- * Signs multiple Solana transactions
61
- * @param params.transactions - The transactions to sign
62
- * @param params.walletAccount - The wallet account to sign the transactions with
63
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
64
- * @returns An object containing the signed transactions
65
- */ const signAllTransactions = async ({ walletAccount, transactions }, client$1 = client.getDefaultClient())=>{
66
- const provider = core.getWalletProviderFromWalletAccount({
67
- walletAccount
68
- }, client$1);
69
- if (!isSolanaWalletProvider(provider)) {
70
- throw new NotSolanaProviderError({
71
- providerKey: provider.key
72
- });
73
- }
74
- return provider.signAllTransactions({
75
- transactions,
76
- walletAccount
77
- });
78
- };
79
-
80
- /**
81
- * Signs and sends a Solana transaction
82
- * @param params.transaction - The transaction to sign and send
83
- * @param params.walletAccount - The wallet account to sign and send the transaction with
84
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
85
- * @returns An object containing the signature
86
- */ const signAndSendTransaction = async ({ walletAccount, transaction }, client$1 = client.getDefaultClient())=>{
87
- const provider = core.getWalletProviderFromWalletAccount({
88
- walletAccount
89
- }, client$1);
90
- if (!isSolanaWalletProvider(provider)) {
91
- throw new NotSolanaProviderError({
92
- providerKey: provider.key
93
- });
94
- }
95
- return provider.signAndSendTransaction({
96
- transaction,
97
- walletAccount
98
- });
99
- };
100
-
101
- /**
102
- * Signs a Solana transaction
103
- * @param params.transaction - The transaction to sign
104
- * @param params.walletAccount - The wallet account to sign the transaction with
105
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
106
- * @returns An object containing the signed transaction
107
- */ const signTransaction = async ({ walletAccount, transaction }, client$1 = client.getDefaultClient())=>{
108
- const provider = core.getWalletProviderFromWalletAccount({
109
- walletAccount
110
- }, client$1);
111
- if (!isSolanaWalletProvider(provider)) {
112
- throw new NotSolanaProviderError({
113
- providerKey: provider.key
114
- });
115
- }
116
- return provider.signTransaction({
117
- transaction,
118
- walletAccount
119
- });
120
- };
121
-
122
- assertPackageVersion.assertPackageVersion(isVersionedTransaction.name, isVersionedTransaction.version);
123
-
124
- exports.getSolanaConnection = addWaasSolanaExtension.getSolanaConnection;
125
- exports.NotSolanaProviderError = NotSolanaProviderError;
126
- exports.addSolanaExtension = addSolanaExtension;
127
- exports.isSolanaNetworkProvider = isSolanaNetworkProvider;
128
- exports.isSolanaWalletAccount = isSolanaWalletAccount;
129
- exports.signAllTransactions = signAllTransactions;
130
- exports.signAndSendTransaction = signAndSendTransaction;
131
- exports.signTransaction = signTransaction;
package/index.esm.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./src/exports/index";
package/index.esm.js DELETED
@@ -1,123 +0,0 @@
1
- import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';
2
- import { n as name, v as version } from './isVersionedTransaction.esm.js';
3
- import { getDefaultClient, getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';
4
- import { a as addWaasSolanaExtension } from './addWaasSolanaExtension.esm.js';
5
- export { g as getSolanaConnection } from './addWaasSolanaExtension.esm.js';
6
- import { a as addSolanaWalletStandardExtension } from './addSolanaWalletStandardExtension.esm.js';
7
- import { BaseError, getDefaultClient as getDefaultClient$1 } from '@dynamic-labs-sdk/client';
8
- import '@solana/web3.js';
9
- import '@dynamic-labs-sdk/client/waas/core';
10
- import '@dynamic-labs/sdk-api-core';
11
- import '@wallet-standard/app';
12
- import 'bs58';
13
-
14
- /**
15
- * Adds the Solana extension to the Dynamic client.
16
- *
17
- * This is a convenience function that adds both the Solana Wallet Standard extension
18
- * and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types
19
- * including standard wallets and embedded wallets managed by Dynamic's infrastructure.
20
- *
21
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
22
- */ const addSolanaExtension = (client = getDefaultClient())=>{
23
- addSolanaWalletStandardExtension(client);
24
- addWaasSolanaExtension(client);
25
- };
26
-
27
- class NotSolanaProviderError extends BaseError {
28
- constructor(params){
29
- super({
30
- cause: null,
31
- code: 'not_solana_provider_error',
32
- docsUrl: null,
33
- name: 'NotSolanaProviderError',
34
- shortMessage: 'Provider is not a Solana wallet provider'
35
- });
36
- this.providerKey = params.providerKey;
37
- }
38
- }
39
-
40
- /**
41
- * Type guard function to check if a network provider is a Solana network provider.
42
- *
43
- * @param networkProvider - The network provider to check.
44
- * @returns True if the network provider is a Solana network provider, false otherwise.
45
- */ const isSolanaNetworkProvider = (networkProvider)=>networkProvider.chain === 'SOL';
46
-
47
- /**
48
- * Type guard function to check if a wallet account is a Solana wallet account.
49
- *
50
- * @param walletAccount - The wallet account to check.
51
- * @returns True if the wallet account is a Solana wallet account, false otherwise.
52
- */ const isSolanaWalletAccount = (walletAccount)=>walletAccount.chain === 'SOL';
53
-
54
- const isSolanaWalletProvider = (provider)=>{
55
- return provider.chain === 'SOL';
56
- };
57
-
58
- /**
59
- * Signs multiple Solana transactions
60
- * @param params.transactions - The transactions to sign
61
- * @param params.walletAccount - The wallet account to sign the transactions with
62
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
63
- * @returns An object containing the signed transactions
64
- */ const signAllTransactions = async ({ walletAccount, transactions }, client = getDefaultClient$1())=>{
65
- const provider = getWalletProviderFromWalletAccount({
66
- walletAccount
67
- }, client);
68
- if (!isSolanaWalletProvider(provider)) {
69
- throw new NotSolanaProviderError({
70
- providerKey: provider.key
71
- });
72
- }
73
- return provider.signAllTransactions({
74
- transactions,
75
- walletAccount
76
- });
77
- };
78
-
79
- /**
80
- * Signs and sends a Solana transaction
81
- * @param params.transaction - The transaction to sign and send
82
- * @param params.walletAccount - The wallet account to sign and send the transaction with
83
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
84
- * @returns An object containing the signature
85
- */ const signAndSendTransaction = async ({ walletAccount, transaction }, client = getDefaultClient$1())=>{
86
- const provider = getWalletProviderFromWalletAccount({
87
- walletAccount
88
- }, client);
89
- if (!isSolanaWalletProvider(provider)) {
90
- throw new NotSolanaProviderError({
91
- providerKey: provider.key
92
- });
93
- }
94
- return provider.signAndSendTransaction({
95
- transaction,
96
- walletAccount
97
- });
98
- };
99
-
100
- /**
101
- * Signs a Solana transaction
102
- * @param params.transaction - The transaction to sign
103
- * @param params.walletAccount - The wallet account to sign the transaction with
104
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
105
- * @returns An object containing the signed transaction
106
- */ const signTransaction = async ({ walletAccount, transaction }, client = getDefaultClient$1())=>{
107
- const provider = getWalletProviderFromWalletAccount({
108
- walletAccount
109
- }, client);
110
- if (!isSolanaWalletProvider(provider)) {
111
- throw new NotSolanaProviderError({
112
- providerKey: provider.key
113
- });
114
- }
115
- return provider.signTransaction({
116
- transaction,
117
- walletAccount
118
- });
119
- };
120
-
121
- assertPackageVersion(name, version);
122
-
123
- export { NotSolanaProviderError, addSolanaExtension, isSolanaNetworkProvider, isSolanaWalletAccount, signAllTransactions, signAndSendTransaction, signTransaction };
@@ -1,64 +0,0 @@
1
- 'use strict';
2
-
3
- var core = require('@dynamic-labs-sdk/client/core');
4
- var web3_js = require('@solana/web3.js');
5
-
6
- var name = "@dynamic-labs-sdk/solana";
7
- var version = "0.1.1";
8
-
9
- function _extends() {
10
- _extends = Object.assign || function assign(target) {
11
- for(var i = 1; i < arguments.length; i++){
12
- var source = arguments[i];
13
- for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
14
- }
15
- return target;
16
- };
17
- return _extends.apply(this, arguments);
18
- }
19
-
20
- const fetchSolBalance = async ({ address, rpcUrl })=>{
21
- // Establish a connection to the Solana network using the provided RPC URL.
22
- const connection = new web3_js.Connection(rpcUrl);
23
- // Convert the string address into a PublicKey object.
24
- const publicKey = new web3_js.PublicKey(address);
25
- // Fetch the balance of the public key. The balance is in lamports.
26
- const balanceInLamports = await connection.getBalance(publicKey);
27
- // The getBalance method returns the balance in lamports.
28
- // 1 SOL = 1,000,000,000 lamports.
29
- const balanceInSol = balanceInLamports / 1000000000;
30
- // Return the balance in SOL as a string
31
- return balanceInSol.toString();
32
- };
33
-
34
- const createSolanaNetworkProvider = (networkData)=>_extends({}, core.createBaseNetworkProvider('SOL', networkData), {
35
- cluster: networkData.cluster,
36
- genesisHash: networkData.genesisHash,
37
- getBalance: async ({ address })=>({
38
- balance: await fetchSolBalance({
39
- address,
40
- rpcUrl: networkData.rpcUrls.http[0]
41
- })
42
- })
43
- });
44
-
45
- const registerSolanaNetworkProviderBuilder = (client)=>{
46
- const networkProviderBuilderRegistry = core.getNetworkProviderBuilderRegistry(client);
47
- /**
48
- * If the Solana network provider builder is already registered, return.
49
- */ if (networkProviderBuilderRegistry.get().get('SOL')) {
50
- return;
51
- }
52
- networkProviderBuilderRegistry.register({
53
- builder: createSolanaNetworkProvider,
54
- chain: 'SOL'
55
- });
56
- };
57
-
58
- const isVersionedTransaction = (transaction)=>!('instructions' in transaction);
59
-
60
- exports._extends = _extends;
61
- exports.isVersionedTransaction = isVersionedTransaction;
62
- exports.name = name;
63
- exports.registerSolanaNetworkProviderBuilder = registerSolanaNetworkProviderBuilder;
64
- exports.version = version;