@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.esm.js CHANGED
@@ -1,8 +1,8 @@
1
- import { a as NotSolanaProviderError, c as isSolanaWalletAccount, d as registerSolanaNetworkProviderBuilder, f as name, i as isSolanaGasSponsorshipEnabled, l as isVersionedTransaction, n as solanaExecuteSwapTransaction, o as isSolanaWalletProvider, p as version, r as signAndSendTransaction, s as solanaConfirmTransaction, t as solanaTransferAmount, u as getSolanaConnection } from "./solanaTransferAmount-DX35Wg5S.esm.js";
1
+ import { a as NotSolanaProviderError, c as isSolanaWalletAccount, d as registerSolanaNetworkProviderBuilder, f as name, i as isSolanaGasSponsorshipEnabled, l as isVersionedTransaction, n as solanaExecuteSwapTransaction, o as isSolanaWalletProvider, p as version, r as signAndSendTransaction, s as solanaConfirmTransaction, t as solanaTransferAmount, u as getSolanaConnection } from "./solanaTransferAmount-CdkPbAES.esm.js";
2
2
  import { t as assertBufferAvailable } from "./assertBufferAvailable-b4xOlERy.esm.js";
3
- import { n as SponsorTransactionError, t as addWaasSolanaExtension } from "./addWaasSolanaExtension-CzXKrlYb.esm.js";
4
- import "./createWalletProviderFromSolanaStandardWallet-CKgaSEl8.esm.js";
5
- import { t as addSolanaWalletStandardExtension } from "./addSolanaWalletStandardExtension-BGeu9CyF.esm.js";
3
+ import { n as SponsorTransactionError, t as addWaasSolanaExtension } from "./addWaasSolanaExtension-DVuz2ISz.esm.js";
4
+ import "./createWalletProviderFromSolanaStandardWallet-B7jh3I6k.esm.js";
5
+ import { t as addSolanaWalletStandardExtension } from "./addSolanaWalletStandardExtension-CbR1BbPB.esm.js";
6
6
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
7
7
  import { MethodNotImplementedError, WalletProviderPriority, assertDefined, createApiClient, createDeferredPromise, createRuntimeServiceAccessKey, createStorageKeySchema, emitEvent, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getBuffer, getCore, getDefaultClient, getNetworkProviders, getWalletProviderFromWalletAccount, getWalletProviderRegistry, hasExtension, randomString, registerExtension } from "@dynamic-labs-sdk/client/core";
8
8
  import { BaseError, FeeEstimationFailedError, InvalidParamError, SimulationFailedError, getActiveNetworkData, getDefaultClient as getDefaultClient$1, onEvent, onceEvent } from "@dynamic-labs-sdk/client";
@@ -20,7 +20,16 @@ import nacl from "tweetnacl";
20
20
  * and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types
21
21
  * including standard wallets and embedded wallets managed by Dynamic's infrastructure.
22
22
  *
23
+ * @example
24
+ * ```ts
25
+ * const client = createDynamicClient({ environmentId: 'env-123' });
26
+ * addSolanaExtension(client);
27
+ * ```
28
+ *
23
29
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
30
+ * @returns void
31
+ * @see isSolanaWalletAccount
32
+ * @see isSolanaNetworkProvider
24
33
  * @notInstrumented
25
34
  */
