@dynamic-labs-sdk/solana 1.18.0 → 1.19.0

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 (60) hide show
  1. package/dist/addSolanaExtension/addSolanaExtension.d.ts +10 -1
  2. package/dist/addSolanaExtension/addSolanaExtension.d.ts.map +1 -1
  3. package/dist/{addSolanaWalletStandardExtension-BGeu9CyF.esm.js → addSolanaWalletStandardExtension-CbR1BbPB.esm.js} +3 -3
  4. package/dist/{addSolanaWalletStandardExtension-BGeu9CyF.esm.js.map → addSolanaWalletStandardExtension-CbR1BbPB.esm.js.map} +1 -1
  5. package/dist/{addSolanaWalletStandardExtension-DjnLEEh4.cjs → addSolanaWalletStandardExtension-CyYa03dG.cjs} +3 -3
  6. package/dist/{addSolanaWalletStandardExtension-DjnLEEh4.cjs.map → addSolanaWalletStandardExtension-CyYa03dG.cjs.map} +1 -1
  7. package/dist/{addWaasSolanaExtension-CzXKrlYb.esm.js → addWaasSolanaExtension-DVuz2ISz.esm.js} +2 -2
  8. package/dist/{addWaasSolanaExtension-CzXKrlYb.esm.js.map → addWaasSolanaExtension-DVuz2ISz.esm.js.map} +1 -1
  9. package/dist/{addWaasSolanaExtension-DIOlU-AN.cjs → addWaasSolanaExtension-wH_cvxuL.cjs} +2 -2
  10. package/dist/{addWaasSolanaExtension-DIOlU-AN.cjs.map → addWaasSolanaExtension-wH_cvxuL.cjs.map} +1 -1
  11. package/dist/{createWalletProviderFromSolanaStandardWallet-CKgaSEl8.esm.js → createWalletProviderFromSolanaStandardWallet-B7jh3I6k.esm.js} +2 -2
  12. package/dist/{createWalletProviderFromSolanaStandardWallet-CKgaSEl8.esm.js.map → createWalletProviderFromSolanaStandardWallet-B7jh3I6k.esm.js.map} +1 -1
  13. package/dist/{createWalletProviderFromSolanaStandardWallet-Dd2TVV2b.cjs → createWalletProviderFromSolanaStandardWallet-Bt5TP7Lt.cjs} +2 -2
  14. package/dist/{createWalletProviderFromSolanaStandardWallet-Dd2TVV2b.cjs.map → createWalletProviderFromSolanaStandardWallet-Bt5TP7Lt.cjs.map} +1 -1
  15. package/dist/getSolanaConnection/getSolanaConnection.d.ts +7 -1
  16. package/dist/getSolanaConnection/getSolanaConnection.d.ts.map +1 -1
  17. package/dist/index.cjs +115 -17
  18. package/dist/index.cjs.map +1 -1
  19. package/dist/index.esm.js +115 -17
  20. package/dist/index.esm.js.map +1 -1
  21. package/dist/isSolanaGasSponsorshipEnabled/isSolanaGasSponsorshipEnabled.d.ts +10 -1
  22. package/dist/isSolanaGasSponsorshipEnabled/isSolanaGasSponsorshipEnabled.d.ts.map +1 -1
  23. package/dist/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts +10 -1
  24. package/dist/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts.map +1 -1
  25. package/dist/isSolanaWalletAccount/isSolanaWalletAccount.d.ts +9 -1
  26. package/dist/isSolanaWalletAccount/isSolanaWalletAccount.d.ts.map +1 -1
  27. package/dist/metamask.cjs +2 -2
  28. package/dist/metamask.esm.js +2 -2
  29. package/dist/phantomRedirect/addPhantomRedirectSolanaExtension/addPhantomRedirectSolanaExtension.d.ts +11 -0
  30. package/dist/phantomRedirect/addPhantomRedirectSolanaExtension/addPhantomRedirectSolanaExtension.d.ts.map +1 -1
  31. package/dist/phantomRedirect/completePhantomRedirect/completePhantomRedirect.d.ts +14 -0
  32. package/dist/phantomRedirect/completePhantomRedirect/completePhantomRedirect.d.ts.map +1 -1
  33. package/dist/phantomRedirect/detectPhantomRedirect/detectPhantomRedirect.d.ts +9 -1
  34. package/dist/phantomRedirect/detectPhantomRedirect/detectPhantomRedirect.d.ts.map +1 -1
  35. package/dist/signAllTransactions/signAllTransactions.d.ts +17 -5
  36. package/dist/signAllTransactions/signAllTransactions.d.ts.map +1 -1
  37. package/dist/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.d.ts +16 -6
  38. package/dist/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.d.ts.map +1 -1
  39. package/dist/signAndSendTransaction/signAndSendTransaction.d.ts +15 -3
  40. package/dist/signAndSendTransaction/signAndSendTransaction.d.ts.map +1 -1
  41. package/dist/signTransaction/signTransaction.d.ts +17 -5
  42. package/dist/signTransaction/signTransaction.d.ts.map +1 -1
  43. package/dist/simulateSolanaTransaction/simulateSolanaTransaction.d.ts +3 -1
  44. package/dist/simulateSolanaTransaction/simulateSolanaTransaction.d.ts.map +1 -1
  45. package/dist/{solanaTransferAmount-vxHlmm9z.cjs → solanaTransferAmount-B4keau5s.cjs} +40 -5
  46. package/dist/solanaTransferAmount-B4keau5s.cjs.map +1 -0
  47. package/dist/{solanaTransferAmount-DX35Wg5S.esm.js → solanaTransferAmount-CdkPbAES.esm.js} +40 -5
  48. package/dist/solanaTransferAmount-CdkPbAES.esm.js.map +1 -0
  49. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  50. package/dist/utils/calculateSolanaTransactionFee/calculateSolanaTransactionFee.d.ts +12 -1
  51. package/dist/utils/calculateSolanaTransactionFee/calculateSolanaTransactionFee.d.ts.map +1 -1
  52. package/dist/waas.cjs +2 -2
  53. package/dist/waas.esm.js +2 -2
  54. package/dist/walletConnect.cjs +1 -1
  55. package/dist/walletConnect.esm.js +1 -1
  56. package/dist/walletStandard.cjs +3 -3
  57. package/dist/walletStandard.esm.js +3 -3
  58. package/package.json +6 -6
  59. package/dist/solanaTransferAmount-DX35Wg5S.esm.js.map +0 -1
  60. package/dist/solanaTransferAmount-vxHlmm9z.cjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  const require_chunk = require('./chunk-CbDLau6x.cjs');
