@dynamic-labs-sdk/solana 1.28.0 → 1.30.2

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 (69) hide show
  1. package/dist/{addSolanaWalletStandardExtension-D-_Ha20P.cjs → addSolanaWalletStandardExtension-3dEIBtTw.cjs} +21 -5
  2. package/dist/addSolanaWalletStandardExtension-3dEIBtTw.cjs.map +1 -0
  3. package/dist/{addSolanaWalletStandardExtension-B8FTxNmP.esm.js → addSolanaWalletStandardExtension-CShtBr7f.esm.js} +22 -6
  4. package/dist/addSolanaWalletStandardExtension-CShtBr7f.esm.js.map +1 -0
  5. package/dist/{addWaasSolanaExtension-DgdUxSRZ.cjs → addWaasSolanaExtension-CgyX6Yak.cjs} +2 -2
  6. package/dist/{addWaasSolanaExtension-DgdUxSRZ.cjs.map → addWaasSolanaExtension-CgyX6Yak.cjs.map} +1 -1
  7. package/dist/{addWaasSolanaExtension-ZTPdT3vn.esm.js → addWaasSolanaExtension-DMHD6oa9.esm.js} +2 -2
  8. package/dist/{addWaasSolanaExtension-ZTPdT3vn.esm.js.map → addWaasSolanaExtension-DMHD6oa9.esm.js.map} +1 -1
  9. package/dist/assertBufferAvailable-BPIt9Mmr.cjs.map +1 -1
  10. package/dist/assertBufferAvailable-b4xOlERy.esm.js.map +1 -1
  11. package/dist/{createWalletProviderFromSolanaStandardWallet-JyBM4x_X.esm.js → createWalletProviderFromSolanaStandardWallet-BnZchM37.esm.js} +2 -2
  12. package/dist/createWalletProviderFromSolanaStandardWallet-BnZchM37.esm.js.map +1 -0
  13. package/dist/{createWalletProviderFromSolanaStandardWallet-ClRF5wuk.cjs → createWalletProviderFromSolanaStandardWallet-DAR4Uvz1.cjs} +2 -2
  14. package/dist/createWalletProviderFromSolanaStandardWallet-DAR4Uvz1.cjs.map +1 -0
  15. package/dist/exports/index.d.ts +1 -0
  16. package/dist/exports/index.d.ts.map +1 -1
  17. package/dist/getSolanaConnection/getSolanaConnection.d.ts.map +1 -1
  18. package/dist/index.cjs +78 -4
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.esm.js +80 -7
  21. package/dist/index.esm.js.map +1 -1
  22. package/dist/isSolanaGasSponsorshipEnabled/isSolanaGasSponsorshipEnabled.d.ts +1 -0
  23. package/dist/isSolanaGasSponsorshipEnabled/isSolanaGasSponsorshipEnabled.d.ts.map +1 -1
  24. package/dist/metamask.cjs +2 -2
  25. package/dist/metamask.esm.js +2 -2
  26. package/dist/screenSolanaTransactions/index.d.ts +2 -0
  27. package/dist/screenSolanaTransactions/index.d.ts.map +1 -0
  28. package/dist/screenSolanaTransactions/screenSolanaTransactions.d.ts +55 -0
  29. package/dist/screenSolanaTransactions/screenSolanaTransactions.d.ts.map +1 -0
  30. package/dist/signAllTransactions/signAllTransactions.d.ts +4 -3
  31. package/dist/signAllTransactions/signAllTransactions.d.ts.map +1 -1
  32. package/dist/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.d.ts +4 -3
  33. package/dist/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.d.ts.map +1 -1
  34. package/dist/signAndSendTransaction/signAndSendTransaction.d.ts +4 -3
  35. package/dist/signAndSendTransaction/signAndSendTransaction.d.ts.map +1 -1
  36. package/dist/signTransaction/signTransaction.d.ts +4 -3
  37. package/dist/signTransaction/signTransaction.d.ts.map +1 -1
  38. package/dist/{solanaTransferAmount-BvI3znFK.cjs → solanaTransferAmount-CSzJqeoS.cjs} +3 -2
  39. package/dist/solanaTransferAmount-CSzJqeoS.cjs.map +1 -0
  40. package/dist/{solanaTransferAmount-BKGenlG4.esm.js → solanaTransferAmount-D7rsMJly.esm.js} +3 -2
  41. package/dist/solanaTransferAmount-D7rsMJly.esm.js.map +1 -0
  42. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  43. package/dist/utils/assertBufferAvailable/assertBufferAvailable.d.ts.map +1 -1
  44. package/dist/utils/serializeTransactionForScreening/index.d.ts +2 -0
  45. package/dist/utils/serializeTransactionForScreening/index.d.ts.map +1 -0
  46. package/dist/utils/serializeTransactionForScreening/serializeTransactionForScreening.d.ts +13 -0
  47. package/dist/utils/serializeTransactionForScreening/serializeTransactionForScreening.d.ts.map +1 -0
  48. package/dist/utils/solanaTransferAmount/solanaTransferAmount.d.ts +5 -3
  49. package/dist/utils/solanaTransferAmount/solanaTransferAmount.d.ts.map +1 -1
  50. package/dist/waas.cjs +2 -2
  51. package/dist/waas.esm.js +2 -2
  52. package/dist/walletConnect/addWalletConnectSolanaExtension/addWalletConnectSolanaExtension.d.ts.map +1 -1
  53. package/dist/walletConnect/recoverSolanaWalletConnectWalletProviders/recoverSolanaWalletConnectWalletProviders.d.ts.map +1 -1
  54. package/dist/walletConnect.cjs +1 -1
  55. package/dist/walletConnect.cjs.map +1 -1
  56. package/dist/walletConnect.esm.js +1 -1
  57. package/dist/walletConnect.esm.js.map +1 -1
  58. package/dist/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.d.ts +3 -2
  59. package/dist/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.d.ts.map +1 -1
  60. package/dist/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.d.ts.map +1 -1
  61. package/dist/walletStandard.cjs +3 -3
  62. package/dist/walletStandard.esm.js +3 -3
  63. package/package.json +7 -7
  64. package/dist/addSolanaWalletStandardExtension-B8FTxNmP.esm.js.map +0 -1
  65. package/dist/addSolanaWalletStandardExtension-D-_Ha20P.cjs.map +0 -1
  66. package/dist/createWalletProviderFromSolanaStandardWallet-ClRF5wuk.cjs.map +0 -1
  67. package/dist/createWalletProviderFromSolanaStandardWallet-JyBM4x_X.esm.js.map +0 -1
  68. package/dist/solanaTransferAmount-BKGenlG4.esm.js.map +0 -1
  69. package/dist/solanaTransferAmount-BvI3znFK.cjs.map +0 -1