26
35
  const addSolanaExtension = (client = getDefaultClient()) => {
@@ -34,8 +43,17 @@ const addSolanaExtension = (client = getDefaultClient()) => {
34
43
  /**
35
44
  * Type guard function to check if a network provider is a Solana network provider.
36
45
  *
46
+ * @example
47
+ * ```ts
48
+ * if (isSolanaNetworkProvider(networkProvider)) {
49
+ * const connection = getSolanaConnection({ networkData });
50
+ * }
51
+ * ```
52
+ *
37
53
  * @param networkProvider - The network provider to check.
38
54
  * @returns True if the network provider is a Solana network provider, false otherwise.
55
+ * @see isSolanaWalletAccount
56
+ * @see addSolanaExtension
39
57
  * @notInstrumented
40
58
  */
41
59
  const isSolanaNetworkProvider = (networkProvider) => networkProvider.chain === "SOL";
@@ -54,11 +72,22 @@ const sleep = (ms) => new Promise((resolve) => {
54
72
  * and querying the network. It handles both legacy Transaction and VersionedTransaction
55
73
  * formats and includes retry logic for network requests.
56
74
  *
75
+ * @example
76
+ * ```ts
77
+ * const feeData = await calculateSolanaTransactionFee({
78
+ * transaction,
79
+ * networkData,
80
+ * nativeTokenPriceUsd: 150,
81
+ * });
82
+ * ```
83
+ *
57
84
  * @param params.transaction - The Solana transaction to estimate fees for.
58
85
  * @param params.networkData - Network configuration for RPC connection.
59
86
  * @param params.nativeTokenPriceUsd - Optional USD price of SOL for fee conversion.
60
87
  * @returns Fee data in lamports and human-readable SOL format.
61
88
  * @throws {FeeEstimationFailedError} If fee retrieval fails after retries.
89
+ * @see simulateSolanaTransaction
90
+ * @see getSolanaConnection
62
91
  * @notInstrumented
63
92
  */
64
93
  const calculateSolanaTransactionFee = async ({ transaction, networkData, nativeTokenPriceUsd }) => {
@@ -137,6 +166,8 @@ const calculateSolanaTransactionFee = async ({ transaction, networkData, nativeT
137
166
  * @throws {InvalidParamError} If wallet account is not a Solana account.
138
167
  * @throws {SimulationFailedError} If the simulation API call fails.
139
168
  * @throws {FeeEstimationFailedError} If includeFees is true and fee calculation fails.
169
+ * @see calculateSolanaTransactionFee
170
+ * @see isSolanaWalletAccount
140
171
  * @notInstrumented
141
172
  */
142
173
  const simulateSolanaTransaction = async ({ walletAccount, transaction, includeFees = false }, client = getDefaultClient$1()) => {
@@ -856,6 +887,17 @@ const completeAndEmitPhantomRedirectEvent = async ({ args, event }, client) => {
856
887
  * is returned to the originating tab. See the `phantomRedirectCloseTab` event
857
888
  * JSDoc for details on how to handle tab closing.
858
889
  *
890
+ * @example
891
+ * ```ts
892
+ * const url = new URL(window.location.href);
893
+ * if (await detectPhantomRedirect({ url })) {
894
+ * await completePhantomRedirect({ url });
895
+ * // Close this clone tab; the originating tab already received the result
896
+ * // via BroadcastChannel and will resolve its pending promise.
897
+ * window.close();
898
+ * }
899
+ * ```
900
+ *
859
901
  * @param params.url - The callback URL received from Phantom
860
902
  * @param client - The Dynamic client instance
861
903
  * @throws {NoPendingPhantomRequestError} If no pending request is found in storage
@@ -863,6 +905,9 @@ const completeAndEmitPhantomRedirectEvent = async ({ args, event }, client) => {
863
905
  * required encryption parameters (`phantom_encryption_public_key`, `data`,
864
906
  * `nonce`) and does not carry an error code either
865
907
  * @throws {PhantomRedirectRejectedError} If the user rejected the request in Phantom
908
+ * @returns void
909
+ * @see detectPhantomRedirect
910
+ * @see addPhantomRedirectSolanaExtension
866
911
  * @notInstrumented
867
912
  */
868
913
  const completePhantomRedirect = async ({ url }, client = getDefaultClient()) => {
@@ -1445,9 +1490,17 @@ const createPhantomRedirectWalletProvider = ({ baseRedirectUrl, dynamicClient })
1445
1490
  * we fall back to checking whether a pending disconnect request exists in
1446
1491
  * storage.
1447
1492
  *
1493
+ * @example
1494
+ * ```ts
1495
+ * const url = new URL(window.location.href);
1496
+ * const isPhantomRedirect = await detectPhantomRedirect({ url });
1497
+ * ```
1498
+ *
1448
1499
  * @param params.url - The URL to check for Phantom redirect parameters
1449
1500
  * @param client - The Dynamic client instance
1450
1501
  * @returns A promise that resolves to true if the URL is a valid Phantom redirect, false otherwise
1502
+ * @see completePhantomRedirect
1503
+ * @see addPhantomRedirectSolanaExtension
1451
1504
  * @notInstrumented
1452
1505
  */
1453
1506
  const detectPhantomRedirect = async ({ url }, client = getDefaultClient()) => {
@@ -1501,10 +1554,21 @@ const PHANTOM_REDIRECT_SOLANA_EXTENSION_KEY = "phantomRedirectSolana";
1501
1554
  * marker written during request initiation and does **not** emit
1502
1555
  * `phantomRedirectCloseTab`.
1503
1556
  *
1557
+ * @example
1558
+ * ```ts
1559
+ * addPhantomRedirectSolanaExtension({
1560
+ * url: new URL(window.location.href),
1561
+ * onCloseTab: () => window.close(),
1562
+ * });
1563
+ * ```
1564
+ *
1504
1565
  * @param params.url - The current page URL
1505
1566
  * @param params.onCloseTab - Callback invoked when the clone tab should close
1506
1567
  * @param params.disableAutoRedirectCompletion - Skip auto detection/completion
1507
1568
  * @param [client] - The Dynamic client. Only required for multiple clients.
1569
+ * @returns void
1570
+ * @see completePhantomRedirect
1571
+ * @see detectPhantomRedirect
1508
1572
  * @notInstrumented
1509
1573
  */
1510
1574
  const addPhantomRedirectSolanaExtension = async ({ disableAutoRedirectCompletion, onCloseTab, url }, client = getDefaultClient()) => {
@@ -1560,11 +1624,23 @@ const addPhantomRedirectSolanaExtension = async ({ disableAutoRedirectCompletion
1560
1624
  //#endregion
1561
1625
  //#region src/signAllTransactions/signAllTransactions.ts
1562
1626
  /**
1563
- * Signs multiple Solana transactions
1564
- * @param params.transactions - The transactions to sign
1565
- * @param params.walletAccount - The wallet account to sign the transactions with
1627
+ * Signs multiple Solana transactions in a single call.
1628
+ *
1629
+ * @example
1630
+ * ```ts
1631
+ * const { signedTransactions } = await signAllTransactions({
1632
+ * walletAccount: solAccount,
1633
+ * transactions: [tx1, tx2, tx3],
1634
+ * });
1635
+ * ```
1636
+ *
1637
+ * @param params.transactions - The transactions to sign.
1638
+ * @param params.walletAccount - The wallet account to sign the transactions with.
1566
1639
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1567
- * @returns An object containing the signed transactions
1640
+ * @returns An object containing the signed transactions.
1641
+ * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider.
1642
+ * @see signTransaction
1643
+ * @see signAndSendTransaction
1568
1644
  * @notInstrumented
1569
1645
  */
1570
1646
  const signAllTransactions = async ({ walletAccount, transactions }, client = getDefaultClient$1()) => {
@@ -1582,12 +1658,22 @@ const signAllTransactions = async ({ walletAccount, transactions }, client = get
1582
1658
  * Signs and sends a sponsored Solana transaction.
1583
1659
  * The transaction will be sponsored via Dynamic's gas sponsorship API.
1584
1660
  *
1585
- * @param params.transaction - The transaction to sponsor, sign, and send
1586
- * @param params.walletAccount - The wallet account to sign and send the transaction with
1661
+ * @example
1662
+ * ```ts
1663
+ * const { signature } = await signAndSendSponsoredTransaction({
1664
+ * walletAccount: solAccount,
1665
+ * transaction,
1666
+ * });
1667
+ * ```
1668
+ *
1669
+ * @param params.transaction - The transaction to sponsor, sign, and send.
1670
+ * @param params.walletAccount - The wallet account to sign and send the transaction with.
1587
1671
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1588
- * @returns An object containing the signature
1589
- * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider
1590
- * @throws {MethodNotImplementedError} If the wallet provider does not implement signAndSendSponsoredTransaction
1672
+ * @returns An object containing the signature.
1673
+ * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider.
1674
+ * @throws {MethodNotImplementedError} If the wallet provider does not implement signAndSendSponsoredTransaction.
1675
+ * @see signAndSendTransaction
1676
+ * @see isSolanaGasSponsorshipEnabled
1591
1677
  * @notInstrumented
1592
1678
  */
1593
1679
  const signAndSendSponsoredTransaction = async ({ walletAccount, transaction, options }, client = getDefaultClient$1()) => {
@@ -1604,11 +1690,23 @@ const signAndSendSponsoredTransaction = async ({ walletAccount, transaction, opt
1604
1690
  //#endregion
1605
1691
  //#region src/signTransaction/signTransaction.ts
1606
1692
  /**
1607
- * Signs a Solana transaction
1608
- * @param params.transaction - The transaction to sign
1609
- * @param params.walletAccount - The wallet account to sign the transaction with
1693
+ * Signs a Solana transaction without sending it.
1694
+ *
1695
+ * @example
1696
+ * ```ts
1697
+ * const { signedTransaction } = await signTransaction({
1698
+ * walletAccount: solAccount,
1699
+ * transaction,
1700
+ * });
1701
+ * ```
1702
+ *
1703
+ * @param params.transaction - The transaction to sign.
1704
+ * @param params.walletAccount - The wallet account to sign the transaction with.
1610
1705
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1611
- * @returns An object containing the signed transaction
1706
+ * @returns An object containing the signed transaction.
1707
+ * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider.
1708
+ * @see signAndSendTransaction
1709
+ * @see signAllTransactions
1612
1710
  * @notInstrumented
1613
1711
  */
1614
1712
  const signTransaction = async ({ walletAccount, transaction }, client = getDefaultClient$1()) => {