2
- const require_solanaTransferAmount = require('./solanaTransferAmount-vxHlmm9z.cjs');
2
+ const require_solanaTransferAmount = require('./solanaTransferAmount-B4keau5s.cjs');
3
3
  const require_assertBufferAvailable = require('./assertBufferAvailable-BPIt9Mmr.cjs');
4
- const require_addWaasSolanaExtension = require('./addWaasSolanaExtension-DIOlU-AN.cjs');
5
- require('./createWalletProviderFromSolanaStandardWallet-Dd2TVV2b.cjs');
6
- const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-DjnLEEh4.cjs');
4
+ const require_addWaasSolanaExtension = require('./addWaasSolanaExtension-wH_cvxuL.cjs');
5
+ require('./createWalletProviderFromSolanaStandardWallet-Bt5TP7Lt.cjs');
6
+ const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-CyYa03dG.cjs');
7
7
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
8
8
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
9
9
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
@@ -24,7 +24,16 @@ tweetnacl = require_chunk.__toESM(tweetnacl);
24
24
  * and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types
25
25
  * including standard wallets and embedded wallets managed by Dynamic's infrastructure.
26
26
  *
27
+ * @example
28
+ * ```ts
29
+ * const client = createDynamicClient({ environmentId: 'env-123' });
30
+ * addSolanaExtension(client);
31
+ * ```
32
+ *
27
33
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
34
+ * @returns void
35
+ * @see isSolanaWalletAccount
36
+ * @see isSolanaNetworkProvider
28
37
  * @notInstrumented
29
38
  */
30
39
  const addSolanaExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
@@ -38,8 +47,17 @@ const addSolanaExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaul
38
47
  /**
39
48
  * Type guard function to check if a network provider is a Solana network provider.
40
49
  *
50
+ * @example
51
+ * ```ts
52
+ * if (isSolanaNetworkProvider(networkProvider)) {
53
+ * const connection = getSolanaConnection({ networkData });
54
+ * }
55
+ * ```
56
+ *
41
57
  * @param networkProvider - The network provider to check.
42
58
  * @returns True if the network provider is a Solana network provider, false otherwise.
59
+ * @see isSolanaWalletAccount
60
+ * @see addSolanaExtension
43
61
  * @notInstrumented
44
62
  */
45
63
  const isSolanaNetworkProvider = (networkProvider) => networkProvider.chain === "SOL";
