@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,268 +0,0 @@
1
- 'use strict';
2
-
3
- var core = require('@dynamic-labs-sdk/client/core');
4
- var app = require('@wallet-standard/app');
5
- var isVersionedTransaction = require('./isVersionedTransaction.cjs.js');
6
- var client = require('@dynamic-labs-sdk/client');
7
- var sdkApiCore = require('@dynamic-labs/sdk-api-core');
8
- var web3_js = require('@solana/web3.js');
9
- var bs58 = require('bs58');
10
-
11
- const getActiveNetworkCluster = async ({ walletAccount }, client$1)=>{
12
- const { networkData } = await client.getActiveNetworkData({
13
- walletAccount
14
- }, client$1);
15
- if (!(networkData == null ? void 0 : networkData.cluster)) {
16
- return;
17
- }
18
- return `solana:${networkData.cluster}`;
19
- };
20
-
21
- const getFeaturesForSolanaStandardWallet = (wallet)=>{
22
- return wallet.features;
23
- };
24
-
25
- const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletStandardWallet })=>{
26
- const features = getFeaturesForSolanaStandardWallet(walletStandardWallet);
27
- const walletProviderType = sdkApiCore.WalletProviderEnum.BrowserExtension;
28
- const key = core.formatWalletProviderKey({
29
- chain: 'SOL',
30
- displayName: walletStandardWallet.name,
31
- walletProviderType
32
- });
33
- const connect = async ()=>{
34
- var _features_standardconnect, _result_accounts;
35
- const autoConnectedAccounts = walletStandardWallet.accounts;
36
- // some wallets like Farcaster will auto inject the account into the wallet object
37
- // instead of returning it from the connect method
38
- // so we need to check for that first
39
- if ((autoConnectedAccounts == null ? void 0 : autoConnectedAccounts.length) && autoConnectedAccounts[0].publicKey && autoConnectedAccounts[0].address) {
40
- return {
41
- addresses: [
42
- {
43
- address: autoConnectedAccounts[0].address,
44
- publicKey: autoConnectedAccounts[0].publicKey.toString()
45
- }
46
- ]
47
- };
48
- }
49
- const connectMethod = (_features_standardconnect = features['standard:connect']) == null ? void 0 : _features_standardconnect.connect;
50
- core.assertDefined(connectMethod, 'connect method not found in wallet features');
51
- const result = await connectMethod({
52
- silent: false
53
- });
54
- return {
55
- addresses: (_result_accounts = result.accounts) == null ? void 0 : _result_accounts.map((account)=>{
56
- var _account_publicKey;
57
- return {
58
- address: account.address,
59
- publicKey: (_account_publicKey = account.publicKey) == null ? void 0 : _account_publicKey.toString()
60
- };
61
- })
62
- };
63
- };
64
- const disconnect = async ()=>{
65
- var _features_standarddisconnect;
66
- const disconnectMethod = (_features_standarddisconnect = features['standard:disconnect']) == null ? void 0 : _features_standarddisconnect.disconnect;
67
- core.assertDefined(disconnectMethod, 'disconnect method not found in wallet features');
68
- await disconnectMethod();
69
- };
70
- const getActiveNetworkId = async ()=>core.getActiveNetworkIdFromLastKnownRegistry({
71
- client: dynamicClient,
72
- walletProviderKey: key
73
- });
74
- const getCurrentAccount = async ()=>{
75
- var _walletStandardWallet_accounts;
76
- if (!isConnected() && connect) {
77
- await connect();
78
- }
79
- const account = (_walletStandardWallet_accounts = walletStandardWallet.accounts) == null ? void 0 : _walletStandardWallet_accounts[0];
80
- core.assertDefined(account, 'No connected accounts found');
81
- return account;
82
- };
83
- const isConnected = ()=>{
84
- var _walletStandardWallet_accounts;
85
- return ((_walletStandardWallet_accounts = walletStandardWallet.accounts) == null ? void 0 : _walletStandardWallet_accounts.length) > 0;
86
- };
87
- const getConnectedAddresses = async ()=>{
88
- if (!isConnected() && connect) {
89
- await connect();
90
- }
91
- return {
92
- addresses: walletStandardWallet.accounts.map((account)=>account.address)
93
- };
94
- };
95
- const signAllTransactions = async ({ transactions, walletAccount })=>{
96
- var _features_solanasignTransaction;
97
- const signTransactionMethod = (_features_solanasignTransaction = features['solana:signTransaction']) == null ? void 0 : _features_solanasignTransaction.signTransaction;
98
- core.assertDefined(signTransactionMethod, 'signTransaction method not found in wallet features');
99
- await client.assertWalletAccountSigningAvailability({
100
- walletAccount
101
- }, dynamicClient);
102
- const account = await getCurrentAccount();
103
- const chain = await getActiveNetworkCluster({
104
- walletAccount
105
- }, dynamicClient);
106
- core.assertDefined(chain, 'Could not get active chain for wallet account');
107
- const transactionsInput = transactions.map((transaction)=>({
108
- account,
109
- chain,
110
- transaction: transaction.serialize({
111
- requireAllSignatures: false
112
- })
113
- }));
114
- const signTransactionResult = await signTransactionMethod(...transactionsInput);
115
- const signedTransactions = signTransactionResult.map(({ signedTransaction }, index)=>{
116
- const inputTransaction = transactions[index];
117
- if (isVersionedTransaction.isVersionedTransaction(inputTransaction)) {
118
- return web3_js.VersionedTransaction.deserialize(signedTransaction);
119
- }
120
- return web3_js.Transaction.from(signedTransaction);
121
- });
122
- return {
123
- signedTransactions
124
- };
125
- };
126
- const signAndSendTransaction = async ({ transaction, walletAccount })=>{
127
- var _features_solanasignAndSendTransaction;
128
- await client.assertWalletAccountSigningAvailability({
129
- walletAccount
130
- }, dynamicClient);
131
- const signAndSendTransactionMethod = (_features_solanasignAndSendTransaction = features['solana:signAndSendTransaction']) == null ? void 0 : _features_solanasignAndSendTransaction.signAndSendTransaction;
132
- core.assertDefined(signAndSendTransactionMethod, 'signAndSendTransaction method not found in wallet features');
133
- const account = await getCurrentAccount();
134
- const chain = await getActiveNetworkCluster({
135
- walletAccount
136
- }, dynamicClient);
137
- core.assertDefined(chain, 'Could not get active chain for wallet account');
138
- const signedTransactions = await signAndSendTransactionMethod({
139
- account,
140
- chain,
141
- transaction: transaction.serialize({
142
- requireAllSignatures: false
143
- })
144
- });
145
- const [{ signature }] = signedTransactions;
146
- return {
147
- signature: bs58.encode(signature)
148
- };
149
- };
150
- const signMessage = async ({ message, walletAccount })=>{
151
- var _features_solanasignMessage;
152
- const signMessageMethod = (_features_solanasignMessage = features['solana:signMessage']) == null ? void 0 : _features_solanasignMessage.signMessage;
153
- core.assertDefined(signMessageMethod, 'signMessage method not found in wallet features');
154
- core.assertDefined(walletAccount, 'Wallet account not found');
155
- await client.assertWalletAccountSigningAvailability({
156
- walletAccount
157
- }, dynamicClient);
158
- const encodedMessage = new TextEncoder().encode(message);
159
- const account = await getCurrentAccount();
160
- const messages = await signMessageMethod({
161
- account,
162
- message: encodedMessage
163
- });
164
- return {
165
- signature: core.bufferToBase64(messages[0].signature)
166
- };
167
- };
168
- const signTransaction = async ({ transaction, walletAccount })=>{
169
- const signedTransactions = await signAllTransactions({
170
- transactions: [
171
- transaction
172
- ],
173
- walletAccount
174
- });
175
- return {
176
- signedTransaction: signedTransactions.signedTransactions[0]
177
- };
178
- };
179
- const switchActiveNetwork = async ({ networkId })=>core.switchActiveNetworkInLastKnownRegistry({
180
- client: dynamicClient,
181
- networkId,
182
- walletProviderKey: key
183
- });
184
- const { getEventEmitter, cleanupEventEmitter } = core.createWalletProviderEventEmitter({
185
- removeEventListeners: ({ setupReturnValue })=>{
186
- core.assertDefined(setupReturnValue, 'Setup return value not defined');
187
- setupReturnValue();
188
- },
189
- setupEventListeners: ({ handleAccountsChanged })=>{
190
- const eventsFeature = features['standard:events'];
191
- return eventsFeature.on('change', ({ accounts })=>{
192
- var _accounts_map;
193
- handleAccountsChanged({
194
- addresses: (_accounts_map = accounts == null ? void 0 : accounts.map((account)=>account.address)) != null ? _accounts_map : []
195
- });
196
- });
197
- },
198
- supportedEvents: [
199
- 'accountsChanged'
200
- ]
201
- });
202
- const terminate = async ()=>{
203
- cleanupEventEmitter();
204
- };
205
- const walletProvider = {
206
- chain: 'SOL',
207
- connect,
208
- disconnect,
209
- get events () {
210
- return getEventEmitter();
211
- },
212
- getActiveNetworkId,
213
- getConnectedAddresses,
214
- groupKey: core.formatWalletProviderGroupKey(walletStandardWallet.name),
215
- key,
216
- metadata: {
217
- displayName: walletStandardWallet.name,
218
- icon: walletStandardWallet.icon
219
- },
220
- signAllTransactions,
221
- signAndSendTransaction,
222
- signMessage,
223
- signTransaction,
224
- switchActiveNetwork,
225
- terminate,
226
- walletProviderType
227
- };
228
- return walletProvider;
229
- };
230
-
231
- const hasAllRequiredFeatures = (wallet)=>{
232
- var _wallet_features, _wallet_features1, _wallet_features2, _wallet_features3;
233
- return Boolean(((_wallet_features = wallet.features) == null ? void 0 : _wallet_features['standard:events']) && ((_wallet_features1 = wallet.features) == null ? void 0 : _wallet_features1['standard:connect']) && ((_wallet_features2 = wallet.features) == null ? void 0 : _wallet_features2['solana:signTransaction']) && ((_wallet_features3 = wallet.features) == null ? void 0 : _wallet_features3['solana:signMessage']));
234
- };
235
-
236
- const SOLANA_WALLET_STANDARD_EXTENSION_KEY = 'solanaWalletStandard';
237
- /**
238
- * Adds the Solana Wallet Standard extension to the Dynamic client.
239
- *
240
- * This extension enables integration with wallets that implement the Solana Wallet Standard,
241
- * automatically detecting and registering compatible wallets for use with the Dynamic SDK.
242
- *
243
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
244
- */ const addSolanaWalletStandardExtension = (client = core.getDefaultClient())=>{
245
- if (core.hasExtension({
246
- extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY
247
- }, client)) {
248
- return;
249
- }
250
- core.registerExtension({
251
- extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY
252
- }, client);
253
- isVersionedTransaction.registerSolanaNetworkProviderBuilder(client);
254
- const walletProviderRegistry = core.getWalletProviderRegistry(client);
255
- const walletStandardWallets = app.getWallets().get().filter(hasAllRequiredFeatures);
256
- walletStandardWallets.forEach((walletStandardWallet)=>{
257
- const walletProvider = createWalletProviderFromSolanaStandardWallet({
258
- dynamicClient: client,
259
- walletStandardWallet
260
- });
261
- walletProviderRegistry.register({
262
- priority: core.WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,
263
- walletProvider
264
- });
265
- });
266
- };
267
-
268
- exports.addSolanaWalletStandardExtension = addSolanaWalletStandardExtension;
@@ -1,266 +0,0 @@
1
- import { formatWalletProviderKey, createWalletProviderEventEmitter, assertDefined, formatWalletProviderGroupKey, switchActiveNetworkInLastKnownRegistry, getActiveNetworkIdFromLastKnownRegistry, bufferToBase64, getDefaultClient, hasExtension, registerExtension, getWalletProviderRegistry, WalletProviderPriority } from '@dynamic-labs-sdk/client/core';
2
- import { getWallets } from '@wallet-standard/app';
3
- import { i as isVersionedTransaction, r as registerSolanaNetworkProviderBuilder } from './isVersionedTransaction.esm.js';
4
- import { getActiveNetworkData, assertWalletAccountSigningAvailability } from '@dynamic-labs-sdk/client';
5
- import { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';
6
- import { VersionedTransaction, Transaction } from '@solana/web3.js';
7
- import bs58 from 'bs58';
8
-
9
- const getActiveNetworkCluster = async ({ walletAccount }, client)=>{
10
- const { networkData } = await getActiveNetworkData({
11
- walletAccount
12
- }, client);
13
- if (!(networkData == null ? void 0 : networkData.cluster)) {
14
- return;
15
- }
16
- return `solana:${networkData.cluster}`;
17
- };
18
-
19
- const getFeaturesForSolanaStandardWallet = (wallet)=>{
20
- return wallet.features;
21
- };
22
-
23
- const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletStandardWallet })=>{
24
- const features = getFeaturesForSolanaStandardWallet(walletStandardWallet);
25
- const walletProviderType = WalletProviderEnum.BrowserExtension;
26
- const key = formatWalletProviderKey({
27
- chain: 'SOL',
28
- displayName: walletStandardWallet.name,
29
- walletProviderType
30
- });
31
- const connect = async ()=>{
32
- var _features_standardconnect, _result_accounts;
33
- const autoConnectedAccounts = walletStandardWallet.accounts;
34
- // some wallets like Farcaster will auto inject the account into the wallet object
35
- // instead of returning it from the connect method
36
- // so we need to check for that first
37
- if ((autoConnectedAccounts == null ? void 0 : autoConnectedAccounts.length) && autoConnectedAccounts[0].publicKey && autoConnectedAccounts[0].address) {
38
- return {
39
- addresses: [
40
- {
41
- address: autoConnectedAccounts[0].address,
42
- publicKey: autoConnectedAccounts[0].publicKey.toString()
43
- }
44
- ]
45
- };
46
- }
47
- const connectMethod = (_features_standardconnect = features['standard:connect']) == null ? void 0 : _features_standardconnect.connect;
48
- assertDefined(connectMethod, 'connect method not found in wallet features');
49
- const result = await connectMethod({
50
- silent: false
51
- });
52
- return {
53
- addresses: (_result_accounts = result.accounts) == null ? void 0 : _result_accounts.map((account)=>{
54
- var _account_publicKey;
55
- return {
56
- address: account.address,
57
- publicKey: (_account_publicKey = account.publicKey) == null ? void 0 : _account_publicKey.toString()
58
- };
59
- })
60
- };
61
- };
62
- const disconnect = async ()=>{
63
- var _features_standarddisconnect;
64
- const disconnectMethod = (_features_standarddisconnect = features['standard:disconnect']) == null ? void 0 : _features_standarddisconnect.disconnect;
65
- assertDefined(disconnectMethod, 'disconnect method not found in wallet features');
66
- await disconnectMethod();
67
- };
68
- const getActiveNetworkId = async ()=>getActiveNetworkIdFromLastKnownRegistry({
69
- client: dynamicClient,
70
- walletProviderKey: key
71
- });
72
- const getCurrentAccount = async ()=>{
73
- var _walletStandardWallet_accounts;
74
- if (!isConnected() && connect) {
75
- await connect();
76
- }
77
- const account = (_walletStandardWallet_accounts = walletStandardWallet.accounts) == null ? void 0 : _walletStandardWallet_accounts[0];
78
- assertDefined(account, 'No connected accounts found');
79
- return account;
80
- };
81
- const isConnected = ()=>{
82
- var _walletStandardWallet_accounts;
83
- return ((_walletStandardWallet_accounts = walletStandardWallet.accounts) == null ? void 0 : _walletStandardWallet_accounts.length) > 0;
84
- };
85
- const getConnectedAddresses = async ()=>{
86
- if (!isConnected() && connect) {
87
- await connect();
88
- }
89
- return {
90
- addresses: walletStandardWallet.accounts.map((account)=>account.address)
91
- };
92
- };
93
- const signAllTransactions = async ({ transactions, walletAccount })=>{
94
- var _features_solanasignTransaction;
95
- const signTransactionMethod = (_features_solanasignTransaction = features['solana:signTransaction']) == null ? void 0 : _features_solanasignTransaction.signTransaction;
96
- assertDefined(signTransactionMethod, 'signTransaction method not found in wallet features');
97
- await assertWalletAccountSigningAvailability({
98
- walletAccount
99
- }, dynamicClient);
100
- const account = await getCurrentAccount();
101
- const chain = await getActiveNetworkCluster({
102
- walletAccount
103
- }, dynamicClient);
104
- assertDefined(chain, 'Could not get active chain for wallet account');
105
- const transactionsInput = transactions.map((transaction)=>({
106
- account,
107
- chain,
108
- transaction: transaction.serialize({
109
- requireAllSignatures: false
110
- })
111
- }));
112
- const signTransactionResult = await signTransactionMethod(...transactionsInput);
113
- const signedTransactions = signTransactionResult.map(({ signedTransaction }, index)=>{
114
- const inputTransaction = transactions[index];
115
- if (isVersionedTransaction(inputTransaction)) {
116
- return VersionedTransaction.deserialize(signedTransaction);
117
- }
118
- return Transaction.from(signedTransaction);
119
- });
120
- return {
121
- signedTransactions
122
- };
123
- };
124
- const signAndSendTransaction = async ({ transaction, walletAccount })=>{
125
- var _features_solanasignAndSendTransaction;
126
- await assertWalletAccountSigningAvailability({
127
- walletAccount
128
- }, dynamicClient);
129
- const signAndSendTransactionMethod = (_features_solanasignAndSendTransaction = features['solana:signAndSendTransaction']) == null ? void 0 : _features_solanasignAndSendTransaction.signAndSendTransaction;
130
- assertDefined(signAndSendTransactionMethod, 'signAndSendTransaction method not found in wallet features');
131
- const account = await getCurrentAccount();
132
- const chain = await getActiveNetworkCluster({
133
- walletAccount
134
- }, dynamicClient);
135
- assertDefined(chain, 'Could not get active chain for wallet account');
136
- const signedTransactions = await signAndSendTransactionMethod({
137
- account,
138
- chain,
139
- transaction: transaction.serialize({
140
- requireAllSignatures: false
141
- })
142
- });
143
- const [{ signature }] = signedTransactions;
144
- return {
145
- signature: bs58.encode(signature)
146
- };
147
- };
148
- const signMessage = async ({ message, walletAccount })=>{
149
- var _features_solanasignMessage;
150
- const signMessageMethod = (_features_solanasignMessage = features['solana:signMessage']) == null ? void 0 : _features_solanasignMessage.signMessage;
151
- assertDefined(signMessageMethod, 'signMessage method not found in wallet features');
152
- assertDefined(walletAccount, 'Wallet account not found');
153
- await assertWalletAccountSigningAvailability({
154
- walletAccount
155
- }, dynamicClient);
156
- const encodedMessage = new TextEncoder().encode(message);
157
- const account = await getCurrentAccount();
158
- const messages = await signMessageMethod({
159
- account,
160
- message: encodedMessage
161
- });
162
- return {
163
- signature: bufferToBase64(messages[0].signature)
164
- };
165
- };
166
- const signTransaction = async ({ transaction, walletAccount })=>{
167
- const signedTransactions = await signAllTransactions({
168
- transactions: [
169
- transaction
170
- ],
171
- walletAccount
172
- });
173
- return {
174
- signedTransaction: signedTransactions.signedTransactions[0]
175
- };
176
- };
177
- const switchActiveNetwork = async ({ networkId })=>switchActiveNetworkInLastKnownRegistry({
178
- client: dynamicClient,
179
- networkId,
180
- walletProviderKey: key
181
- });
182
- const { getEventEmitter, cleanupEventEmitter } = createWalletProviderEventEmitter({
183
- removeEventListeners: ({ setupReturnValue })=>{
184
- assertDefined(setupReturnValue, 'Setup return value not defined');
185
- setupReturnValue();
186
- },
187
- setupEventListeners: ({ handleAccountsChanged })=>{
188
- const eventsFeature = features['standard:events'];
189
- return eventsFeature.on('change', ({ accounts })=>{
190
- var _accounts_map;
191
- handleAccountsChanged({
192
- addresses: (_accounts_map = accounts == null ? void 0 : accounts.map((account)=>account.address)) != null ? _accounts_map : []
193
- });
194
- });
195
- },
196
- supportedEvents: [
197
- 'accountsChanged'
198
- ]
199
- });
200
- const terminate = async ()=>{
201
- cleanupEventEmitter();
202
- };
203
- const walletProvider = {
204
- chain: 'SOL',
205
- connect,
206
- disconnect,
207
- get events () {
208
- return getEventEmitter();
209
- },
210
- getActiveNetworkId,
211
- getConnectedAddresses,
212
- groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),
213
- key,
214
- metadata: {
215
- displayName: walletStandardWallet.name,
216
- icon: walletStandardWallet.icon
217
- },
218
- signAllTransactions,
219
- signAndSendTransaction,
220
- signMessage,
221
- signTransaction,
222
- switchActiveNetwork,
223
- terminate,
224
- walletProviderType
225
- };
226
- return walletProvider;
227
- };
228
-
229
- const hasAllRequiredFeatures = (wallet)=>{
230
- var _wallet_features, _wallet_features1, _wallet_features2, _wallet_features3;
231
- return Boolean(((_wallet_features = wallet.features) == null ? void 0 : _wallet_features['standard:events']) && ((_wallet_features1 = wallet.features) == null ? void 0 : _wallet_features1['standard:connect']) && ((_wallet_features2 = wallet.features) == null ? void 0 : _wallet_features2['solana:signTransaction']) && ((_wallet_features3 = wallet.features) == null ? void 0 : _wallet_features3['solana:signMessage']));
232
- };
233
-
234
- const SOLANA_WALLET_STANDARD_EXTENSION_KEY = 'solanaWalletStandard';
235
- /**
236
- * Adds the Solana Wallet Standard extension to the Dynamic client.
237
- *
238
- * This extension enables integration with wallets that implement the Solana Wallet Standard,
239
- * automatically detecting and registering compatible wallets for use with the Dynamic SDK.
240
- *
241
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
242
- */ const addSolanaWalletStandardExtension = (client = getDefaultClient())=>{
243
- if (hasExtension({
244
- extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY
245
- }, client)) {
246
- return;
247
- }
248
- registerExtension({
249
- extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY
250
- }, client);
251
- registerSolanaNetworkProviderBuilder(client);
252
- const walletProviderRegistry = getWalletProviderRegistry(client);
253
- const walletStandardWallets = getWallets().get().filter(hasAllRequiredFeatures);
254
- walletStandardWallets.forEach((walletStandardWallet)=>{
255
- const walletProvider = createWalletProviderFromSolanaStandardWallet({
256
- dynamicClient: client,
257
- walletStandardWallet
258
- });
259
- walletProviderRegistry.register({
260
- priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,
261
- walletProvider
262
- });
263
- });
264
- };
265
-
266
- export { addSolanaWalletStandardExtension as a };