package/dist/index.esm.js CHANGED
@@ -1,16 +1,17 @@
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-BKGenlG4.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-D7rsMJly.esm.js";
2
2
  import { t as assertBufferAvailable } from "./assertBufferAvailable-b4xOlERy.esm.js";
3
- import { n as SponsorTransactionError, t as addWaasSolanaExtension } from "./addWaasSolanaExtension-ZTPdT3vn.esm.js";
4
- import "./createWalletProviderFromSolanaStandardWallet-JyBM4x_X.esm.js";
5
- import { t as addSolanaWalletStandardExtension } from "./addSolanaWalletStandardExtension-B8FTxNmP.esm.js";
3
+ import { n as SponsorTransactionError, t as addWaasSolanaExtension } from "./addWaasSolanaExtension-DMHD6oa9.esm.js";
4
+ import "./createWalletProviderFromSolanaStandardWallet-BnZchM37.esm.js";
5
+ import { t as addSolanaWalletStandardExtension } from "./addSolanaWalletStandardExtension-CShtBr7f.esm.js";
6
6
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
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
- import { BaseError, FeeEstimationFailedError, InvalidParamError, SimulationFailedError, getActiveNetworkData, getDefaultClient as getDefaultClient$1, onEvent, onceEvent } from "@dynamic-labs-sdk/client";
7
+ import { MethodNotImplementedError, WalletProviderPriority, assertDefined, bufferToBase64, createApiClient, createDeferredPromise, createRuntimeServiceAccessKey, createStorageKeySchema, emitEvent, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getBuffer, getCore, getDefaultClient, getNetworkProviders, getWalletProviderFromWalletAccount, getWalletProviderRegistry, hasExtension, randomString, registerExtension } from "@dynamic-labs-sdk/client/core";
8
+ import { BaseError, FeeEstimationFailedError, InvalidParamError, ScreeningNotRequiredError, SimulationFailedError, getActiveNetworkData, getDefaultClient as getDefaultClient$1, onEvent, onceEvent, screenTransaction } from "@dynamic-labs-sdk/client";
9
9
  import { Connection, LAMPORTS_PER_SOL, PublicKey, Transaction, VersionedTransaction } from "@solana/web3.js";