@@ -58,11 +76,22 @@ const sleep = (ms) => new Promise((resolve) => {
58
76
  * and querying the network. It handles both legacy Transaction and VersionedTransaction
59
77
  * formats and includes retry logic for network requests.
60
78
  *
79
+ * @example
80
+ * ```ts
81
+ * const feeData = await calculateSolanaTransactionFee({
82
+ * transaction,
83
+ * networkData,
84
+ * nativeTokenPriceUsd: 150,
85
+ * });
86
+ * ```
87
+ *
61
88
  * @param params.transaction - The Solana transaction to estimate fees for.
62
89
  * @param params.networkData - Network configuration for RPC connection.
63
90
  * @param params.nativeTokenPriceUsd - Optional USD price of SOL for fee conversion.
64
91
  * @returns Fee data in lamports and human-readable SOL format.
65
92
  * @throws {FeeEstimationFailedError} If fee retrieval fails after retries.
93
+ * @see simulateSolanaTransaction
94
+ * @see getSolanaConnection
66
95
  * @notInstrumented
67
96
  */
68
97
  const calculateSolanaTransactionFee = async ({ transaction, networkData, nativeTokenPriceUsd }) => {
@@ -141,6 +170,8 @@ const calculateSolanaTransactionFee = async ({ transaction, networkData, nativeT
141
170
  * @throws {InvalidParamError} If wallet account is not a Solana account.
142
171
  * @throws {SimulationFailedError} If the simulation API call fails.
143
172
  * @throws {FeeEstimationFailedError} If includeFees is true and fee calculation fails.
173
+ * @see calculateSolanaTransactionFee
174
+ * @see isSolanaWalletAccount
144
175
  * @notInstrumented
145
176
  */
146
177
  const simulateSolanaTransaction = async ({ walletAccount, transaction, includeFees = false }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
@@ -860,6 +891,17 @@ const completeAndEmitPhantomRedirectEvent = async ({ args, event }, client) => {
860
891
  * is returned to the originating tab. See the `phantomRedirectCloseTab` event
861
892
  * JSDoc for details on how to handle tab closing.
862
893
  *
894
+ * @example
895
+ * ```ts
896
+ * const url = new URL(window.location.href);
897
+ * if (await detectPhantomRedirect({ url })) {
898
+ * await completePhantomRedirect({ url });
899
+ * // Close this clone tab; the originating tab already received the result
900
+ * // via BroadcastChannel and will resolve its pending promise.
901
+ * window.close();
902
+ * }
903
+ * ```
904
+ *
863
905
  * @param params.url - The callback URL received from Phantom
864
906
  * @param client - The Dynamic client instance
865
907
  * @throws {NoPendingPhantomRequestError} If no pending request is found in storage
@@ -867,6 +909,9 @@ const completeAndEmitPhantomRedirectEvent = async ({ args, event }, client) => {
867
909
  * required encryption parameters (`phantom_encryption_public_key`, `data`,
868
910
  * `nonce`) and does not carry an error code either
869
911
  * @throws {PhantomRedirectRejectedError} If the user rejected the request in Phantom
912
+ * @returns void
913
+ * @see detectPhantomRedirect
914
+ * @see addPhantomRedirectSolanaExtension
870
915
  * @notInstrumented
871
916
  */
872
917
  const completePhantomRedirect = async ({ url }, client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
@@ -1449,9 +1494,17 @@ const createPhantomRedirectWalletProvider = ({ baseRedirectUrl, dynamicClient })
1449
1494
  * we fall back to checking whether a pending disconnect request exists in
1450
1495
  * storage.
1451
1496
  *
1497
+ * @example
1498
+ * ```ts
1499
+ * const url = new URL(window.location.href);
1500
+ * const isPhantomRedirect = await detectPhantomRedirect({ url });
1501
+ * ```
1502
+ *
1452
1503
  * @param params.url - The URL to check for Phantom redirect parameters
1453
1504
  * @param client - The Dynamic client instance
1454
1505
  * @returns A promise that resolves to true if the URL is a valid Phantom redirect, false otherwise
1506
+ * @see completePhantomRedirect
1507
+ * @see addPhantomRedirectSolanaExtension
1455
1508
  * @notInstrumented
1456
1509
  */
1457
1510
  const detectPhantomRedirect = async ({ url }, client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
@@ -1505,10 +1558,21 @@ const PHANTOM_REDIRECT_SOLANA_EXTENSION_KEY = "phantomRedirectSolana";
1505
1558
  * marker written during request initiation and does **not** emit
1506
1559
  * `phantomRedirectCloseTab`.
1507
1560
  *
1561
+ * @example
1562
+ * ```ts
1563
+ * addPhantomRedirectSolanaExtension({
1564
+ * url: new URL(window.location.href),
1565
+ * onCloseTab: () => window.close(),
1566
+ * });
1567
+ * ```
1568
+ *
1508
1569
  * @param params.url - The current page URL
1509
1570
  * @param params.onCloseTab - Callback invoked when the clone tab should close
1510
1571
  * @param params.disableAutoRedirectCompletion - Skip auto detection/completion
1511
1572
  * @param [client] - The Dynamic client. Only required for multiple clients.
1573
+ * @returns void
1574
+ * @see completePhantomRedirect
1575
+ * @see detectPhantomRedirect
1512
1576
  * @notInstrumented
1513
1577
  */
1514
1578
  const addPhantomRedirectSolanaExtension = async ({ disableAutoRedirectCompletion, onCloseTab, url }, client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
@@ -1564,11 +1628,23 @@ const addPhantomRedirectSolanaExtension = async ({ disableAutoRedirectCompletion
1564
1628
  //#endregion
1565
1629
  //#region src/signAllTransactions/signAllTransactions.ts
1566
1630
  /**
1567
- * Signs multiple Solana transactions
1568
- * @param params.transactions - The transactions to sign
1569
- * @param params.walletAccount - The wallet account to sign the transactions with
1631
+ * Signs multiple Solana transactions in a single call.
1632
+ *
1633
+ * @example
1634
+ * ```ts
1635
+ * const { signedTransactions } = await signAllTransactions({
1636
+ * walletAccount: solAccount,
1637
+ * transactions: [tx1, tx2, tx3],
1638
+ * });
1639
+ * ```
1640
+ *
1641
+ * @param params.transactions - The transactions to sign.
1642
+ * @param params.walletAccount - The wallet account to sign the transactions with.
1570
1643
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1571
- * @returns An object containing the signed transactions
1644
+ * @returns An object containing the signed transactions.
1645
+ * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider.
1646
+ * @see signTransaction
1647
+ * @see signAndSendTransaction
1572
1648
  * @notInstrumented
1573
1649
  */
1574
1650
  const signAllTransactions = async ({ walletAccount, transactions }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
@@ -1586,12 +1662,22 @@ const signAllTransactions = async ({ walletAccount, transactions }, client = (0,
1586
1662
  * Signs and sends a sponsored Solana transaction.
1587
1663
  * The transaction will be sponsored via Dynamic's gas sponsorship API.
1588
1664
  *
1589
- * @param params.transaction - The transaction to sponsor, sign, and send
1590
- * @param params.walletAccount - The wallet account to sign and send the transaction with
1665
+ * @example
1666
+ * ```ts
1667
+ * const { signature } = await signAndSendSponsoredTransaction({
1668
+ * walletAccount: solAccount,
1669
+ * transaction,
1670
+ * });
1671
+ * ```
1672
+ *
1673
+ * @param params.transaction - The transaction to sponsor, sign, and send.
1674
+ * @param params.walletAccount - The wallet account to sign and send the transaction with.
1591
1675
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1592
- * @returns An object containing the signature
1593
- * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider
1594
- * @throws {MethodNotImplementedError} If the wallet provider does not implement signAndSendSponsoredTransaction
1676
+ * @returns An object containing the signature.
1677
+ * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider.
1678
+ * @throws {MethodNotImplementedError} If the wallet provider does not implement signAndSendSponsoredTransaction.
1679
+ * @see signAndSendTransaction
1680
+ * @see isSolanaGasSponsorshipEnabled
1595
1681
  * @notInstrumented
1596
1682
  */
1597
1683
  const signAndSendSponsoredTransaction = async ({ walletAccount, transaction, options }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
@@ -1608,11 +1694,23 @@ const signAndSendSponsoredTransaction = async ({ walletAccount, transaction, opt
1608
1694
  //#endregion
1609
1695
  //#region src/signTransaction/signTransaction.ts
1610
1696
  /**
1611
- * Signs a Solana transaction
1612
- * @param params.transaction - The transaction to sign
1613
- * @param params.walletAccount - The wallet account to sign the transaction with
1697
+ * Signs a Solana transaction without sending it.
1698
+ *
1699
+ * @example
1700
+ * ```ts
1701
+ * const { signedTransaction } = await signTransaction({
1702
+ * walletAccount: solAccount,
1703
+ * transaction,
1704
+ * });
1705
+ * ```
1706
+ *
1707
+ * @param params.transaction - The transaction to sign.
1708
+ * @param params.walletAccount - The wallet account to sign the transaction with.
1614
1709
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1615
- * @returns An object containing the signed transaction
1710
+ * @returns An object containing the signed transaction.
1711
+ * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider.
1712
+ * @see signAndSendTransaction
1713
+ * @see signAllTransactions
1616
1714
  * @notInstrumented
1617
1715
  */
1618
1716
  const signTransaction = async ({ walletAccount, transaction }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {