@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.
- package/dist/addSolanaExtension/addSolanaExtension.d.ts +10 -1
- package/dist/addSolanaExtension/addSolanaExtension.d.ts.map +1 -1
- package/dist/{addSolanaWalletStandardExtension-BGeu9CyF.esm.js → addSolanaWalletStandardExtension-CbR1BbPB.esm.js} +3 -3
- package/dist/{addSolanaWalletStandardExtension-BGeu9CyF.esm.js.map → addSolanaWalletStandardExtension-CbR1BbPB.esm.js.map} +1 -1
- package/dist/{addSolanaWalletStandardExtension-DjnLEEh4.cjs → addSolanaWalletStandardExtension-CyYa03dG.cjs} +3 -3
- package/dist/{addSolanaWalletStandardExtension-DjnLEEh4.cjs.map → addSolanaWalletStandardExtension-CyYa03dG.cjs.map} +1 -1
- package/dist/{addWaasSolanaExtension-CzXKrlYb.esm.js → addWaasSolanaExtension-DVuz2ISz.esm.js} +2 -2
- package/dist/{addWaasSolanaExtension-CzXKrlYb.esm.js.map → addWaasSolanaExtension-DVuz2ISz.esm.js.map} +1 -1
- package/dist/{addWaasSolanaExtension-DIOlU-AN.cjs → addWaasSolanaExtension-wH_cvxuL.cjs} +2 -2
- package/dist/{addWaasSolanaExtension-DIOlU-AN.cjs.map → addWaasSolanaExtension-wH_cvxuL.cjs.map} +1 -1
- package/dist/{createWalletProviderFromSolanaStandardWallet-CKgaSEl8.esm.js → createWalletProviderFromSolanaStandardWallet-B7jh3I6k.esm.js} +2 -2
- package/dist/{createWalletProviderFromSolanaStandardWallet-CKgaSEl8.esm.js.map → createWalletProviderFromSolanaStandardWallet-B7jh3I6k.esm.js.map} +1 -1
- package/dist/{createWalletProviderFromSolanaStandardWallet-Dd2TVV2b.cjs → createWalletProviderFromSolanaStandardWallet-Bt5TP7Lt.cjs} +2 -2
- package/dist/{createWalletProviderFromSolanaStandardWallet-Dd2TVV2b.cjs.map → createWalletProviderFromSolanaStandardWallet-Bt5TP7Lt.cjs.map} +1 -1
- package/dist/getSolanaConnection/getSolanaConnection.d.ts +7 -1
- package/dist/getSolanaConnection/getSolanaConnection.d.ts.map +1 -1
- package/dist/index.cjs +115 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +115 -17
- package/dist/index.esm.js.map +1 -1
- package/dist/isSolanaGasSponsorshipEnabled/isSolanaGasSponsorshipEnabled.d.ts +10 -1
- package/dist/isSolanaGasSponsorshipEnabled/isSolanaGasSponsorshipEnabled.d.ts.map +1 -1
- package/dist/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts +10 -1
- package/dist/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts.map +1 -1
- package/dist/isSolanaWalletAccount/isSolanaWalletAccount.d.ts +9 -1
- package/dist/isSolanaWalletAccount/isSolanaWalletAccount.d.ts.map +1 -1
- package/dist/metamask.cjs +2 -2
- package/dist/metamask.esm.js +2 -2
- package/dist/phantomRedirect/addPhantomRedirectSolanaExtension/addPhantomRedirectSolanaExtension.d.ts +11 -0
- package/dist/phantomRedirect/addPhantomRedirectSolanaExtension/addPhantomRedirectSolanaExtension.d.ts.map +1 -1
- package/dist/phantomRedirect/completePhantomRedirect/completePhantomRedirect.d.ts +14 -0
- package/dist/phantomRedirect/completePhantomRedirect/completePhantomRedirect.d.ts.map +1 -1
- package/dist/phantomRedirect/detectPhantomRedirect/detectPhantomRedirect.d.ts +9 -1
- package/dist/phantomRedirect/detectPhantomRedirect/detectPhantomRedirect.d.ts.map +1 -1
- package/dist/signAllTransactions/signAllTransactions.d.ts +17 -5
- package/dist/signAllTransactions/signAllTransactions.d.ts.map +1 -1
- package/dist/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.d.ts +16 -6
- package/dist/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.d.ts.map +1 -1
- package/dist/signAndSendTransaction/signAndSendTransaction.d.ts +15 -3
- package/dist/signAndSendTransaction/signAndSendTransaction.d.ts.map +1 -1
- package/dist/signTransaction/signTransaction.d.ts +17 -5
- package/dist/signTransaction/signTransaction.d.ts.map +1 -1
- package/dist/simulateSolanaTransaction/simulateSolanaTransaction.d.ts +3 -1
- package/dist/simulateSolanaTransaction/simulateSolanaTransaction.d.ts.map +1 -1
- package/dist/{solanaTransferAmount-vxHlmm9z.cjs → solanaTransferAmount-B4keau5s.cjs} +40 -5
- package/dist/solanaTransferAmount-B4keau5s.cjs.map +1 -0
- package/dist/{solanaTransferAmount-DX35Wg5S.esm.js → solanaTransferAmount-CdkPbAES.esm.js} +40 -5
- package/dist/solanaTransferAmount-CdkPbAES.esm.js.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/utils/calculateSolanaTransactionFee/calculateSolanaTransactionFee.d.ts +12 -1
- package/dist/utils/calculateSolanaTransactionFee/calculateSolanaTransactionFee.d.ts.map +1 -1
- package/dist/waas.cjs +2 -2
- package/dist/waas.esm.js +2 -2
- package/dist/walletConnect.cjs +1 -1
- package/dist/walletConnect.esm.js +1 -1
- package/dist/walletStandard.cjs +3 -3
- package/dist/walletStandard.esm.js +3 -3
- package/package.json +6 -6
- package/dist/solanaTransferAmount-DX35Wg5S.esm.js.map +0 -1
- 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-
|
|
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-
|
|
4
|
-
import "./createWalletProviderFromSolanaStandardWallet-
|
|
5
|
-
import { t as addSolanaWalletStandardExtension } from "./addSolanaWalletStandardExtension-
|
|
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
|
-
*
|
|
1565
|
-
* @
|
|
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
|
-
* @
|
|
1586
|
-
*
|
|
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
|
-
*
|
|
1609
|
-
* @
|
|
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()) => {
|