@dynamic-labs-sdk/solana 1.18.0 → 1.19.1
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-8N8vYMXw.esm.js} +3 -3
- package/dist/{addSolanaWalletStandardExtension-BGeu9CyF.esm.js.map → addSolanaWalletStandardExtension-8N8vYMXw.esm.js.map} +1 -1
- package/dist/{addSolanaWalletStandardExtension-DjnLEEh4.cjs → addSolanaWalletStandardExtension-CnCQGYDR.cjs} +3 -3
- package/dist/{addSolanaWalletStandardExtension-DjnLEEh4.cjs.map → addSolanaWalletStandardExtension-CnCQGYDR.cjs.map} +1 -1
- package/dist/{addWaasSolanaExtension-CzXKrlYb.esm.js → addWaasSolanaExtension-B2lpZLx_.esm.js} +2 -2
- package/dist/{addWaasSolanaExtension-CzXKrlYb.esm.js.map → addWaasSolanaExtension-B2lpZLx_.esm.js.map} +1 -1
- package/dist/{addWaasSolanaExtension-DIOlU-AN.cjs → addWaasSolanaExtension-DQiJguNy.cjs} +2 -2
- package/dist/{addWaasSolanaExtension-DIOlU-AN.cjs.map → addWaasSolanaExtension-DQiJguNy.cjs.map} +1 -1
- package/dist/{createWalletProviderFromSolanaStandardWallet-Dd2TVV2b.cjs → createWalletProviderFromSolanaStandardWallet-CtjlNzTV.cjs} +2 -2
- package/dist/{createWalletProviderFromSolanaStandardWallet-Dd2TVV2b.cjs.map → createWalletProviderFromSolanaStandardWallet-CtjlNzTV.cjs.map} +1 -1
- package/dist/{createWalletProviderFromSolanaStandardWallet-CKgaSEl8.esm.js → createWalletProviderFromSolanaStandardWallet-D6TX8HoF.esm.js} +2 -2
- package/dist/{createWalletProviderFromSolanaStandardWallet-CKgaSEl8.esm.js.map → createWalletProviderFromSolanaStandardWallet-D6TX8HoF.esm.js.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-C-k2ojI2.cjs} +40 -5
- package/dist/solanaTransferAmount-C-k2ojI2.cjs.map +1 -0
- package/dist/{solanaTransferAmount-DX35Wg5S.esm.js → solanaTransferAmount-CMh1H7Ll.esm.js} +40 -5
- package/dist/solanaTransferAmount-CMh1H7Ll.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.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-CbDLau6x.cjs');
|
|
2
|
-
const require_solanaTransferAmount = require('./solanaTransferAmount-
|
|
2
|
+
const require_solanaTransferAmount = require('./solanaTransferAmount-C-k2ojI2.cjs');
|
|
3
3
|
const require_assertBufferAvailable = require('./assertBufferAvailable-BPIt9Mmr.cjs');
|
|
4
|
-
const require_addWaasSolanaExtension = require('./addWaasSolanaExtension-
|
|
5
|
-
require('./createWalletProviderFromSolanaStandardWallet-
|
|
6
|
-
const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-
|
|
4
|
+
const require_addWaasSolanaExtension = require('./addWaasSolanaExtension-DQiJguNy.cjs');
|
|
5
|
+
require('./createWalletProviderFromSolanaStandardWallet-CtjlNzTV.cjs');
|
|
6
|
+
const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-CnCQGYDR.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
|
-
*
|
|
1569
|
-
* @
|
|
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
|
-
* @
|
|
1590
|
-
*
|
|
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
|
-
*
|
|
1613
|
-
* @
|
|
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)()) => {
|