10
10
  import { WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
11
11
  import bs58 from "bs58";
12
12
  import * as z from "zod/mini";
13
13
  import nacl from "tweetnacl";
14
+ import { isWaasWalletAccount } from "@dynamic-labs-sdk/client/waas";
14
15
 
15
16
  //#region src/addSolanaExtension/addSolanaExtension.ts
16
17
  /**
@@ -1621,6 +1622,78 @@ const addPhantomRedirectSolanaExtension = async ({ disableAutoRedirectCompletion
1621
1622
  }, client);
1622
1623
  };
1623
1624
 
1625
+ //#endregion
1626
+ //#region src/utils/serializeTransactionForScreening/serializeTransactionForScreening.ts
1627
+ /**
1628
+ * Serializes an unsigned transaction to base64 for sanctions screening.
1629
+ *
1630
+ * Unlike serialization for broadcast, this must not require signatures:
1631
+ * screening runs before the wallet is prompted, so nothing is signed yet.
1632
+ *
1633
+ * @param transaction - The transaction to serialize.
1634
+ * @returns The base64-encoded transaction.
1635
+ * @notInstrumented
1636
+ */
1637
+ const serializeTransactionForScreening = (transaction) => bufferToBase64(isVersionedTransaction(transaction) ? transaction.serialize() : transaction.serialize({
1638
+ requireAllSignatures: false,
1639
+ verifySignatures: false
1640
+ }));
1641
+
1642
+ //#endregion
1643
+ //#region src/screenSolanaTransactions/screenSolanaTransactions.ts
1644
+ /**
1645
+ * Screens Solana transactions' destinations against the environment's sanctions
1646
+ * providers and returns the verdict.
1647
+ *
1648
+ * Serializes the transactions into the payload the screening API expects, so
1649
+ * you do not need to know its shape, then defers to {@link screenTransaction}.
1650
+ * The batch is screened in a single request and yields a single verdict.
1651
+ *
1652
+ * Like the call it wraps, this imposes no policy: it does not consult project
1653
+ * settings, does not throw on a `block` verdict, and rejects if screening
1654
+ * fails. Gate it with `isExternalWalletScreeningEnabled` and decide for
1655
+ * yourself what a block should do.
1656
+ *
1657
+ * A legacy transaction compiles its message on serialize, so pass transactions
1658
+ * that already carry a recent blockhash and fee payer — the same state they
1659
+ * need in order to be signed.
1660
+ *
1661
+ * @example
1662
+ * ```ts
1663
+ * if (isExternalWalletScreeningEnabled()) {
1664
+ * const { decision } = await screenSolanaTransactions({
1665
+ * transactions: [transaction],
1666
+ * walletAccount,
1667
+ * });
1668
+ *
1669
+ * if (decision === 'block') return;
1670
+ * }
1671
+ *
1672
+ * await signTransaction({ transaction, walletAccount });
1673
+ * ```
1674
+ *
1675
+ * @param params.transactions - The transactions about to be signed.
1676
+ * @param params.walletAccount - The wallet account that would be prompted to sign.
1677
+ * @param [params.senderAddress] - The sender to screen alongside the destinations. Defaults to the wallet account's address.
1678
+ * @param [params.signal] - Cancels the in-flight request, e.g. `AbortSignal.timeout(2000)`.
1679
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1680
+ * @returns The screening verdict for the batch, including the addresses that caused a block.
1681
+ * @throws {ScreeningNotRequiredError} If the wallet account is a Dynamic embedded wallet, which signing already screens.
1682
+ * @throws {Error} If a transaction cannot be serialized for screening.
1683
+ * @see screenTransaction
1684
+ * @see isExternalWalletScreeningEnabled
1685
+ * @notInstrumented
1686
+ */
1687
+ const screenSolanaTransactions = async ({ senderAddress, signal, transactions, walletAccount }, client = getDefaultClient$1()) => {
1688
+ if (isWaasWalletAccount({ walletAccount })) throw new ScreeningNotRequiredError();
1689
+ return screenTransaction({
1690
+ chain: "SOL",
1691
+ context: { svmTransaction: { serializedTransactions: transactions.map(serializeTransactionForScreening) } },
1692
+ senderAddress: senderAddress ?? walletAccount.address,
1693
+ signal
1694
+ }, client);
1695
+ };
1696
+
1624
1697
  //#endregion
1625
1698
  //#region src/signAllTransactions/signAllTransactions.ts
1626
1699
  /**
@@ -1723,5 +1796,5 @@ const signTransaction = async ({ walletAccount, transaction }, client = getDefau
1723
1796
  assertPackageVersion(name, version);
1724
1797
 
1725
1798
  //#endregion
1726
- export { NotSolanaProviderError, SponsorTransactionError, addPhantomRedirectSolanaExtension, addSolanaExtension, calculateSolanaTransactionFee, completePhantomRedirect, detectPhantomRedirect, getSolanaConnection, isSolanaGasSponsorshipEnabled, isSolanaNetworkProvider, isSolanaWalletAccount, signAllTransactions, signAndSendSponsoredTransaction, signAndSendTransaction, signTransaction, simulateSolanaTransaction };
1799
+ export { NotSolanaProviderError, SponsorTransactionError, addPhantomRedirectSolanaExtension, addSolanaExtension, calculateSolanaTransactionFee, completePhantomRedirect, detectPhantomRedirect, getSolanaConnection, isSolanaGasSponsorshipEnabled, isSolanaNetworkProvider, isSolanaWalletAccount, screenSolanaTransactions, signAllTransactions, signAndSendSponsoredTransaction, signAndSendTransaction, signTransaction, simulateSolanaTransaction };
1727
1800
  //# sourceMappingURL=index.esm.js.map