@dynamic-labs-sdk/solana 0.1.2 → 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 -606
  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 @@
1
+ {"version":3,"file":"SolanaNetworkProvider.types.d.ts","sourceRoot":"","sources":["../src/SolanaNetworkProvider.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAE/D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,kBAAkB;QAC1B,GAAG,EAAE,qBAAqB,CAAC;KAC5B;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolanaWalletAccount.types.d.ts","sourceRoot":"","sources":["../src/SolanaWalletAccount.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAE3D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,gBAAgB;QACxB,GAAG,EAAE,mBAAmB,CAAC;KAC1B;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolanaWalletProvider.types.d.ts","sourceRoot":"","sources":["../src/SolanaWalletProvider.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,KAAK,EAAE,KAAK,CAAC;IACb,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EAChE,YAAY,EACZ,aAAa,GACd,EAAE;QACD,YAAY,EAAE,CAAC,EAAE,CAAC;QAClB,aAAa,EAAE,mBAAmB,CAAC;KACpC,GAAG,OAAO,CAAC;QAAE,kBAAkB,EAAE,CAAC,EAAE,CAAA;KAAE,CAAC,CAAC;IACzC,sBAAsB,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EACnE,WAAW,EACX,OAAO,EACP,aAAa,GACd,EAAE;QACD,OAAO,CAAC,EAAE,WAAW,CAAC;QACtB,WAAW,EAAE,CAAC,CAAC;QACf,aAAa,EAAE,mBAAmB,CAAC;KACpC,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnC,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EAC5D,WAAW,EACX,aAAa,GACd,EAAE;QACD,WAAW,EAAE,CAAC,CAAC;QACf,aAAa,EAAE,mBAAmB,CAAC;KACpC,GAAG,OAAO,CAAC;QAAE,iBAAiB,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CACvC,CAAC"}
@@ -7,5 +7,5 @@
7
7
  *
8
8
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
9
9
  */
10
- export declare const addSolanaExtension: (client?: any) => void;
10
+ export declare const addSolanaExtension: (client?: import("@dynamic-labs-sdk/client").DynamicClient) => void;
11
11
  //# sourceMappingURL=addSolanaExtension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSolanaExtension.d.ts","sourceRoot":"","sources":["../../src/addSolanaExtension/addSolanaExtension.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,iEAAkC,IAGhE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/addSolanaExtension/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,231 @@
1
+ //#region rolldown:runtime
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
+ key = keys[i];
12
+ if (!__hasOwnProp.call(to, key) && key !== except) {
13
+ __defProp(to, key, {
14
+ get: ((k) => from[k]).bind(null, key),
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ }
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
+ value: mod,
24
+ enumerable: true
25
+ }) : target, mod));
26
+
27
+ //#endregion
28
+ const require_isVersionedTransaction = require('./isVersionedTransaction-BAaz3ONI.cjs.js');
29
+ let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
30
+ let _solana_web3_js = require("@solana/web3.js");
31
+ let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
32
+ let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
33
+ let _wallet_standard_app = require("@wallet-standard/app");
34
+ let bs58 = require("bs58");
35
+ bs58 = __toESM(bs58);
36
+
37
+ //#region src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.ts
38
+ const getActiveNetworkCluster = async ({ walletAccount }, client) => {
39
+ const { networkData } = await (0, _dynamic_labs_sdk_client.getActiveNetworkData)({ walletAccount }, client);
40
+ if (!networkData?.cluster) return;
41
+ return `solana:${networkData.cluster}`;
42
+ };
43
+
44
+ //#endregion
45
+ //#region src/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.ts
46
+ const getFeaturesForSolanaStandardWallet = (wallet) => {
47
+ return wallet.features;
48
+ };
49
+
50
+ //#endregion
51
+ //#region src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.ts
52
+ const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletStandardWallet }) => {
53
+ const features = getFeaturesForSolanaStandardWallet(walletStandardWallet);
54
+ const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
55
+ const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
56
+ chain: "SOL",
57
+ displayName: walletStandardWallet.name,
58
+ walletProviderType
59
+ });
60
+ const connect = async () => {
61
+ const autoConnectedAccounts = walletStandardWallet.accounts;
62
+ if (autoConnectedAccounts?.length && autoConnectedAccounts[0].publicKey && autoConnectedAccounts[0].address) return { addresses: [{
63
+ address: autoConnectedAccounts[0].address,
64
+ publicKey: autoConnectedAccounts[0].publicKey.toString()
65
+ }] };
66
+ const connectMethod = features["standard:connect"]?.connect;
67
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(connectMethod, "connect method not found in wallet features");
68
+ return { addresses: (await connectMethod({ silent: false })).accounts?.map((account) => ({
69
+ address: account.address,
70
+ publicKey: account.publicKey?.toString()
71
+ })) };
72
+ };
73
+ const disconnectFeature = features["standard:disconnect"]?.disconnect;
74
+ const getActiveNetworkId = async () => (0, _dynamic_labs_sdk_client_core.getActiveNetworkIdFromLastKnownRegistry)({
75
+ client: dynamicClient,
76
+ walletProviderKey: key
77
+ });
78
+ const getCurrentAccount = async () => {
79
+ if (!isConnected() && connect) await connect();
80
+ const account = walletStandardWallet.accounts?.[0];
81
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(account, "No connected accounts found");
82
+ return account;
83
+ };
84
+ const isConnected = () => {
85
+ return walletStandardWallet.accounts?.length > 0;
86
+ };
87
+ const getConnectedAddresses = async () => {
88
+ if (!isConnected() && connect) await connect();
89
+ return { addresses: walletStandardWallet.accounts.map((account) => account.address) };
90
+ };
91
+ const signAllTransactions = async ({ transactions, walletAccount }) => {
92
+ const signTransactionMethod = features["solana:signTransaction"]?.signTransaction;
93
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(signTransactionMethod, "signTransaction method not found in wallet features");
94
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
95
+ const account = await getCurrentAccount();
96
+ const chain = await getActiveNetworkCluster({ walletAccount }, dynamicClient);
97
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(chain, "Could not get active chain for wallet account");
98
+ return { signedTransactions: (await signTransactionMethod(...transactions.map((transaction) => ({
99
+ account,
100
+ chain,
101
+ transaction: transaction.serialize({ requireAllSignatures: false })
102
+ })))).map(({ signedTransaction }, index) => {
103
+ const inputTransaction = transactions[index];
104
+ if (require_isVersionedTransaction.isVersionedTransaction(inputTransaction)) return _solana_web3_js.VersionedTransaction.deserialize(signedTransaction);
105
+ return _solana_web3_js.Transaction.from(signedTransaction);
106
+ }) };
107
+ };
108
+ const signAndSendTransaction = async ({ transaction, walletAccount }) => {
109
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
110
+ const signAndSendTransactionMethod = features["solana:signAndSendTransaction"]?.signAndSendTransaction;
111
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(signAndSendTransactionMethod, "signAndSendTransaction method not found in wallet features");
112
+ const account = await getCurrentAccount();
113
+ const chain = await getActiveNetworkCluster({ walletAccount }, dynamicClient);
114
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(chain, "Could not get active chain for wallet account");
115
+ const [{ signature }] = await signAndSendTransactionMethod({
116
+ account,
117
+ chain,
118
+ transaction: transaction.serialize({ requireAllSignatures: false })
119
+ });
120
+ return { signature: bs58.default.encode(signature) };
121
+ };
122
+ const signMessage = async ({ message, walletAccount }) => {
123
+ const signMessageMethod = features["solana:signMessage"]?.signMessage;
124
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(signMessageMethod, "signMessage method not found in wallet features");
125
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account not found");
126
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
127
+ const encodedMessage = new TextEncoder().encode(message);
128
+ return { signature: (0, _dynamic_labs_sdk_client_core.bufferToBase64)((await signMessageMethod({
129
+ account: await getCurrentAccount(),
130
+ message: encodedMessage
131
+ }))[0].signature) };
132
+ };
133
+ const signTransaction = async ({ transaction, walletAccount }) => {
134
+ return { signedTransaction: (await signAllTransactions({
135
+ transactions: [transaction],
136
+ walletAccount
137
+ })).signedTransactions[0] };
138
+ };
139
+ const switchActiveNetwork = async ({ networkId }) => (0, _dynamic_labs_sdk_client_core.switchActiveNetworkInLastKnownRegistry)({
140
+ client: dynamicClient,
141
+ networkId,
142
+ walletProviderKey: key
143
+ });
144
+ const { getEventEmitter, cleanupEventEmitter } = (0, _dynamic_labs_sdk_client_core.createWalletProviderEventEmitter)({
145
+ removeEventListeners: ({ setupReturnValue }) => {
146
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(setupReturnValue, "Setup return value not defined");
147
+ setupReturnValue();
148
+ },
149
+ setupEventListeners: ({ handleAccountsChanged }) => {
150
+ return features["standard:events"].on("change", ({ accounts }) => {
151
+ handleAccountsChanged({ addresses: accounts?.map((account) => account.address) ?? [] });
152
+ });
153
+ },
154
+ supportedEvents: ["accountsChanged"]
155
+ });
156
+ const terminate = async () => {
157
+ cleanupEventEmitter();
158
+ };
159
+ return {
160
+ chain: "SOL",
161
+ connect,
162
+ disconnect: disconnectFeature,
163
+ get events() {
164
+ return getEventEmitter();
165
+ },
166
+ getActiveNetworkId,
167
+ getConnectedAddresses,
168
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(walletStandardWallet.name),
169
+ key,
170
+ metadata: {
171
+ displayName: walletStandardWallet.name,
172
+ icon: walletStandardWallet.icon
173
+ },
174
+ signAllTransactions,
175
+ signAndSendTransaction,
176
+ signMessage,
177
+ signTransaction,
178
+ switchActiveNetwork,
179
+ terminate,
180
+ walletProviderType
181
+ };
182
+ };
183
+
184
+ //#endregion
185
+ //#region src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts
186
+ const hasAllRequiredFeatures = (wallet) => {
187
+ return Boolean(wallet.features?.["standard:events"] && wallet.features?.["standard:connect"] && wallet.features?.["solana:signTransaction"] && wallet.features?.["solana:signMessage"]);
188
+ };
189
+
190
+ //#endregion
191
+ //#region src/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.ts
192
+ const SOLANA_WALLET_STANDARD_EXTENSION_KEY = "solanaWalletStandard";
193
+ /**
194
+ * Adds the Solana Wallet Standard extension to the Dynamic client.
195
+ *
196
+ * This extension enables integration with wallets that implement the Solana Wallet Standard,
197
+ * automatically detecting and registering compatible wallets for use with the Dynamic SDK.
198
+ *
199
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
200
+ */
201
+ const addSolanaWalletStandardExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
202
+ if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client)) return;
203
+ (0, _dynamic_labs_sdk_client_core.registerExtension)({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client);
204
+ require_isVersionedTransaction.registerSolanaNetworkProviderBuilder(client);
205
+ const walletProviderRegistry = (0, _dynamic_labs_sdk_client_core.getWalletProviderRegistry)(client);
206
+ (0, _wallet_standard_app.getWallets)().get().filter(hasAllRequiredFeatures).forEach((walletStandardWallet) => {
207
+ const walletProvider = createWalletProviderFromSolanaStandardWallet({
208
+ dynamicClient: client,
209
+ walletStandardWallet
210
+ });
211
+ walletProviderRegistry.register({
212
+ priority: _dynamic_labs_sdk_client_core.WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,
213
+ walletProvider
214
+ });
215
+ });
216
+ };
217
+
218
+ //#endregion
219
+ Object.defineProperty(exports, '__toESM', {
220
+ enumerable: true,
221
+ get: function () {
222
+ return __toESM;
223
+ }
224
+ });
225
+ Object.defineProperty(exports, 'addSolanaWalletStandardExtension', {
226
+ enumerable: true,
227
+ get: function () {
228
+ return addSolanaWalletStandardExtension;
229
+ }
230
+ });
231
+ //# sourceMappingURL=addSolanaWalletStandardExtension-BToyMUc9.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSolanaWalletStandardExtension-BToyMUc9.cjs.js","names":["WalletProviderEnum","connect: SolanaWalletProvider['connect']","getActiveNetworkId: SolanaWalletProvider['getActiveNetworkId']","getConnectedAddresses: SolanaWalletProvider['getConnectedAddresses']","signAllTransactions: SolanaWalletProvider['signAllTransactions']","isVersionedTransaction","VersionedTransaction","Transaction","signAndSendTransaction: SolanaWalletProvider['signAndSendTransaction']","signMessage: SolanaWalletProvider['signMessage']","signTransaction: SolanaWalletProvider['signTransaction']","switchActiveNetwork: SolanaWalletProvider['switchActiveNetwork']","terminate: SolanaWalletProvider['terminate']","WalletProviderPriority"],"sources":["../src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.ts","../src/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.ts","../src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.ts","../src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts","../src/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.ts"],"sourcesContent":["import type { DynamicClient, WalletAccount } from '@dynamic-labs-sdk/client';\nimport { getActiveNetworkData } from '@dynamic-labs-sdk/client';\n\ntype GetActiveNetworkClusterParams = {\n walletAccount: WalletAccount;\n};\n\nexport const getActiveNetworkCluster = async (\n { walletAccount }: GetActiveNetworkClusterParams,\n client: DynamicClient\n): Promise<`solana:${string}` | undefined> => {\n const { networkData } = await getActiveNetworkData({ walletAccount }, client);\n\n if (!networkData?.cluster) {\n return;\n }\n\n return `solana:${networkData.cluster}`;\n};\n","import type { Wallet } from '@wallet-standard/base';\nimport type {\n SignAndSendTransactionFeature,\n SignMessageFeature,\n SignTransactionFeature,\n} from '@wallet-standard/experimental-features';\nimport type {\n StandardConnectFeature,\n StandardDisconnectFeature,\n StandardEventsFeature,\n} from '@wallet-standard/features';\n\ntype WalletStandardFeatures = {\n 'solana:signAndSendTransaction': SignAndSendTransactionFeature['experimental:signAndSendTransaction'];\n 'solana:signMessage': SignMessageFeature['experimental:signMessage'];\n 'solana:signTransaction': SignTransactionFeature['experimental:signTransaction'];\n} & StandardConnectFeature &\n Partial<StandardDisconnectFeature> &\n StandardEventsFeature;\n\nexport const getFeaturesForSolanaStandardWallet = (wallet: Wallet) => {\n return wallet.features as WalletStandardFeatures;\n};\n","import {\n type DynamicClient,\n assertWalletAccountSigningAvailability,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n bufferToBase64,\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport type { Wallet as WalletStandardWallet } from '@wallet-standard/base';\nimport type { SignTransactionInput } from '@wallet-standard/experimental-features';\nimport bs58 from 'bs58';\n\nimport type { SolanaWalletProvider } from '../../../SolanaWalletProvider.types';\nimport { isVersionedTransaction } from '../../../utils/isVersionedTransaction';\nimport { getActiveNetworkCluster } from '../getActiveNetworkCluster';\nimport { getFeaturesForSolanaStandardWallet } from '../getFeaturesForSolanaStandardWallet';\n\ntype CreateWalletProviderFromSolanaStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: WalletStandardWallet;\n};\n\nexport const createWalletProviderFromSolanaStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromSolanaStandardWalletParams): SolanaWalletProvider => {\n const features = getFeaturesForSolanaStandardWallet(walletStandardWallet);\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'SOL',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const connect: SolanaWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = walletStandardWallet.accounts;\n\n // some wallets like Farcaster will auto inject the account into the wallet object\n // instead of returning it from the connect method\n // so we need to check for that first\n if (\n autoConnectedAccounts?.length &&\n autoConnectedAccounts[0].publicKey &&\n autoConnectedAccounts[0].address\n ) {\n return {\n addresses: [\n {\n address: autoConnectedAccounts[0].address,\n publicKey: autoConnectedAccounts[0].publicKey.toString(),\n },\n ],\n };\n }\n\n const connectMethod = features['standard:connect']?.connect;\n\n assertDefined(connectMethod, 'connect method not found in wallet features');\n\n const result = await connectMethod({ silent: false });\n\n return {\n addresses: result.accounts?.map((account) => ({\n address: account.address,\n publicKey: account.publicKey?.toString(),\n })),\n };\n };\n const disconnectFeature = features['standard:disconnect']?.disconnect;\n\n const getActiveNetworkId: SolanaWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getCurrentAccount = async () => {\n if (!isConnected() && connect) {\n await connect();\n }\n\n const account = walletStandardWallet.accounts?.[0];\n\n assertDefined(account, 'No connected accounts found');\n\n return account;\n };\n\n const isConnected = (): boolean => {\n return walletStandardWallet.accounts?.length > 0;\n };\n\n const getConnectedAddresses: SolanaWalletProvider['getConnectedAddresses'] =\n async () => {\n if (!isConnected() && connect) {\n await connect();\n }\n\n return {\n addresses: walletStandardWallet.accounts.map(\n (account) => account.address\n ),\n };\n };\n\n const signAllTransactions: SolanaWalletProvider['signAllTransactions'] =\n async ({ transactions, walletAccount }) => {\n const signTransactionMethod =\n features['solana:signTransaction']?.signTransaction;\n\n assertDefined(\n signTransactionMethod,\n 'signTransaction method not found in wallet features'\n );\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const account = await getCurrentAccount();\n\n const chain = await getActiveNetworkCluster(\n { walletAccount },\n dynamicClient\n );\n assertDefined(chain, 'Could not get active chain for wallet account');\n\n const transactionsInput: SignTransactionInput[] = transactions.map(\n (transaction) => ({\n account,\n chain,\n transaction: transaction.serialize({\n requireAllSignatures: false,\n }) as Uint8Array<ArrayBufferLike>,\n })\n );\n\n const signTransactionResult = await signTransactionMethod(\n ...transactionsInput\n );\n\n const signedTransactions = signTransactionResult.map(\n ({ signedTransaction }, index) => {\n const inputTransaction = transactions[index];\n type T = typeof inputTransaction;\n\n if (isVersionedTransaction(inputTransaction)) {\n return VersionedTransaction.deserialize(signedTransaction) as T;\n }\n return Transaction.from(signedTransaction) as T;\n }\n );\n\n return { signedTransactions };\n };\n\n const signAndSendTransaction: SolanaWalletProvider['signAndSendTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndSendTransactionMethod =\n features['solana:signAndSendTransaction']?.signAndSendTransaction;\n\n assertDefined(\n signAndSendTransactionMethod,\n 'signAndSendTransaction method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n const chain = await getActiveNetworkCluster(\n { walletAccount },\n dynamicClient\n );\n assertDefined(chain, 'Could not get active chain for wallet account');\n\n const signedTransactions = await signAndSendTransactionMethod({\n account,\n chain,\n transaction: transaction.serialize({\n requireAllSignatures: false,\n }) as Uint8Array<ArrayBufferLike>,\n });\n\n const [{ signature }] = signedTransactions;\n\n return { signature: bs58.encode(signature) };\n };\n\n const signMessage: SolanaWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const signMessageMethod = features['solana:signMessage']?.signMessage;\n\n assertDefined(\n signMessageMethod,\n 'signMessage method not found in wallet features'\n );\n\n assertDefined(walletAccount, 'Wallet account not found');\n\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const encodedMessage = new TextEncoder().encode(message);\n\n const account = await getCurrentAccount();\n\n const messages = await signMessageMethod({\n account,\n message: encodedMessage,\n });\n\n return { signature: bufferToBase64(messages[0].signature) };\n };\n\n const signTransaction: SolanaWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const signedTransactions = await signAllTransactions({\n transactions: [transaction],\n walletAccount,\n });\n\n return { signedTransaction: signedTransactions.signedTransactions[0] };\n };\n\n const switchActiveNetwork: SolanaWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n assertDefined(setupReturnValue, 'Setup return value not defined');\n\n setupReturnValue();\n },\n\n setupEventListeners: ({ handleAccountsChanged }) => {\n const eventsFeature = features['standard:events'];\n\n return eventsFeature.on('change', ({ accounts }) => {\n handleAccountsChanged({\n addresses: accounts?.map((account) => account.address) ?? [],\n });\n });\n },\n\n supportedEvents: ['accountsChanged'],\n });\n\n const terminate: SolanaWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n const walletProvider: SolanaWalletProvider = {\n chain: 'SOL',\n connect,\n disconnect: disconnectFeature,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAllTransactions,\n signAndSendTransaction,\n signMessage,\n signTransaction,\n switchActiveNetwork,\n terminate,\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import type { Wallet } from '@wallet-standard/base';\n\nexport const hasAllRequiredFeatures = (wallet: Wallet): boolean => {\n return Boolean(\n wallet.features?.['standard:events'] &&\n wallet.features?.['standard:connect'] &&\n wallet.features?.['solana:signTransaction'] &&\n wallet.features?.['solana:signMessage']\n );\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport { getWallets } from '@wallet-standard/app';\n\nimport { registerSolanaNetworkProviderBuilder } from '../../registerSolanaNetworkProviderBuilder';\nimport { createWalletProviderFromSolanaStandardWallet } from '../utils/createWalletProviderFromSolanaStandardWallet';\nimport { hasAllRequiredFeatures } from '../utils/hasAllRequiredFeatures';\n\nexport const SOLANA_WALLET_STANDARD_EXTENSION_KEY = 'solanaWalletStandard';\n\n/**\n * Adds the Solana Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Solana Wallet Standard,\n * automatically detecting and registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addSolanaWalletStandardExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerSolanaNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletStandardWallets = getWallets()\n .get()\n .filter(hasAllRequiredFeatures);\n\n walletStandardWallets.forEach((walletStandardWallet) => {\n const walletProvider = createWalletProviderFromSolanaStandardWallet({\n dynamicClient: client,\n walletStandardWallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ import { n as registerSolanaNetworkProviderBuilder, t as isVersionedTransaction } from "./isVersionedTransaction-B-yrMKci.esm.js";
2
+ import { WalletProviderPriority, assertDefined, bufferToBase64, createWalletProviderEventEmitter, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
3
+ import { Transaction, VersionedTransaction } from "@solana/web3.js";
4
+ import { assertWalletAccountSigningAvailability, getActiveNetworkData } from "@dynamic-labs-sdk/client";
5
+ import { WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
6
+ import { getWallets } from "@wallet-standard/app";
7
+ import bs58 from "bs58";
8
+
9
+ //#region src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.ts
10
+ const getActiveNetworkCluster = async ({ walletAccount }, client) => {
11
+ const { networkData } = await getActiveNetworkData({ walletAccount }, client);
12
+ if (!networkData?.cluster) return;
13
+ return `solana:${networkData.cluster}`;
14
+ };
15
+
16
+ //#endregion
17
+ //#region src/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.ts
18
+ const getFeaturesForSolanaStandardWallet = (wallet) => {
19
+ return wallet.features;
20
+ };
21
+
22
+ //#endregion
23
+ //#region src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.ts
24
+ const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletStandardWallet }) => {
25
+ const features = getFeaturesForSolanaStandardWallet(walletStandardWallet);
26
+ const walletProviderType = WalletProviderEnum.BrowserExtension;
27
+ const key = formatWalletProviderKey({
28
+ chain: "SOL",
29
+ displayName: walletStandardWallet.name,
30
+ walletProviderType
31
+ });
32
+ const connect = async () => {
33
+ const autoConnectedAccounts = walletStandardWallet.accounts;
34
+ if (autoConnectedAccounts?.length && autoConnectedAccounts[0].publicKey && autoConnectedAccounts[0].address) return { addresses: [{
35
+ address: autoConnectedAccounts[0].address,
36
+ publicKey: autoConnectedAccounts[0].publicKey.toString()
37
+ }] };
38
+ const connectMethod = features["standard:connect"]?.connect;
39
+ assertDefined(connectMethod, "connect method not found in wallet features");
40
+ return { addresses: (await connectMethod({ silent: false })).accounts?.map((account) => ({
41
+ address: account.address,
42
+ publicKey: account.publicKey?.toString()
43
+ })) };
44
+ };
45
+ const disconnectFeature = features["standard:disconnect"]?.disconnect;
46
+ const getActiveNetworkId = async () => getActiveNetworkIdFromLastKnownRegistry({
47
+ client: dynamicClient,
48
+ walletProviderKey: key
49
+ });
50
+ const getCurrentAccount = async () => {
51
+ if (!isConnected() && connect) await connect();
52
+ const account = walletStandardWallet.accounts?.[0];
53
+ assertDefined(account, "No connected accounts found");
54
+ return account;
55
+ };
56
+ const isConnected = () => {
57
+ return walletStandardWallet.accounts?.length > 0;
58
+ };
59
+ const getConnectedAddresses = async () => {
60
+ if (!isConnected() && connect) await connect();
61
+ return { addresses: walletStandardWallet.accounts.map((account) => account.address) };
62
+ };
63
+ const signAllTransactions = async ({ transactions, walletAccount }) => {
64
+ const signTransactionMethod = features["solana:signTransaction"]?.signTransaction;
65
+ assertDefined(signTransactionMethod, "signTransaction method not found in wallet features");
66
+ await assertWalletAccountSigningAvailability({ walletAccount }, dynamicClient);
67
+ const account = await getCurrentAccount();
68
+ const chain = await getActiveNetworkCluster({ walletAccount }, dynamicClient);
69
+ assertDefined(chain, "Could not get active chain for wallet account");
70
+ return { signedTransactions: (await signTransactionMethod(...transactions.map((transaction) => ({
71
+ account,
72
+ chain,
73
+ transaction: transaction.serialize({ requireAllSignatures: false })
74
+ })))).map(({ signedTransaction }, index) => {
75
+ const inputTransaction = transactions[index];
76
+ if (isVersionedTransaction(inputTransaction)) return VersionedTransaction.deserialize(signedTransaction);
77
+ return Transaction.from(signedTransaction);
78
+ }) };
79
+ };
80
+ const signAndSendTransaction = async ({ transaction, walletAccount }) => {
81
+ await assertWalletAccountSigningAvailability({ walletAccount }, dynamicClient);
82
+ const signAndSendTransactionMethod = features["solana:signAndSendTransaction"]?.signAndSendTransaction;
83
+ assertDefined(signAndSendTransactionMethod, "signAndSendTransaction method not found in wallet features");
84
+ const account = await getCurrentAccount();
85
+ const chain = await getActiveNetworkCluster({ walletAccount }, dynamicClient);
86
+ assertDefined(chain, "Could not get active chain for wallet account");
87
+ const [{ signature }] = await signAndSendTransactionMethod({
88
+ account,
89
+ chain,
90
+ transaction: transaction.serialize({ requireAllSignatures: false })
91
+ });
92
+ return { signature: bs58.encode(signature) };
93
+ };
94
+ const signMessage = async ({ message, walletAccount }) => {
95
+ const signMessageMethod = features["solana:signMessage"]?.signMessage;
96
+ assertDefined(signMessageMethod, "signMessage method not found in wallet features");
97
+ assertDefined(walletAccount, "Wallet account not found");
98
+ await assertWalletAccountSigningAvailability({ walletAccount }, dynamicClient);
99
+ const encodedMessage = new TextEncoder().encode(message);
100
+ return { signature: bufferToBase64((await signMessageMethod({
101
+ account: await getCurrentAccount(),
102
+ message: encodedMessage
103
+ }))[0].signature) };
104
+ };
105
+ const signTransaction = async ({ transaction, walletAccount }) => {
106
+ return { signedTransaction: (await signAllTransactions({
107
+ transactions: [transaction],
108
+ walletAccount
109
+ })).signedTransactions[0] };
110
+ };
111
+ const switchActiveNetwork = async ({ networkId }) => switchActiveNetworkInLastKnownRegistry({
112
+ client: dynamicClient,
113
+ networkId,
114
+ walletProviderKey: key
115
+ });
116
+ const { getEventEmitter, cleanupEventEmitter } = createWalletProviderEventEmitter({
117
+ removeEventListeners: ({ setupReturnValue }) => {
118
+ assertDefined(setupReturnValue, "Setup return value not defined");
119
+ setupReturnValue();
120
+ },
121
+ setupEventListeners: ({ handleAccountsChanged }) => {
122
+ return features["standard:events"].on("change", ({ accounts }) => {
123
+ handleAccountsChanged({ addresses: accounts?.map((account) => account.address) ?? [] });
124
+ });
125
+ },
126
+ supportedEvents: ["accountsChanged"]
127
+ });
128
+ const terminate = async () => {
129
+ cleanupEventEmitter();
130
+ };
131
+ return {
132
+ chain: "SOL",
133
+ connect,
134
+ disconnect: disconnectFeature,
135
+ get events() {
136
+ return getEventEmitter();
137
+ },
138
+ getActiveNetworkId,
139
+ getConnectedAddresses,
140
+ groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),
141
+ key,
142
+ metadata: {
143
+ displayName: walletStandardWallet.name,
144
+ icon: walletStandardWallet.icon
145
+ },
146
+ signAllTransactions,
147
+ signAndSendTransaction,
148
+ signMessage,
149
+ signTransaction,
150
+ switchActiveNetwork,
151
+ terminate,
152
+ walletProviderType
153
+ };
154
+ };
155
+
156
+ //#endregion
157
+ //#region src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts
158
+ const hasAllRequiredFeatures = (wallet) => {
159
+ return Boolean(wallet.features?.["standard:events"] && wallet.features?.["standard:connect"] && wallet.features?.["solana:signTransaction"] && wallet.features?.["solana:signMessage"]);
160
+ };
161
+
162
+ //#endregion
163
+ //#region src/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.ts
164
+ const SOLANA_WALLET_STANDARD_EXTENSION_KEY = "solanaWalletStandard";
165
+ /**
166
+ * Adds the Solana Wallet Standard extension to the Dynamic client.
167
+ *
168
+ * This extension enables integration with wallets that implement the Solana Wallet Standard,
169
+ * automatically detecting and registering compatible wallets for use with the Dynamic SDK.
170
+ *
171
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
172
+ */
173
+ const addSolanaWalletStandardExtension = (client = getDefaultClient()) => {
174
+ if (hasExtension({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client)) return;
175
+ registerExtension({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client);
176
+ registerSolanaNetworkProviderBuilder(client);
177
+ const walletProviderRegistry = getWalletProviderRegistry(client);
178
+ getWallets().get().filter(hasAllRequiredFeatures).forEach((walletStandardWallet) => {
179
+ const walletProvider = createWalletProviderFromSolanaStandardWallet({
180
+ dynamicClient: client,
181
+ walletStandardWallet
182
+ });
183
+ walletProviderRegistry.register({
184
+ priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,
185
+ walletProvider
186
+ });
187
+ });
188
+ };
189
+
190
+ //#endregion
191
+ export { addSolanaWalletStandardExtension as t };
192
+ //# sourceMappingURL=addSolanaWalletStandardExtension-nZhmVofg.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSolanaWalletStandardExtension-nZhmVofg.esm.js","names":["connect: SolanaWalletProvider['connect']","getActiveNetworkId: SolanaWalletProvider['getActiveNetworkId']","getConnectedAddresses: SolanaWalletProvider['getConnectedAddresses']","signAllTransactions: SolanaWalletProvider['signAllTransactions']","signAndSendTransaction: SolanaWalletProvider['signAndSendTransaction']","signMessage: SolanaWalletProvider['signMessage']","signTransaction: SolanaWalletProvider['signTransaction']","switchActiveNetwork: SolanaWalletProvider['switchActiveNetwork']","terminate: SolanaWalletProvider['terminate']"],"sources":["../src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.ts","../src/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.ts","../src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.ts","../src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts","../src/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.ts"],"sourcesContent":["import type { DynamicClient, WalletAccount } from '@dynamic-labs-sdk/client';\nimport { getActiveNetworkData } from '@dynamic-labs-sdk/client';\n\ntype GetActiveNetworkClusterParams = {\n walletAccount: WalletAccount;\n};\n\nexport const getActiveNetworkCluster = async (\n { walletAccount }: GetActiveNetworkClusterParams,\n client: DynamicClient\n): Promise<`solana:${string}` | undefined> => {\n const { networkData } = await getActiveNetworkData({ walletAccount }, client);\n\n if (!networkData?.cluster) {\n return;\n }\n\n return `solana:${networkData.cluster}`;\n};\n","import type { Wallet } from '@wallet-standard/base';\nimport type {\n SignAndSendTransactionFeature,\n SignMessageFeature,\n SignTransactionFeature,\n} from '@wallet-standard/experimental-features';\nimport type {\n StandardConnectFeature,\n StandardDisconnectFeature,\n StandardEventsFeature,\n} from '@wallet-standard/features';\n\ntype WalletStandardFeatures = {\n 'solana:signAndSendTransaction': SignAndSendTransactionFeature['experimental:signAndSendTransaction'];\n 'solana:signMessage': SignMessageFeature['experimental:signMessage'];\n 'solana:signTransaction': SignTransactionFeature['experimental:signTransaction'];\n} & StandardConnectFeature &\n Partial<StandardDisconnectFeature> &\n StandardEventsFeature;\n\nexport const getFeaturesForSolanaStandardWallet = (wallet: Wallet) => {\n return wallet.features as WalletStandardFeatures;\n};\n","import {\n type DynamicClient,\n assertWalletAccountSigningAvailability,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n bufferToBase64,\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport type { Wallet as WalletStandardWallet } from '@wallet-standard/base';\nimport type { SignTransactionInput } from '@wallet-standard/experimental-features';\nimport bs58 from 'bs58';\n\nimport type { SolanaWalletProvider } from '../../../SolanaWalletProvider.types';\nimport { isVersionedTransaction } from '../../../utils/isVersionedTransaction';\nimport { getActiveNetworkCluster } from '../getActiveNetworkCluster';\nimport { getFeaturesForSolanaStandardWallet } from '../getFeaturesForSolanaStandardWallet';\n\ntype CreateWalletProviderFromSolanaStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: WalletStandardWallet;\n};\n\nexport const createWalletProviderFromSolanaStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromSolanaStandardWalletParams): SolanaWalletProvider => {\n const features = getFeaturesForSolanaStandardWallet(walletStandardWallet);\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'SOL',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const connect: SolanaWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = walletStandardWallet.accounts;\n\n // some wallets like Farcaster will auto inject the account into the wallet object\n // instead of returning it from the connect method\n // so we need to check for that first\n if (\n autoConnectedAccounts?.length &&\n autoConnectedAccounts[0].publicKey &&\n autoConnectedAccounts[0].address\n ) {\n return {\n addresses: [\n {\n address: autoConnectedAccounts[0].address,\n publicKey: autoConnectedAccounts[0].publicKey.toString(),\n },\n ],\n };\n }\n\n const connectMethod = features['standard:connect']?.connect;\n\n assertDefined(connectMethod, 'connect method not found in wallet features');\n\n const result = await connectMethod({ silent: false });\n\n return {\n addresses: result.accounts?.map((account) => ({\n address: account.address,\n publicKey: account.publicKey?.toString(),\n })),\n };\n };\n const disconnectFeature = features['standard:disconnect']?.disconnect;\n\n const getActiveNetworkId: SolanaWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getCurrentAccount = async () => {\n if (!isConnected() && connect) {\n await connect();\n }\n\n const account = walletStandardWallet.accounts?.[0];\n\n assertDefined(account, 'No connected accounts found');\n\n return account;\n };\n\n const isConnected = (): boolean => {\n return walletStandardWallet.accounts?.length > 0;\n };\n\n const getConnectedAddresses: SolanaWalletProvider['getConnectedAddresses'] =\n async () => {\n if (!isConnected() && connect) {\n await connect();\n }\n\n return {\n addresses: walletStandardWallet.accounts.map(\n (account) => account.address\n ),\n };\n };\n\n const signAllTransactions: SolanaWalletProvider['signAllTransactions'] =\n async ({ transactions, walletAccount }) => {\n const signTransactionMethod =\n features['solana:signTransaction']?.signTransaction;\n\n assertDefined(\n signTransactionMethod,\n 'signTransaction method not found in wallet features'\n );\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const account = await getCurrentAccount();\n\n const chain = await getActiveNetworkCluster(\n { walletAccount },\n dynamicClient\n );\n assertDefined(chain, 'Could not get active chain for wallet account');\n\n const transactionsInput: SignTransactionInput[] = transactions.map(\n (transaction) => ({\n account,\n chain,\n transaction: transaction.serialize({\n requireAllSignatures: false,\n }) as Uint8Array<ArrayBufferLike>,\n })\n );\n\n const signTransactionResult = await signTransactionMethod(\n ...transactionsInput\n );\n\n const signedTransactions = signTransactionResult.map(\n ({ signedTransaction }, index) => {\n const inputTransaction = transactions[index];\n type T = typeof inputTransaction;\n\n if (isVersionedTransaction(inputTransaction)) {\n return VersionedTransaction.deserialize(signedTransaction) as T;\n }\n return Transaction.from(signedTransaction) as T;\n }\n );\n\n return { signedTransactions };\n };\n\n const signAndSendTransaction: SolanaWalletProvider['signAndSendTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndSendTransactionMethod =\n features['solana:signAndSendTransaction']?.signAndSendTransaction;\n\n assertDefined(\n signAndSendTransactionMethod,\n 'signAndSendTransaction method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n const chain = await getActiveNetworkCluster(\n { walletAccount },\n dynamicClient\n );\n assertDefined(chain, 'Could not get active chain for wallet account');\n\n const signedTransactions = await signAndSendTransactionMethod({\n account,\n chain,\n transaction: transaction.serialize({\n requireAllSignatures: false,\n }) as Uint8Array<ArrayBufferLike>,\n });\n\n const [{ signature }] = signedTransactions;\n\n return { signature: bs58.encode(signature) };\n };\n\n const signMessage: SolanaWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const signMessageMethod = features['solana:signMessage']?.signMessage;\n\n assertDefined(\n signMessageMethod,\n 'signMessage method not found in wallet features'\n );\n\n assertDefined(walletAccount, 'Wallet account not found');\n\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const encodedMessage = new TextEncoder().encode(message);\n\n const account = await getCurrentAccount();\n\n const messages = await signMessageMethod({\n account,\n message: encodedMessage,\n });\n\n return { signature: bufferToBase64(messages[0].signature) };\n };\n\n const signTransaction: SolanaWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const signedTransactions = await signAllTransactions({\n transactions: [transaction],\n walletAccount,\n });\n\n return { signedTransaction: signedTransactions.signedTransactions[0] };\n };\n\n const switchActiveNetwork: SolanaWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n assertDefined(setupReturnValue, 'Setup return value not defined');\n\n setupReturnValue();\n },\n\n setupEventListeners: ({ handleAccountsChanged }) => {\n const eventsFeature = features['standard:events'];\n\n return eventsFeature.on('change', ({ accounts }) => {\n handleAccountsChanged({\n addresses: accounts?.map((account) => account.address) ?? [],\n });\n });\n },\n\n supportedEvents: ['accountsChanged'],\n });\n\n const terminate: SolanaWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n const walletProvider: SolanaWalletProvider = {\n chain: 'SOL',\n connect,\n disconnect: disconnectFeature,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAllTransactions,\n signAndSendTransaction,\n signMessage,\n signTransaction,\n switchActiveNetwork,\n terminate,\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import type { Wallet } from '@wallet-standard/base';\n\nexport const hasAllRequiredFeatures = (wallet: Wallet): boolean => {\n return Boolean(\n wallet.features?.['standard:events'] &&\n wallet.features?.['standard:connect'] &&\n wallet.features?.['solana:signTransaction'] &&\n wallet.features?.['solana:signMessage']\n );\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport { getWallets } from '@wallet-standard/app';\n\nimport { registerSolanaNetworkProviderBuilder } from '../../registerSolanaNetworkProviderBuilder';\nimport { createWalletProviderFromSolanaStandardWallet } from '../utils/createWalletProviderFromSolanaStandardWallet';\nimport { hasAllRequiredFeatures } from '../utils/hasAllRequiredFeatures';\n\nexport const SOLANA_WALLET_STANDARD_EXTENSION_KEY = 'solanaWalletStandard';\n\n/**\n * Adds the Solana Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Solana Wallet Standard,\n * automatically detecting and registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addSolanaWalletStandardExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerSolanaNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletStandardWallets = getWallets()\n .get()\n .filter(hasAllRequiredFeatures);\n\n walletStandardWallets.forEach((walletStandardWallet) => {\n const walletProvider = createWalletProviderFromSolanaStandardWallet({\n dynamicClient: client,\n walletStandardWallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}