@dynamic-labs-sdk/solana 0.17.4 → 0.18.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.
Files changed (120) hide show
  1. package/dist/addSolanaExtension/addSolanaExtension.d.ts +1 -0
  2. package/dist/addSolanaExtension/addSolanaExtension.d.ts.map +1 -1
  3. package/dist/{addSolanaWalletStandardExtension-CmzTIIfA.cjs.js → addSolanaWalletStandardExtension-BT3uAg9w.cjs.js} +7 -2
  4. package/dist/addSolanaWalletStandardExtension-BT3uAg9w.cjs.js.map +1 -0
  5. package/dist/{addSolanaWalletStandardExtension-BIF2zCwz.esm.js → addSolanaWalletStandardExtension-DvUgIiaC.esm.js} +7 -2
  6. package/dist/addSolanaWalletStandardExtension-DvUgIiaC.esm.js.map +1 -0
  7. package/dist/{addWaasSolanaExtension-BYJQtyvL.esm.js → addWaasSolanaExtension-DTiSDhga.esm.js} +5 -2
  8. package/dist/addWaasSolanaExtension-DTiSDhga.esm.js.map +1 -0
  9. package/dist/{addWaasSolanaExtension-C-rRo3P1.cjs.js → addWaasSolanaExtension-YLYVRa97.cjs.js} +6 -3
  10. package/dist/addWaasSolanaExtension-YLYVRa97.cjs.js.map +1 -0
  11. package/dist/getSolanaConnection/getSolanaConnection.d.ts +1 -0
  12. package/dist/getSolanaConnection/getSolanaConnection.d.ts.map +1 -1
  13. package/dist/index.cjs.js +24 -3
  14. package/dist/index.cjs.js.map +1 -1
  15. package/dist/index.esm.js +24 -3
  16. package/dist/index.esm.js.map +1 -1
  17. package/dist/isSolanaGasSponsorshipEnabled/isSolanaGasSponsorshipEnabled.d.ts +1 -0
  18. package/dist/isSolanaGasSponsorshipEnabled/isSolanaGasSponsorshipEnabled.d.ts.map +1 -1
  19. package/dist/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts +1 -0
  20. package/dist/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts.map +1 -1
  21. package/dist/isSolanaWalletAccount/isSolanaWalletAccount.d.ts +1 -0
  22. package/dist/isSolanaWalletAccount/isSolanaWalletAccount.d.ts.map +1 -1
  23. package/dist/isSolanaWalletProvider/isSolanaWalletProvider.d.ts +1 -0
  24. package/dist/isSolanaWalletProvider/isSolanaWalletProvider.d.ts.map +1 -1
  25. package/dist/phantomRedirect/addPhantomRedirectSolanaExtension/addPhantomRedirectSolanaExtension.d.ts +1 -0
  26. package/dist/phantomRedirect/addPhantomRedirectSolanaExtension/addPhantomRedirectSolanaExtension.d.ts.map +1 -1
  27. package/dist/phantomRedirect/completePhantomRedirect/completePhantomRedirect.d.ts +1 -0
  28. package/dist/phantomRedirect/completePhantomRedirect/completePhantomRedirect.d.ts.map +1 -1
  29. package/dist/phantomRedirect/createPhantomRedirectWalletProvider/createPhantomRedirectWalletProvider.d.ts +1 -0
  30. package/dist/phantomRedirect/createPhantomRedirectWalletProvider/createPhantomRedirectWalletProvider.d.ts.map +1 -1
  31. package/dist/phantomRedirect/detectPhantomRedirect/detectPhantomRedirect.d.ts +1 -0
  32. package/dist/phantomRedirect/detectPhantomRedirect/detectPhantomRedirect.d.ts.map +1 -1
  33. package/dist/phantomRedirect/utils/broadcastPhantomEvent/broadcastPhantomEvent.d.ts +1 -0
  34. package/dist/phantomRedirect/utils/broadcastPhantomEvent/broadcastPhantomEvent.d.ts.map +1 -1
  35. package/dist/phantomRedirect/utils/buildPhantomDeepLink/buildPhantomDeepLink.d.ts +1 -0
  36. package/dist/phantomRedirect/utils/buildPhantomDeepLink/buildPhantomDeepLink.d.ts.map +1 -1
  37. package/dist/phantomRedirect/utils/cleanPhantomParamsFromUrl/cleanPhantomParamsFromUrl.d.ts +1 -0
  38. package/dist/phantomRedirect/utils/cleanPhantomParamsFromUrl/cleanPhantomParamsFromUrl.d.ts.map +1 -1
  39. package/dist/phantomRedirect/utils/crypto/createNaClSharedSecret/createNaClSharedSecret.d.ts +1 -0
  40. package/dist/phantomRedirect/utils/crypto/createNaClSharedSecret/createNaClSharedSecret.d.ts.map +1 -1
  41. package/dist/phantomRedirect/utils/crypto/decryptPayload/decryptPayload.d.ts +1 -0
  42. package/dist/phantomRedirect/utils/crypto/decryptPayload/decryptPayload.d.ts.map +1 -1
  43. package/dist/phantomRedirect/utils/crypto/encryptPayload/encryptPayload.d.ts +1 -0
  44. package/dist/phantomRedirect/utils/crypto/encryptPayload/encryptPayload.d.ts.map +1 -1
  45. package/dist/phantomRedirect/utils/crypto/generateNaClKeyPair/generateNaClKeyPair.d.ts +1 -0
  46. package/dist/phantomRedirect/utils/crypto/generateNaClKeyPair/generateNaClKeyPair.d.ts.map +1 -1
  47. package/dist/phantomRedirect/utils/getPhantomCluster/getPhantomCluster.d.ts +1 -0
  48. package/dist/phantomRedirect/utils/getPhantomCluster/getPhantomCluster.d.ts.map +1 -1
  49. package/dist/phantomRedirect/utils/listenForPhantomBroadcast/listenForPhantomBroadcast.d.ts +1 -0
  50. package/dist/phantomRedirect/utils/listenForPhantomBroadcast/listenForPhantomBroadcast.d.ts.map +1 -1
  51. package/dist/phantomRedirect/utils/parsePhantomRedirectParams/parsePhantomRedirectParams.d.ts +1 -0
  52. package/dist/phantomRedirect/utils/parsePhantomRedirectParams/parsePhantomRedirectParams.d.ts.map +1 -1
  53. package/dist/registerSolanaNetworkProviderBuilder/registerSolanaNetworkProviderBuilder.d.ts +1 -0
  54. package/dist/registerSolanaNetworkProviderBuilder/registerSolanaNetworkProviderBuilder.d.ts.map +1 -1
  55. package/dist/signAllTransactions/signAllTransactions.d.ts +1 -0
  56. package/dist/signAllTransactions/signAllTransactions.d.ts.map +1 -1
  57. package/dist/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.d.ts +1 -0
  58. package/dist/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.d.ts.map +1 -1
  59. package/dist/signAndSendTransaction/signAndSendTransaction.d.ts +1 -0
  60. package/dist/signAndSendTransaction/signAndSendTransaction.d.ts.map +1 -1
  61. package/dist/signTransaction/signTransaction.d.ts +1 -0
  62. package/dist/signTransaction/signTransaction.d.ts.map +1 -1
  63. package/dist/simulateSolanaTransaction/simulateSolanaTransaction.d.ts +1 -0
  64. package/dist/simulateSolanaTransaction/simulateSolanaTransaction.d.ts.map +1 -1
  65. package/dist/{solanaTransferAmount-BYGPXNUH.cjs.js → solanaTransferAmount-DV3fYpF9.cjs.js} +13 -3
  66. package/dist/solanaTransferAmount-DV3fYpF9.cjs.js.map +1 -0
  67. package/dist/{solanaTransferAmount-DdF-ov1p.esm.js → solanaTransferAmount-uH_d_7e7.esm.js} +12 -2
  68. package/dist/solanaTransferAmount-uH_d_7e7.esm.js.map +1 -0
  69. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  70. package/dist/utils/calculateSolanaTransactionFee/calculateSolanaTransactionFee.d.ts +1 -0
  71. package/dist/utils/calculateSolanaTransactionFee/calculateSolanaTransactionFee.d.ts.map +1 -1
  72. package/dist/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.d.ts +1 -0
  73. package/dist/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.d.ts.map +1 -1
  74. package/dist/utils/fetchSolBalance/fetchSolBalance.d.ts +1 -0
  75. package/dist/utils/fetchSolBalance/fetchSolBalance.d.ts.map +1 -1
  76. package/dist/utils/isVersionedTransaction/isVersionedTransaction.d.ts +1 -0
  77. package/dist/utils/isVersionedTransaction/isVersionedTransaction.d.ts.map +1 -1
  78. package/dist/utils/solanaExecuteCheckoutTransaction/solanaExecuteCheckoutTransaction.d.ts +1 -0
  79. package/dist/utils/solanaExecuteCheckoutTransaction/solanaExecuteCheckoutTransaction.d.ts.map +1 -1
  80. package/dist/utils/solanaTransferAmount/solanaTransferAmount.d.ts +1 -0
  81. package/dist/utils/solanaTransferAmount/solanaTransferAmount.d.ts.map +1 -1
  82. package/dist/waas/addWaasSolanaExtension/addWaasSolanaExtension.d.ts +1 -0
  83. package/dist/waas/addWaasSolanaExtension/addWaasSolanaExtension.d.ts.map +1 -1
  84. package/dist/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts +1 -0
  85. package/dist/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts.map +1 -1
  86. package/dist/waas/utils/sponsorTransaction/sponsorTransaction.d.ts +1 -0
  87. package/dist/waas/utils/sponsorTransaction/sponsorTransaction.d.ts.map +1 -1
  88. package/dist/waas.cjs.js +3 -3
  89. package/dist/waas.esm.js +2 -2
  90. package/dist/walletConnect/addWalletConnectSolanaExtension/addWalletConnectSolanaExtension.d.ts +1 -0
  91. package/dist/walletConnect/addWalletConnectSolanaExtension/addWalletConnectSolanaExtension.d.ts.map +1 -1
  92. package/dist/walletConnect/connectAndVerifyWithWalletConnectSolana/connectAndVerifyWithWalletConnectSolana.d.ts +1 -0
  93. package/dist/walletConnect/connectAndVerifyWithWalletConnectSolana/connectAndVerifyWithWalletConnectSolana.d.ts.map +1 -1
  94. package/dist/walletConnect/connectWithWalletConnectSolana/connectWithWalletConnectSolana.d.ts +1 -0
  95. package/dist/walletConnect/connectWithWalletConnectSolana/connectWithWalletConnectSolana.d.ts.map +1 -1
  96. package/dist/walletConnect/createWalletProviderFromWalletConnectSolanaSession/createWalletProviderFromWalletConnectSolanaSession.d.ts +1 -0
  97. package/dist/walletConnect/createWalletProviderFromWalletConnectSolanaSession/createWalletProviderFromWalletConnectSolanaSession.d.ts.map +1 -1
  98. package/dist/walletConnect/recoverSolanaWalletConnectWalletProviders/recoverSolanaWalletConnectWalletProviders.d.ts +1 -0
  99. package/dist/walletConnect/recoverSolanaWalletConnectWalletProviders/recoverSolanaWalletConnectWalletProviders.d.ts.map +1 -1
  100. package/dist/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.d.ts +1 -0
  101. package/dist/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.d.ts.map +1 -1
  102. package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.d.ts +1 -0
  103. package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.d.ts.map +1 -1
  104. package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/getActiveNetworkId.d.ts +1 -0
  105. package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/getActiveNetworkId.d.ts.map +1 -1
  106. package/dist/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts +1 -0
  107. package/dist/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts.map +1 -1
  108. package/dist/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.d.ts +1 -0
  109. package/dist/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.d.ts.map +1 -1
  110. package/dist/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.d.ts +1 -0
  111. package/dist/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.d.ts.map +1 -1
  112. package/dist/walletStandard.cjs.js +2 -2
  113. package/dist/walletStandard.esm.js +2 -2
  114. package/package.json +5 -5
  115. package/dist/addSolanaWalletStandardExtension-BIF2zCwz.esm.js.map +0 -1
  116. package/dist/addSolanaWalletStandardExtension-CmzTIIfA.cjs.js.map +0 -1
  117. package/dist/addWaasSolanaExtension-BYJQtyvL.esm.js.map +0 -1
  118. package/dist/addWaasSolanaExtension-C-rRo3P1.cjs.js.map +0 -1
  119. package/dist/solanaTransferAmount-BYGPXNUH.cjs.js.map +0 -1
  120. package/dist/solanaTransferAmount-DdF-ov1p.esm.js.map +0 -1
@@ -6,6 +6,7 @@
6
6
  * including standard wallets and embedded wallets managed by Dynamic's infrastructure.
7
7
  *
8
8
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
9
+ * @not-instrumented
9
10
  */
10
11
  export declare const addSolanaExtension: (client?: import("@dynamic-labs-sdk/client").DynamicClient) => void;
11
12
  //# sourceMappingURL=addSolanaExtension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addSolanaExtension.d.ts","sourceRoot":"","sources":["../../src/addSolanaExtension/addSolanaExtension.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,iEAAkC,IAGhE,CAAC"}
1
+ {"version":3,"file":"addSolanaExtension.d.ts","sourceRoot":"","sources":["../../src/addSolanaExtension/addSolanaExtension.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,iEAAkC,IAGhE,CAAC"}
@@ -25,7 +25,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  }) : target, mod));
26
26
 
27
27
  //#endregion
28
- const require_solanaTransferAmount = require('./solanaTransferAmount-BYGPXNUH.cjs.js');
28
+ const require_solanaTransferAmount = require('./solanaTransferAmount-DV3fYpF9.cjs.js');
29
29
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
30
30
  let _solana_web3_js = require("@solana/web3.js");
31
31
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
@@ -35,6 +35,7 @@ let bs58 = require("bs58");
35
35
  bs58 = __toESM(bs58);
36
36
 
37
37
  //#region src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.ts
38
+ /** @not-instrumented */
38
39
  const getActiveNetworkCluster = async ({ walletAccount }, client) => {
39
40
  const { networkData } = await (0, _dynamic_labs_sdk_client.getActiveNetworkData)({ walletAccount }, client);
40
41
  if (!networkData?.cluster) return;
@@ -43,12 +44,14 @@ const getActiveNetworkCluster = async ({ walletAccount }, client) => {
43
44
 
44
45
  //#endregion
45
46
  //#region src/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.ts
47
+ /** @not-instrumented */
46
48
  const getFeaturesForSolanaStandardWallet = (wallet) => {
47
49
  return wallet.features;
48
50
  };
49
51
 
50
52
  //#endregion
51
53
  //#region src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.ts
54
+ /** @not-instrumented */
52
55
  const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletStandardWallet }) => {
53
56
  const features = getFeaturesForSolanaStandardWallet(walletStandardWallet);
54
57
  const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
@@ -185,6 +188,7 @@ const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletSta
185
188
 
186
189
  //#endregion
187
190
  //#region src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts
191
+ /** @not-instrumented */
188
192
  const hasAllRequiredFeatures = (wallet) => {
189
193
  return Boolean(wallet.features?.["standard:events"] && wallet.features?.["standard:connect"] && wallet.features?.["solana:signTransaction"] && wallet.features?.["solana:signMessage"]);
190
194
  };
@@ -199,6 +203,7 @@ const SOLANA_WALLET_STANDARD_EXTENSION_KEY = "solanaWalletStandard";
199
203
  * automatically detecting and registering compatible wallets for use with the Dynamic SDK.
200
204
  *
201
205
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
206
+ * @not-instrumented
202
207
  */
203
208
  const addSolanaWalletStandardExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
204
209
  if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client)) return;
@@ -230,4 +235,4 @@ Object.defineProperty(exports, 'addSolanaWalletStandardExtension', {
230
235
  return addSolanaWalletStandardExtension;
231
236
  }
232
237
  });
233
- //# sourceMappingURL=addSolanaWalletStandardExtension-CmzTIIfA.cjs.js.map
238
+ //# sourceMappingURL=addSolanaWalletStandardExtension-BT3uAg9w.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSolanaWalletStandardExtension-BT3uAg9w.cjs.js","names":["WalletProviderEnum","connect: SolanaWalletProvider['connect']","getActiveNetworkId: SolanaWalletProvider['getActiveNetworkId']","getConnectedAddresses: SolanaWalletProvider['getConnectedAddresses']","signAllTransactions: SolanaWalletProvider['signAllTransactions']","isVersionedTransaction","VersionedTransaction","Transaction","signAndSendTransaction: SolanaWalletProvider['signAndSendTransaction']","signMessage: SolanaWalletProvider['signMessage']","signTransaction: SolanaWalletProvider['signTransaction']","switchActiveNetwork: SolanaWalletProvider['switchActiveNetwork']","terminate: SolanaWalletProvider['terminate']","solanaExecuteCheckoutTransaction","solanaTransferAmount","WalletProviderPriority"],"sources":["../src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.ts","../src/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.ts","../src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.ts","../src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts","../src/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.ts"],"sourcesContent":["import type { DynamicClient, WalletAccount } from '@dynamic-labs-sdk/client';\nimport { getActiveNetworkData } from '@dynamic-labs-sdk/client';\n\ntype GetActiveNetworkClusterParams = {\n walletAccount: WalletAccount;\n};\n\n/** @not-instrumented */\nexport const getActiveNetworkCluster = async (\n { walletAccount }: GetActiveNetworkClusterParams,\n client: DynamicClient\n): Promise<`solana:${string}` | undefined> => {\n const { networkData } = await getActiveNetworkData({ walletAccount }, client);\n\n if (!networkData?.cluster) {\n return;\n }\n\n return `solana:${networkData.cluster}`;\n};\n","import type { Wallet } from '@wallet-standard/base';\nimport type {\n SignAndSendTransactionFeature,\n SignMessageFeature,\n SignTransactionFeature,\n} from '@wallet-standard/experimental-features';\nimport type {\n StandardConnectFeature,\n StandardDisconnectFeature,\n StandardEventsFeature,\n} from '@wallet-standard/features';\n\ntype WalletStandardFeatures = {\n 'solana:signAndSendTransaction': SignAndSendTransactionFeature['experimental:signAndSendTransaction'];\n 'solana:signMessage': SignMessageFeature['experimental:signMessage'];\n 'solana:signTransaction': SignTransactionFeature['experimental:signTransaction'];\n} & StandardConnectFeature &\n Partial<StandardDisconnectFeature> &\n StandardEventsFeature;\n\n/** @not-instrumented */\nexport const getFeaturesForSolanaStandardWallet = (wallet: Wallet) => {\n return wallet.features as WalletStandardFeatures;\n};\n","import {\n type DynamicClient,\n assertWalletAccountSigningAvailability,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n bufferToBase64,\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport type { Wallet as WalletStandardWallet } from '@wallet-standard/base';\nimport type { SignTransactionInput } from '@wallet-standard/experimental-features';\nimport bs58 from 'bs58';\n\nimport type { SolanaWalletProvider } from '../../../SolanaWalletProvider.types';\nimport { isVersionedTransaction } from '../../../utils/isVersionedTransaction';\nimport { solanaExecuteCheckoutTransaction } from '../../../utils/solanaExecuteCheckoutTransaction';\nimport { solanaTransferAmount } from '../../../utils/solanaTransferAmount';\nimport { getActiveNetworkCluster } from '../getActiveNetworkCluster';\nimport { getFeaturesForSolanaStandardWallet } from '../getFeaturesForSolanaStandardWallet';\n\ntype CreateWalletProviderFromSolanaStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: WalletStandardWallet;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromSolanaStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromSolanaStandardWalletParams): SolanaWalletProvider => {\n const features = getFeaturesForSolanaStandardWallet(walletStandardWallet);\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'SOL',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const connect: SolanaWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = walletStandardWallet.accounts;\n\n // some wallets like Farcaster will auto inject the account into the wallet object\n // instead of returning it from the connect method\n // so we need to check for that first\n if (\n autoConnectedAccounts?.length &&\n autoConnectedAccounts[0].publicKey &&\n autoConnectedAccounts[0].address\n ) {\n return {\n addresses: [\n {\n address: autoConnectedAccounts[0].address,\n publicKey: autoConnectedAccounts[0].publicKey.toString(),\n },\n ],\n };\n }\n\n const connectMethod = features['standard:connect']?.connect;\n\n assertDefined(connectMethod, 'connect method not found in wallet features');\n\n const result = await connectMethod({ silent: false });\n\n return {\n addresses: result.accounts?.map((account) => ({\n address: account.address,\n publicKey: account.publicKey?.toString(),\n })),\n };\n };\n const disconnectFeature = features['standard:disconnect']?.disconnect;\n\n const getActiveNetworkId: SolanaWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getCurrentAccount = async () => {\n if (!isConnected() && connect) {\n await connect();\n }\n\n const account = walletStandardWallet.accounts?.[0];\n\n assertDefined(account, 'No connected accounts found');\n\n return account;\n };\n\n const isConnected = (): boolean => {\n return walletStandardWallet.accounts?.length > 0;\n };\n\n const getConnectedAddresses: SolanaWalletProvider['getConnectedAddresses'] =\n async () => {\n if (!isConnected() && connect) {\n await connect();\n }\n\n return {\n addresses: walletStandardWallet.accounts.map(\n (account) => account.address\n ),\n };\n };\n\n const signAllTransactions: SolanaWalletProvider['signAllTransactions'] =\n async ({ transactions, walletAccount }) => {\n const signTransactionMethod =\n features['solana:signTransaction']?.signTransaction;\n\n assertDefined(\n signTransactionMethod,\n 'signTransaction method not found in wallet features'\n );\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const account = await getCurrentAccount();\n\n const chain = await getActiveNetworkCluster(\n { walletAccount },\n dynamicClient\n );\n assertDefined(chain, 'Could not get active chain for wallet account');\n\n const transactionsInput: SignTransactionInput[] = transactions.map(\n (transaction) => ({\n account,\n chain,\n transaction: transaction.serialize({\n requireAllSignatures: false,\n }) as Uint8Array<ArrayBufferLike>,\n })\n );\n\n const signTransactionResult = await signTransactionMethod(\n ...transactionsInput\n );\n\n const signedTransactions = signTransactionResult.map(\n ({ signedTransaction }, index) => {\n const inputTransaction = transactions[index];\n type T = typeof inputTransaction;\n\n if (isVersionedTransaction(inputTransaction)) {\n return VersionedTransaction.deserialize(signedTransaction) as T;\n }\n return Transaction.from(signedTransaction) as T;\n }\n );\n\n return { signedTransactions };\n };\n\n const signAndSendTransaction: SolanaWalletProvider['signAndSendTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndSendTransactionMethod =\n features['solana:signAndSendTransaction']?.signAndSendTransaction;\n\n assertDefined(\n signAndSendTransactionMethod,\n 'signAndSendTransaction method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n const chain = await getActiveNetworkCluster(\n { walletAccount },\n dynamicClient\n );\n assertDefined(chain, 'Could not get active chain for wallet account');\n\n const signedTransactions = await signAndSendTransactionMethod({\n account,\n chain,\n transaction: transaction.serialize({\n requireAllSignatures: false,\n }) as Uint8Array<ArrayBufferLike>,\n });\n\n const [{ signature }] = signedTransactions;\n\n return { signature: bs58.encode(signature) };\n };\n\n const signMessage: SolanaWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const signMessageMethod = features['solana:signMessage']?.signMessage;\n\n assertDefined(\n signMessageMethod,\n 'signMessage method not found in wallet features'\n );\n\n assertDefined(walletAccount, 'Wallet account not found');\n\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const encodedMessage = new TextEncoder().encode(message);\n\n const account = await getCurrentAccount();\n\n const messages = await signMessageMethod({\n account,\n message: encodedMessage,\n });\n\n return { signature: bufferToBase64(messages[0].signature) };\n };\n\n const signTransaction: SolanaWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const signedTransactions = await signAllTransactions({\n transactions: [transaction],\n walletAccount,\n });\n\n return { signedTransaction: signedTransactions.signedTransactions[0] };\n };\n\n const switchActiveNetwork: SolanaWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n assertDefined(setupReturnValue, 'Setup return value not defined');\n\n setupReturnValue();\n },\n\n setupEventListeners: ({ handleAccountsChanged }) => {\n const eventsFeature = features['standard:events'];\n\n return eventsFeature.on('change', ({ accounts }) => {\n handleAccountsChanged({\n addresses: accounts?.map((account) => account.address) ?? [],\n });\n });\n },\n\n supportedEvents: ['accountsChanged'],\n });\n\n const terminate: SolanaWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n const walletProvider: SolanaWalletProvider = {\n chain: 'SOL',\n connect,\n disconnect: disconnectFeature,\n get events() {\n return getEventEmitter();\n },\n executeCheckoutTransaction: (args) =>\n solanaExecuteCheckoutTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAllTransactions,\n signAndSendTransaction,\n signMessage,\n signTransaction,\n switchActiveNetwork,\n terminate,\n transferAmount: (args) => solanaTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import type { Wallet } from '@wallet-standard/base';\n\n/** @not-instrumented */\nexport const hasAllRequiredFeatures = (wallet: Wallet): boolean => {\n return Boolean(\n wallet.features?.['standard:events'] &&\n wallet.features?.['standard:connect'] &&\n wallet.features?.['solana:signTransaction'] &&\n wallet.features?.['solana:signMessage']\n );\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport { getWallets } from '@wallet-standard/app';\n\nimport { registerSolanaNetworkProviderBuilder } from '../../registerSolanaNetworkProviderBuilder';\nimport { createWalletProviderFromSolanaStandardWallet } from '../utils/createWalletProviderFromSolanaStandardWallet';\nimport { hasAllRequiredFeatures } from '../utils/hasAllRequiredFeatures';\n\nexport const SOLANA_WALLET_STANDARD_EXTENSION_KEY = 'solanaWalletStandard';\n\n/**\n * Adds the Solana Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Solana Wallet Standard,\n * automatically detecting and registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addSolanaWalletStandardExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerSolanaNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletStandardWallets = getWallets()\n .get()\n .filter(hasAllRequiredFeatures);\n\n walletStandardWallets.forEach((walletStandardWallet) => {\n const walletProvider = createWalletProviderFromSolanaStandardWallet({\n dynamicClient: client,\n walletStandardWallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { i as solanaExecuteCheckoutTransaction, l as registerSolanaNetworkProviderBuilder, s as isVersionedTransaction, t as solanaTransferAmount } from "./solanaTransferAmount-DdF-ov1p.esm.js";
1
+ import { i as solanaExecuteCheckoutTransaction, l as registerSolanaNetworkProviderBuilder, s as isVersionedTransaction, t as solanaTransferAmount } from "./solanaTransferAmount-uH_d_7e7.esm.js";
2
2
  import { WalletProviderPriority, assertDefined, bufferToBase64, createWalletProviderEventEmitter, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
3
3
  import { Transaction, VersionedTransaction } from "@solana/web3.js";
4
4
  import { assertWalletAccountSigningAvailability, getActiveNetworkData } from "@dynamic-labs-sdk/client";
@@ -7,6 +7,7 @@ import { getWallets } from "@wallet-standard/app";
7
7
  import bs58 from "bs58";
8
8
 
9
9
  //#region src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.ts
10
+ /** @not-instrumented */
10
11
  const getActiveNetworkCluster = async ({ walletAccount }, client) => {
11
12
  const { networkData } = await getActiveNetworkData({ walletAccount }, client);
12
13
  if (!networkData?.cluster) return;
@@ -15,12 +16,14 @@ const getActiveNetworkCluster = async ({ walletAccount }, client) => {
15
16
 
16
17
  //#endregion
17
18
  //#region src/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.ts
19
+ /** @not-instrumented */
18
20
  const getFeaturesForSolanaStandardWallet = (wallet) => {
19
21
  return wallet.features;
20
22
  };
21
23
 
22
24
  //#endregion
23
25
  //#region src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.ts
26
+ /** @not-instrumented */
24
27
  const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletStandardWallet }) => {
25
28
  const features = getFeaturesForSolanaStandardWallet(walletStandardWallet);
26
29
  const walletProviderType = WalletProviderEnum.BrowserExtension;
@@ -157,6 +160,7 @@ const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletSta
157
160
 
158
161
  //#endregion
159
162
  //#region src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts
163
+ /** @not-instrumented */
160
164
  const hasAllRequiredFeatures = (wallet) => {
161
165
  return Boolean(wallet.features?.["standard:events"] && wallet.features?.["standard:connect"] && wallet.features?.["solana:signTransaction"] && wallet.features?.["solana:signMessage"]);
162
166
  };
@@ -171,6 +175,7 @@ const SOLANA_WALLET_STANDARD_EXTENSION_KEY = "solanaWalletStandard";
171
175
  * automatically detecting and registering compatible wallets for use with the Dynamic SDK.
172
176
  *
173
177
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
178
+ * @not-instrumented
174
179
  */
175
180
  const addSolanaWalletStandardExtension = (client = getDefaultClient()) => {
176
181
  if (hasExtension({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client)) return;
@@ -191,4 +196,4 @@ const addSolanaWalletStandardExtension = (client = getDefaultClient()) => {
191
196
 
192
197
  //#endregion
193
198
  export { addSolanaWalletStandardExtension as t };
194
- //# sourceMappingURL=addSolanaWalletStandardExtension-BIF2zCwz.esm.js.map
199
+ //# sourceMappingURL=addSolanaWalletStandardExtension-DvUgIiaC.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSolanaWalletStandardExtension-DvUgIiaC.esm.js","names":["connect: SolanaWalletProvider['connect']","getActiveNetworkId: SolanaWalletProvider['getActiveNetworkId']","getConnectedAddresses: SolanaWalletProvider['getConnectedAddresses']","signAllTransactions: SolanaWalletProvider['signAllTransactions']","signAndSendTransaction: SolanaWalletProvider['signAndSendTransaction']","signMessage: SolanaWalletProvider['signMessage']","signTransaction: SolanaWalletProvider['signTransaction']","switchActiveNetwork: SolanaWalletProvider['switchActiveNetwork']","terminate: SolanaWalletProvider['terminate']"],"sources":["../src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.ts","../src/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.ts","../src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.ts","../src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts","../src/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.ts"],"sourcesContent":["import type { DynamicClient, WalletAccount } from '@dynamic-labs-sdk/client';\nimport { getActiveNetworkData } from '@dynamic-labs-sdk/client';\n\ntype GetActiveNetworkClusterParams = {\n walletAccount: WalletAccount;\n};\n\n/** @not-instrumented */\nexport const getActiveNetworkCluster = async (\n { walletAccount }: GetActiveNetworkClusterParams,\n client: DynamicClient\n): Promise<`solana:${string}` | undefined> => {\n const { networkData } = await getActiveNetworkData({ walletAccount }, client);\n\n if (!networkData?.cluster) {\n return;\n }\n\n return `solana:${networkData.cluster}`;\n};\n","import type { Wallet } from '@wallet-standard/base';\nimport type {\n SignAndSendTransactionFeature,\n SignMessageFeature,\n SignTransactionFeature,\n} from '@wallet-standard/experimental-features';\nimport type {\n StandardConnectFeature,\n StandardDisconnectFeature,\n StandardEventsFeature,\n} from '@wallet-standard/features';\n\ntype WalletStandardFeatures = {\n 'solana:signAndSendTransaction': SignAndSendTransactionFeature['experimental:signAndSendTransaction'];\n 'solana:signMessage': SignMessageFeature['experimental:signMessage'];\n 'solana:signTransaction': SignTransactionFeature['experimental:signTransaction'];\n} & StandardConnectFeature &\n Partial<StandardDisconnectFeature> &\n StandardEventsFeature;\n\n/** @not-instrumented */\nexport const getFeaturesForSolanaStandardWallet = (wallet: Wallet) => {\n return wallet.features as WalletStandardFeatures;\n};\n","import {\n type DynamicClient,\n assertWalletAccountSigningAvailability,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n bufferToBase64,\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport type { Wallet as WalletStandardWallet } from '@wallet-standard/base';\nimport type { SignTransactionInput } from '@wallet-standard/experimental-features';\nimport bs58 from 'bs58';\n\nimport type { SolanaWalletProvider } from '../../../SolanaWalletProvider.types';\nimport { isVersionedTransaction } from '../../../utils/isVersionedTransaction';\nimport { solanaExecuteCheckoutTransaction } from '../../../utils/solanaExecuteCheckoutTransaction';\nimport { solanaTransferAmount } from '../../../utils/solanaTransferAmount';\nimport { getActiveNetworkCluster } from '../getActiveNetworkCluster';\nimport { getFeaturesForSolanaStandardWallet } from '../getFeaturesForSolanaStandardWallet';\n\ntype CreateWalletProviderFromSolanaStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: WalletStandardWallet;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromSolanaStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromSolanaStandardWalletParams): SolanaWalletProvider => {\n const features = getFeaturesForSolanaStandardWallet(walletStandardWallet);\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'SOL',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const connect: SolanaWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = walletStandardWallet.accounts;\n\n // some wallets like Farcaster will auto inject the account into the wallet object\n // instead of returning it from the connect method\n // so we need to check for that first\n if (\n autoConnectedAccounts?.length &&\n autoConnectedAccounts[0].publicKey &&\n autoConnectedAccounts[0].address\n ) {\n return {\n addresses: [\n {\n address: autoConnectedAccounts[0].address,\n publicKey: autoConnectedAccounts[0].publicKey.toString(),\n },\n ],\n };\n }\n\n const connectMethod = features['standard:connect']?.connect;\n\n assertDefined(connectMethod, 'connect method not found in wallet features');\n\n const result = await connectMethod({ silent: false });\n\n return {\n addresses: result.accounts?.map((account) => ({\n address: account.address,\n publicKey: account.publicKey?.toString(),\n })),\n };\n };\n const disconnectFeature = features['standard:disconnect']?.disconnect;\n\n const getActiveNetworkId: SolanaWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getCurrentAccount = async () => {\n if (!isConnected() && connect) {\n await connect();\n }\n\n const account = walletStandardWallet.accounts?.[0];\n\n assertDefined(account, 'No connected accounts found');\n\n return account;\n };\n\n const isConnected = (): boolean => {\n return walletStandardWallet.accounts?.length > 0;\n };\n\n const getConnectedAddresses: SolanaWalletProvider['getConnectedAddresses'] =\n async () => {\n if (!isConnected() && connect) {\n await connect();\n }\n\n return {\n addresses: walletStandardWallet.accounts.map(\n (account) => account.address\n ),\n };\n };\n\n const signAllTransactions: SolanaWalletProvider['signAllTransactions'] =\n async ({ transactions, walletAccount }) => {\n const signTransactionMethod =\n features['solana:signTransaction']?.signTransaction;\n\n assertDefined(\n signTransactionMethod,\n 'signTransaction method not found in wallet features'\n );\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const account = await getCurrentAccount();\n\n const chain = await getActiveNetworkCluster(\n { walletAccount },\n dynamicClient\n );\n assertDefined(chain, 'Could not get active chain for wallet account');\n\n const transactionsInput: SignTransactionInput[] = transactions.map(\n (transaction) => ({\n account,\n chain,\n transaction: transaction.serialize({\n requireAllSignatures: false,\n }) as Uint8Array<ArrayBufferLike>,\n })\n );\n\n const signTransactionResult = await signTransactionMethod(\n ...transactionsInput\n );\n\n const signedTransactions = signTransactionResult.map(\n ({ signedTransaction }, index) => {\n const inputTransaction = transactions[index];\n type T = typeof inputTransaction;\n\n if (isVersionedTransaction(inputTransaction)) {\n return VersionedTransaction.deserialize(signedTransaction) as T;\n }\n return Transaction.from(signedTransaction) as T;\n }\n );\n\n return { signedTransactions };\n };\n\n const signAndSendTransaction: SolanaWalletProvider['signAndSendTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndSendTransactionMethod =\n features['solana:signAndSendTransaction']?.signAndSendTransaction;\n\n assertDefined(\n signAndSendTransactionMethod,\n 'signAndSendTransaction method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n const chain = await getActiveNetworkCluster(\n { walletAccount },\n dynamicClient\n );\n assertDefined(chain, 'Could not get active chain for wallet account');\n\n const signedTransactions = await signAndSendTransactionMethod({\n account,\n chain,\n transaction: transaction.serialize({\n requireAllSignatures: false,\n }) as Uint8Array<ArrayBufferLike>,\n });\n\n const [{ signature }] = signedTransactions;\n\n return { signature: bs58.encode(signature) };\n };\n\n const signMessage: SolanaWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const signMessageMethod = features['solana:signMessage']?.signMessage;\n\n assertDefined(\n signMessageMethod,\n 'signMessage method not found in wallet features'\n );\n\n assertDefined(walletAccount, 'Wallet account not found');\n\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const encodedMessage = new TextEncoder().encode(message);\n\n const account = await getCurrentAccount();\n\n const messages = await signMessageMethod({\n account,\n message: encodedMessage,\n });\n\n return { signature: bufferToBase64(messages[0].signature) };\n };\n\n const signTransaction: SolanaWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const signedTransactions = await signAllTransactions({\n transactions: [transaction],\n walletAccount,\n });\n\n return { signedTransaction: signedTransactions.signedTransactions[0] };\n };\n\n const switchActiveNetwork: SolanaWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n assertDefined(setupReturnValue, 'Setup return value not defined');\n\n setupReturnValue();\n },\n\n setupEventListeners: ({ handleAccountsChanged }) => {\n const eventsFeature = features['standard:events'];\n\n return eventsFeature.on('change', ({ accounts }) => {\n handleAccountsChanged({\n addresses: accounts?.map((account) => account.address) ?? [],\n });\n });\n },\n\n supportedEvents: ['accountsChanged'],\n });\n\n const terminate: SolanaWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n const walletProvider: SolanaWalletProvider = {\n chain: 'SOL',\n connect,\n disconnect: disconnectFeature,\n get events() {\n return getEventEmitter();\n },\n executeCheckoutTransaction: (args) =>\n solanaExecuteCheckoutTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAllTransactions,\n signAndSendTransaction,\n signMessage,\n signTransaction,\n switchActiveNetwork,\n terminate,\n transferAmount: (args) => solanaTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import type { Wallet } from '@wallet-standard/base';\n\n/** @not-instrumented */\nexport const hasAllRequiredFeatures = (wallet: Wallet): boolean => {\n return Boolean(\n wallet.features?.['standard:events'] &&\n wallet.features?.['standard:connect'] &&\n wallet.features?.['solana:signTransaction'] &&\n wallet.features?.['solana:signMessage']\n );\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport { getWallets } from '@wallet-standard/app';\n\nimport { registerSolanaNetworkProviderBuilder } from '../../registerSolanaNetworkProviderBuilder';\nimport { createWalletProviderFromSolanaStandardWallet } from '../utils/createWalletProviderFromSolanaStandardWallet';\nimport { hasAllRequiredFeatures } from '../utils/hasAllRequiredFeatures';\n\nexport const SOLANA_WALLET_STANDARD_EXTENSION_KEY = 'solanaWalletStandard';\n\n/**\n * Adds the Solana Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Solana Wallet Standard,\n * automatically detecting and registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addSolanaWalletStandardExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerSolanaNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletStandardWallets = getWallets()\n .get()\n .filter(hasAllRequiredFeatures);\n\n walletStandardWallets.forEach((walletStandardWallet) => {\n const walletProvider = createWalletProviderFromSolanaStandardWallet({\n dynamicClient: client,\n walletStandardWallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { c as getSolanaConnection, i as solanaExecuteCheckoutTransaction, l as registerSolanaNetworkProviderBuilder, s as isVersionedTransaction, t as solanaTransferAmount } from "./solanaTransferAmount-DdF-ov1p.esm.js";
1
+ import { c as getSolanaConnection, i as solanaExecuteCheckoutTransaction, l as registerSolanaNetworkProviderBuilder, s as isVersionedTransaction, t as solanaTransferAmount } from "./solanaTransferAmount-uH_d_7e7.esm.js";
2
2
  import { WalletProviderPriority, assertDefined, createApiClient, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getBuffer, getCore, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
3
3
  import { PublicKey, VersionedTransaction } from "@solana/web3.js";
4
4
  import { BaseError, getActiveNetworkData } from "@dynamic-labs-sdk/client";
@@ -32,6 +32,7 @@ var SponsorTransactionError = class extends BaseError {
32
32
  * @param client - The Dynamic client instance used for API calls and state access
33
33
  * @returns The sponsored transaction as a VersionedTransaction
34
34
  * @throws {SponsorTransactionError} If the API response is missing the transaction field
35
+ * @not-instrumented
35
36
  */
36
37
  const sponsorTransaction = async ({ transaction }, client) => {
37
38
  const core = getCore(client);
@@ -57,6 +58,7 @@ const sponsorTransaction = async ({ transaction }, client) => {
57
58
 
58
59
  //#endregion
59
60
  //#region src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.ts
61
+ /** @not-instrumented */
60
62
  const createWalletProviderForWaasSolana = (sdkClient) => {
61
63
  const chain = "SOL";
62
64
  const walletProviderType = WalletProviderEnum.EmbeddedWallet;
@@ -172,6 +174,7 @@ const WAAS_SOLANA_EXTENSION_KEY = "waasSolana";
172
174
  * allowing users to have wallets managed by Dynamic's infrastructure.
173
175
  *
174
176
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
177
+ * @not-instrumented
175
178
  */
176
179
  const addWaasSolanaExtension = (client = getDefaultClient()) => {
177
180
  if (hasExtension({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client)) return;
@@ -187,4 +190,4 @@ const addWaasSolanaExtension = (client = getDefaultClient()) => {
187
190
 
188
191
  //#endregion
189
192
  export { SponsorTransactionError as n, addWaasSolanaExtension as t };
190
- //# sourceMappingURL=addWaasSolanaExtension-BYJQtyvL.esm.js.map
193
+ //# sourceMappingURL=addWaasSolanaExtension-DTiSDhga.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasSolanaExtension-DTiSDhga.esm.js","names":["chain: Chain","getActiveNetworkId: WaasSolanaWalletProvider['getActiveNetworkId']","switchActiveNetwork: WaasSolanaWalletProvider['switchActiveNetwork']","getConnectedAddresses: WaasSolanaWalletProvider['getConnectedAddresses']","signAndSendTransaction: WaasSolanaWalletProvider['signAndSendTransaction']","signAndSendSponsoredTransaction: WaasSolanaWalletProvider['signAndSendSponsoredTransaction']","signTransaction: WaasSolanaWalletProvider['signTransaction']","signAllTransactions: WaasSolanaWalletProvider['signAllTransactions']","signMessage: WaasSolanaWalletProvider['signMessage']"],"sources":["../src/errors/SponsorTransactionError/SponsorTransactionError.ts","../src/waas/utils/sponsorTransaction/sponsorTransaction.ts","../src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.ts","../src/waas/addWaasSolanaExtension/addWaasSolanaExtension.ts"],"sourcesContent":["import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class SponsorTransactionError extends BaseError {\n constructor(cause?: Error | null) {\n super({\n cause: cause ?? null,\n code: 'sponsor_transaction_error',\n docsUrl: null,\n name: 'SponsorTransactionError',\n shortMessage: 'Failed to sponsor transaction',\n });\n }\n}\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n createApiClient,\n getBuffer,\n getCore,\n} from '@dynamic-labs-sdk/client/core';\nimport type { Transaction } from '@solana/web3.js';\nimport { VersionedTransaction } from '@solana/web3.js';\n\nimport { SponsorTransactionError } from '../../../errors/SponsorTransactionError/SponsorTransactionError';\nimport { isVersionedTransaction } from '../../../utils/isVersionedTransaction';\n\ntype SponsorTransactionParams = {\n transaction: Transaction | VersionedTransaction;\n};\n\n/**\n * Sponsors a Solana transaction using the Dynamic backend.\n *\n * Sends the transaction to Dynamic's sponsorship API, which replaces the\n * fee payer with a sponsored account. This allows users to execute\n * transactions without holding SOL for gas fees.\n *\n * @param params - The parameters object containing the transaction\n * @param params.transaction - The Solana transaction to sponsor\n * @param client - The Dynamic client instance used for API calls and state access\n * @returns The sponsored transaction as a VersionedTransaction\n * @throws {SponsorTransactionError} If the API response is missing the transaction field\n * @not-instrumented\n */\nexport const sponsorTransaction = async (\n { transaction }: SponsorTransactionParams,\n client: DynamicClient\n): Promise<VersionedTransaction> => {\n const core = getCore(client);\n\n const serialized = isVersionedTransaction(transaction)\n ? transaction.serialize()\n : transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n });\n\n const base64Transaction = getBuffer()\n .from(serialized as Uint8Array)\n .toString('base64');\n\n const apiClient = createApiClient({}, client);\n\n let data;\n\n try {\n data = await apiClient.sponsorSVMTransaction({\n environmentId: core.environmentId,\n sponsorSVMTransactionRequest: {\n transaction: base64Transaction,\n },\n });\n } catch (error) {\n const cause = error instanceof Error ? error : null;\n throw new SponsorTransactionError(cause);\n }\n\n if (!data.transaction) {\n throw new SponsorTransactionError();\n }\n\n const buffer = getBuffer().from(data.transaction, 'base64');\n\n return VersionedTransaction.deserialize(new Uint8Array(buffer));\n};\n","import {\n type Chain,\n type DynamicClient,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n getBuffer,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { PublicKey } from '@solana/web3.js';\n\nimport { getSolanaConnection } from '../../../getSolanaConnection';\nimport { isVersionedTransaction } from '../../../utils/isVersionedTransaction';\nimport { solanaExecuteCheckoutTransaction } from '../../../utils/solanaExecuteCheckoutTransaction';\nimport { solanaTransferAmount } from '../../../utils/solanaTransferAmount';\nimport type { WaasSolanaWalletProvider } from '../../WaasSolanaWalletProvider.types';\nimport { sponsorTransaction } from '../sponsorTransaction';\n\n/** @not-instrumented */\nexport const createWalletProviderForWaasSolana = (\n sdkClient: DynamicClient\n): WaasSolanaWalletProvider => {\n const chain: Chain = 'SOL';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({ chain, sdkClient });\n\n const getActiveNetworkId: WaasSolanaWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: sdkClient,\n walletProviderKey: key,\n });\n\n const switchActiveNetwork: WaasSolanaWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: sdkClient,\n networkId,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasSolanaWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasSolanaAddresses = getAllUserWaasAddressesForChain(\n { chain },\n sdkClient\n );\n\n return {\n addresses: waasSolanaAddresses,\n };\n };\n\n const signAndSendTransaction: WaasSolanaWalletProvider['signAndSendTransaction'] =\n async ({ transaction, walletAccount, options }) => {\n const { signedTransaction } = await signTransaction({\n transaction,\n walletAccount,\n });\n\n const { networkData } = await getActiveNetworkData(\n { walletAccount },\n sdkClient\n );\n\n assertDefined(networkData, 'Network data is required');\n\n const connection = getSolanaConnection({ networkData });\n\n const rawTransaction = signedTransaction.serialize();\n\n const signature = await connection.sendRawTransaction(\n rawTransaction,\n options\n );\n\n return { signature };\n };\n\n const signAndSendSponsoredTransaction: WaasSolanaWalletProvider['signAndSendSponsoredTransaction'] =\n async ({ transaction, walletAccount, options }) => {\n const sponsoredTx = await sponsorTransaction({ transaction }, sdkClient);\n\n const { signedTransaction } = await signTransaction({\n transaction: sponsoredTx,\n walletAccount,\n });\n\n const { networkData } = await getActiveNetworkData(\n { walletAccount },\n sdkClient\n );\n\n assertDefined(networkData, 'Network data is required');\n\n const connection = getSolanaConnection({ networkData });\n\n const rawTransaction = signedTransaction.serialize();\n\n // Skip preflight simulation to avoid false\n // \"Attempt to debit an account but found no record of a prior credit\"\n // errors — the fee payer has been replaced but preflight may still reject it\n const signature = await connection.sendRawTransaction(rawTransaction, {\n skipPreflight: true,\n ...options,\n });\n\n return { signature };\n };\n\n const signTransaction: WaasSolanaWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const messageBytes = isVersionedTransaction(transaction)\n ? transaction.message.serialize()\n : transaction.serializeMessage();\n\n const serializedTransaction = getBuffer()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .from(messageBytes as any)\n .toString('hex');\n\n const { networkData } = await getActiveNetworkData(\n { walletAccount },\n sdkClient\n );\n\n const { signature } = await waasProvider.signSerializedTransaction({\n chainId: networkData?.networkId,\n serializedTransaction,\n walletAccount,\n });\n\n const publicKey = new PublicKey(walletAccount.address);\n\n transaction.addSignature(\n publicKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getBuffer().from(signature, 'hex') as any\n );\n\n transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: true,\n });\n\n return { signedTransaction: transaction };\n };\n\n const signAllTransactions: WaasSolanaWalletProvider['signAllTransactions'] =\n async ({ transactions, walletAccount }) => {\n const signedTransactions = await Promise.all(\n transactions.map(async (transaction) => {\n const { signedTransaction } = await signTransaction({\n transaction,\n walletAccount,\n });\n\n return signedTransaction;\n })\n );\n\n return { signedTransactions };\n };\n\n const signMessage: WaasSolanaWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({ message, walletAccount });\n };\n\n return {\n ...waasProvider,\n chain,\n executeCheckoutTransaction: (args) =>\n solanaExecuteCheckoutTransaction(args, sdkClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signAllTransactions,\n signAndSendSponsoredTransaction,\n signAndSendTransaction,\n signMessage,\n signTransaction,\n switchActiveNetwork,\n transferAmount: (args) => solanaTransferAmount(args, sdkClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerSolanaNetworkProviderBuilder } from '../../registerSolanaNetworkProviderBuilder';\nimport { createWalletProviderForWaasSolana } from '../utils/createWalletProviderForWaasSolana';\n\nexport const WAAS_SOLANA_EXTENSION_KEY = 'waasSolana';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) Solana extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for Solana blockchain,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addWaasSolanaExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client);\n registerSolanaNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasSolana(client);\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":";;;;;;;;AAEA,IAAa,0BAAb,cAA6C,UAAU;CACrD,YAAY,OAAsB;AAChC,QAAM;GACJ,OAAO,SAAS;GAChB,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;;;;;;;;;;;;;;;;;;;;ACoBN,MAAa,qBAAqB,OAChC,EAAE,eACF,WACkC;CAClC,MAAM,OAAO,QAAQ,OAAO;CAE5B,MAAM,aAAa,uBAAuB,YAAY,GAClD,YAAY,WAAW,GACvB,YAAY,UAAU;EACpB,sBAAsB;EACtB,kBAAkB;EACnB,CAAC;CAEN,MAAM,oBAAoB,WAAW,CAClC,KAAK,WAAyB,CAC9B,SAAS,SAAS;CAErB,MAAM,YAAY,gBAAgB,EAAE,EAAE,OAAO;CAE7C,IAAI;AAEJ,KAAI;AACF,SAAO,MAAM,UAAU,sBAAsB;GAC3C,eAAe,KAAK;GACpB,8BAA8B,EAC5B,aAAa,mBACd;GACF,CAAC;UACK,OAAO;AAEd,QAAM,IAAI,wBADI,iBAAiB,QAAQ,QAAQ,KACP;;AAG1C,KAAI,CAAC,KAAK,YACR,OAAM,IAAI,yBAAyB;CAGrC,MAAM,SAAS,WAAW,CAAC,KAAK,KAAK,aAAa,SAAS;AAE3D,QAAO,qBAAqB,YAAY,IAAI,WAAW,OAAO,CAAC;;;;;;ACxCjE,MAAa,qCACX,cAC6B;CAC7B,MAAMA,QAAe;CAErB,MAAM,qBAAqB,mBAAmB;CAE9C,MAAM,MAAM,wBAAwB;EAClC;EACA,aAAa,sBAAsB;EACnC;EACD,CAAC;CAEF,MAAM,eAAe,mBAAmB;EAAE;EAAO;EAAW,CAAC;CAE7D,MAAMC,qBACJ,YACE,wCAAwC;EACtC,QAAQ;EACR,mBAAmB;EACpB,CAAC;CAEN,MAAMC,sBACJ,OAAO,EAAE,gBACP,uCAAuC;EACrC,QAAQ;EACR;EACA,mBAAmB;EACpB,CAAC;CAEN,MAAMC,wBACJ,YAAY;AAMV,SAAO,EACL,WAN0B,gCAC1B,EAAE,OAAO,EACT,UACD,EAIA;;CAGL,MAAMC,yBACJ,OAAO,EAAE,aAAa,eAAe,cAAc;EACjD,MAAM,EAAE,sBAAsB,MAAM,gBAAgB;GAClD;GACA;GACD,CAAC;EAEF,MAAM,EAAE,gBAAgB,MAAM,qBAC5B,EAAE,eAAe,EACjB,UACD;AAED,gBAAc,aAAa,2BAA2B;EAEtD,MAAM,aAAa,oBAAoB,EAAE,aAAa,CAAC;EAEvD,MAAM,iBAAiB,kBAAkB,WAAW;AAOpD,SAAO,EAAE,WALS,MAAM,WAAW,mBACjC,gBACA,QACD,EAEmB;;CAGxB,MAAMC,kCACJ,OAAO,EAAE,aAAa,eAAe,cAAc;EAGjD,MAAM,EAAE,sBAAsB,MAAM,gBAAgB;GAClD,aAHkB,MAAM,mBAAmB,EAAE,aAAa,EAAE,UAAU;GAItE;GACD,CAAC;EAEF,MAAM,EAAE,gBAAgB,MAAM,qBAC5B,EAAE,eAAe,EACjB,UACD;AAED,gBAAc,aAAa,2BAA2B;EAEtD,MAAM,aAAa,oBAAoB,EAAE,aAAa,CAAC;EAEvD,MAAM,iBAAiB,kBAAkB,WAAW;AAUpD,SAAO,EAAE,WALS,MAAM,WAAW,mBAAmB,gBAAgB;GACpE,eAAe;GACf,GAAG;GACJ,CAAC,EAEkB;;CAGxB,MAAMC,kBAA+D,OAAO,EAC1E,aACA,oBACI;EACJ,MAAM,eAAe,uBAAuB,YAAY,GACpD,YAAY,QAAQ,WAAW,GAC/B,YAAY,kBAAkB;EAElC,MAAM,wBAAwB,WAAW,CAEtC,KAAK,aAAoB,CACzB,SAAS,MAAM;EAElB,MAAM,EAAE,gBAAgB,MAAM,qBAC5B,EAAE,eAAe,EACjB,UACD;EAED,MAAM,EAAE,cAAc,MAAM,aAAa,0BAA0B;GACjE,SAAS,aAAa;GACtB;GACA;GACD,CAAC;EAEF,MAAM,YAAY,IAAI,UAAU,cAAc,QAAQ;AAEtD,cAAY,aACV,WAEA,WAAW,CAAC,KAAK,WAAW,MAAM,CACnC;AAED,cAAY,UAAU;GACpB,sBAAsB;GACtB,kBAAkB;GACnB,CAAC;AAEF,SAAO,EAAE,mBAAmB,aAAa;;CAG3C,MAAMC,sBACJ,OAAO,EAAE,cAAc,oBAAoB;AAYzC,SAAO,EAAE,oBAXkB,MAAM,QAAQ,IACvC,aAAa,IAAI,OAAO,gBAAgB;GACtC,MAAM,EAAE,sBAAsB,MAAM,gBAAgB;IAClD;IACA;IACD,CAAC;AAEF,UAAO;IACP,CACH,EAE4B;;CAGjC,MAAMC,cAAuD,OAAO,EAClE,SACA,oBACI;AACJ,gBAAc,eAAe,6BAA6B;AAE1D,SAAO,aAAa,YAAY;GAAE;GAAS;GAAe,CAAC;;AAG7D,QAAO;EACL,GAAG;EACH;EACA,6BAA6B,SAC3B,iCAAiC,MAAM,UAAU;EACnD;EACA;EACA,UAAU,6BAA6B,sBAAsB,YAAY;EACzE;EACA,UAAU;GACR,aAAa,sBAAsB;GACnC,MAAM,sBAAsB;GAC7B;EACD;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB,SAAS,qBAAqB,MAAM,UAAU;EAC/D;EACD;;;;;AC3MH,MAAa,4BAA4B;;;;;;;;;;AAWzC,MAAa,0BAA0B,SAAS,kBAAkB,KAAW;AAC3E,KAAI,aAAa,EAAE,cAAc,2BAA2B,EAAE,OAAO,CACnE;AAGF,mBAAkB,EAAE,cAAc,2BAA2B,EAAE,OAAO;AACtE,sCAAqC,OAAO;CAE5C,MAAM,yBAAyB,0BAA0B,OAAO;CAEhE,MAAM,iBAAiB,kCAAkC,OAAO;AAEhE,wBAAuB,SAAS;EAC9B,UAAU,uBAAuB;EACjC;EACD,CAAC"}
@@ -1,5 +1,5 @@
1
- const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-CmzTIIfA.cjs.js');
2
- const require_solanaTransferAmount = require('./solanaTransferAmount-BYGPXNUH.cjs.js');
1
+ const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-BT3uAg9w.cjs.js');
2
+ const require_solanaTransferAmount = require('./solanaTransferAmount-DV3fYpF9.cjs.js');
3
3
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
4
4
  let _solana_web3_js = require("@solana/web3.js");
5
5
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
@@ -33,6 +33,7 @@ var SponsorTransactionError = class extends _dynamic_labs_sdk_client.BaseError {
33
33
  * @param client - The Dynamic client instance used for API calls and state access
34
34
  * @returns The sponsored transaction as a VersionedTransaction
35
35
  * @throws {SponsorTransactionError} If the API response is missing the transaction field
36
+ * @not-instrumented
36
37
  */
37
38
  const sponsorTransaction = async ({ transaction }, client) => {
38
39
  const core = (0, _dynamic_labs_sdk_client_core.getCore)(client);
@@ -58,6 +59,7 @@ const sponsorTransaction = async ({ transaction }, client) => {
58
59
 
59
60
  //#endregion
60
61
  //#region src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.ts
62
+ /** @not-instrumented */
61
63
  const createWalletProviderForWaasSolana = (sdkClient) => {
62
64
  const chain = "SOL";
63
65
  const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.EmbeddedWallet;
@@ -173,6 +175,7 @@ const WAAS_SOLANA_EXTENSION_KEY = "waasSolana";
173
175
  * allowing users to have wallets managed by Dynamic's infrastructure.
174
176
  *
175
177
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
178
+ * @not-instrumented
176
179
  */
177
180
  const addWaasSolanaExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
178
181
  if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client)) return;
@@ -199,4 +202,4 @@ Object.defineProperty(exports, 'addWaasSolanaExtension', {
199
202
  return addWaasSolanaExtension;
200
203
  }
201
204
  });
202
- //# sourceMappingURL=addWaasSolanaExtension-C-rRo3P1.cjs.js.map
205
+ //# sourceMappingURL=addWaasSolanaExtension-YLYVRa97.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasSolanaExtension-YLYVRa97.cjs.js","names":["BaseError","isVersionedTransaction","VersionedTransaction","chain: Chain","WalletProviderEnum","DYNAMIC_WAAS_METADATA","getActiveNetworkId: WaasSolanaWalletProvider['getActiveNetworkId']","switchActiveNetwork: WaasSolanaWalletProvider['switchActiveNetwork']","getConnectedAddresses: WaasSolanaWalletProvider['getConnectedAddresses']","signAndSendTransaction: WaasSolanaWalletProvider['signAndSendTransaction']","getSolanaConnection","signAndSendSponsoredTransaction: WaasSolanaWalletProvider['signAndSendSponsoredTransaction']","signTransaction: WaasSolanaWalletProvider['signTransaction']","isVersionedTransaction","PublicKey","signAllTransactions: WaasSolanaWalletProvider['signAllTransactions']","signMessage: WaasSolanaWalletProvider['signMessage']","solanaExecuteCheckoutTransaction","solanaTransferAmount","WalletProviderPriority"],"sources":["../src/errors/SponsorTransactionError/SponsorTransactionError.ts","../src/waas/utils/sponsorTransaction/sponsorTransaction.ts","../src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.ts","../src/waas/addWaasSolanaExtension/addWaasSolanaExtension.ts"],"sourcesContent":["import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class SponsorTransactionError extends BaseError {\n constructor(cause?: Error | null) {\n super({\n cause: cause ?? null,\n code: 'sponsor_transaction_error',\n docsUrl: null,\n name: 'SponsorTransactionError',\n shortMessage: 'Failed to sponsor transaction',\n });\n }\n}\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n createApiClient,\n getBuffer,\n getCore,\n} from '@dynamic-labs-sdk/client/core';\nimport type { Transaction } from '@solana/web3.js';\nimport { VersionedTransaction } from '@solana/web3.js';\n\nimport { SponsorTransactionError } from '../../../errors/SponsorTransactionError/SponsorTransactionError';\nimport { isVersionedTransaction } from '../../../utils/isVersionedTransaction';\n\ntype SponsorTransactionParams = {\n transaction: Transaction | VersionedTransaction;\n};\n\n/**\n * Sponsors a Solana transaction using the Dynamic backend.\n *\n * Sends the transaction to Dynamic's sponsorship API, which replaces the\n * fee payer with a sponsored account. This allows users to execute\n * transactions without holding SOL for gas fees.\n *\n * @param params - The parameters object containing the transaction\n * @param params.transaction - The Solana transaction to sponsor\n * @param client - The Dynamic client instance used for API calls and state access\n * @returns The sponsored transaction as a VersionedTransaction\n * @throws {SponsorTransactionError} If the API response is missing the transaction field\n * @not-instrumented\n */\nexport const sponsorTransaction = async (\n { transaction }: SponsorTransactionParams,\n client: DynamicClient\n): Promise<VersionedTransaction> => {\n const core = getCore(client);\n\n const serialized = isVersionedTransaction(transaction)\n ? transaction.serialize()\n : transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n });\n\n const base64Transaction = getBuffer()\n .from(serialized as Uint8Array)\n .toString('base64');\n\n const apiClient = createApiClient({}, client);\n\n let data;\n\n try {\n data = await apiClient.sponsorSVMTransaction({\n environmentId: core.environmentId,\n sponsorSVMTransactionRequest: {\n transaction: base64Transaction,\n },\n });\n } catch (error) {\n const cause = error instanceof Error ? error : null;\n throw new SponsorTransactionError(cause);\n }\n\n if (!data.transaction) {\n throw new SponsorTransactionError();\n }\n\n const buffer = getBuffer().from(data.transaction, 'base64');\n\n return VersionedTransaction.deserialize(new Uint8Array(buffer));\n};\n","import {\n type Chain,\n type DynamicClient,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n getBuffer,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { PublicKey } from '@solana/web3.js';\n\nimport { getSolanaConnection } from '../../../getSolanaConnection';\nimport { isVersionedTransaction } from '../../../utils/isVersionedTransaction';\nimport { solanaExecuteCheckoutTransaction } from '../../../utils/solanaExecuteCheckoutTransaction';\nimport { solanaTransferAmount } from '../../../utils/solanaTransferAmount';\nimport type { WaasSolanaWalletProvider } from '../../WaasSolanaWalletProvider.types';\nimport { sponsorTransaction } from '../sponsorTransaction';\n\n/** @not-instrumented */\nexport const createWalletProviderForWaasSolana = (\n sdkClient: DynamicClient\n): WaasSolanaWalletProvider => {\n const chain: Chain = 'SOL';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({ chain, sdkClient });\n\n const getActiveNetworkId: WaasSolanaWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: sdkClient,\n walletProviderKey: key,\n });\n\n const switchActiveNetwork: WaasSolanaWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: sdkClient,\n networkId,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasSolanaWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasSolanaAddresses = getAllUserWaasAddressesForChain(\n { chain },\n sdkClient\n );\n\n return {\n addresses: waasSolanaAddresses,\n };\n };\n\n const signAndSendTransaction: WaasSolanaWalletProvider['signAndSendTransaction'] =\n async ({ transaction, walletAccount, options }) => {\n const { signedTransaction } = await signTransaction({\n transaction,\n walletAccount,\n });\n\n const { networkData } = await getActiveNetworkData(\n { walletAccount },\n sdkClient\n );\n\n assertDefined(networkData, 'Network data is required');\n\n const connection = getSolanaConnection({ networkData });\n\n const rawTransaction = signedTransaction.serialize();\n\n const signature = await connection.sendRawTransaction(\n rawTransaction,\n options\n );\n\n return { signature };\n };\n\n const signAndSendSponsoredTransaction: WaasSolanaWalletProvider['signAndSendSponsoredTransaction'] =\n async ({ transaction, walletAccount, options }) => {\n const sponsoredTx = await sponsorTransaction({ transaction }, sdkClient);\n\n const { signedTransaction } = await signTransaction({\n transaction: sponsoredTx,\n walletAccount,\n });\n\n const { networkData } = await getActiveNetworkData(\n { walletAccount },\n sdkClient\n );\n\n assertDefined(networkData, 'Network data is required');\n\n const connection = getSolanaConnection({ networkData });\n\n const rawTransaction = signedTransaction.serialize();\n\n // Skip preflight simulation to avoid false\n // \"Attempt to debit an account but found no record of a prior credit\"\n // errors — the fee payer has been replaced but preflight may still reject it\n const signature = await connection.sendRawTransaction(rawTransaction, {\n skipPreflight: true,\n ...options,\n });\n\n return { signature };\n };\n\n const signTransaction: WaasSolanaWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const messageBytes = isVersionedTransaction(transaction)\n ? transaction.message.serialize()\n : transaction.serializeMessage();\n\n const serializedTransaction = getBuffer()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .from(messageBytes as any)\n .toString('hex');\n\n const { networkData } = await getActiveNetworkData(\n { walletAccount },\n sdkClient\n );\n\n const { signature } = await waasProvider.signSerializedTransaction({\n chainId: networkData?.networkId,\n serializedTransaction,\n walletAccount,\n });\n\n const publicKey = new PublicKey(walletAccount.address);\n\n transaction.addSignature(\n publicKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getBuffer().from(signature, 'hex') as any\n );\n\n transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: true,\n });\n\n return { signedTransaction: transaction };\n };\n\n const signAllTransactions: WaasSolanaWalletProvider['signAllTransactions'] =\n async ({ transactions, walletAccount }) => {\n const signedTransactions = await Promise.all(\n transactions.map(async (transaction) => {\n const { signedTransaction } = await signTransaction({\n transaction,\n walletAccount,\n });\n\n return signedTransaction;\n })\n );\n\n return { signedTransactions };\n };\n\n const signMessage: WaasSolanaWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({ message, walletAccount });\n };\n\n return {\n ...waasProvider,\n chain,\n executeCheckoutTransaction: (args) =>\n solanaExecuteCheckoutTransaction(args, sdkClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signAllTransactions,\n signAndSendSponsoredTransaction,\n signAndSendTransaction,\n signMessage,\n signTransaction,\n switchActiveNetwork,\n transferAmount: (args) => solanaTransferAmount(args, sdkClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerSolanaNetworkProviderBuilder } from '../../registerSolanaNetworkProviderBuilder';\nimport { createWalletProviderForWaasSolana } from '../utils/createWalletProviderForWaasSolana';\n\nexport const WAAS_SOLANA_EXTENSION_KEY = 'waasSolana';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) Solana extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for Solana blockchain,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addWaasSolanaExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client);\n registerSolanaNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasSolana(client);\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":"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"}
@@ -23,6 +23,7 @@ type GetSolanaConnectionOptions = {
23
23
  * networkData,
24
24
  * });
25
25
  * ```
26
+ * @not-instrumented
26
27
  */
27
28
  export declare const getSolanaConnection: ({ networkData, commitmentOrConfig, }: GetSolanaConnectionOptions) => Connection;
28
29
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"getSolanaConnection.d.ts","sourceRoot":"","sources":["../../src/getSolanaConnection/getSolanaConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,KAAK,0BAA0B,GAAG;IAChC,kBAAkB,CAAC,EAAE,UAAU,GAAG,gBAAgB,CAAC;IACnD,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,yCAG7B,0BAA0B,eAE5B,CAAC"}
1
+ {"version":3,"file":"getSolanaConnection.d.ts","sourceRoot":"","sources":["../../src/getSolanaConnection/getSolanaConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,KAAK,0BAA0B,GAAG;IAChC,kBAAkB,CAAC,EAAE,UAAU,GAAG,gBAAgB,CAAC;IACnD,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,mBAAmB,yCAG7B,0BAA0B,eAE5B,CAAC"}
package/dist/index.cjs.js CHANGED
@@ -1,6 +1,6 @@
1
- const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-CmzTIIfA.cjs.js');
2
- const require_solanaTransferAmount = require('./solanaTransferAmount-BYGPXNUH.cjs.js');
3
- const require_addWaasSolanaExtension = require('./addWaasSolanaExtension-C-rRo3P1.cjs.js');
1
+ const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-BT3uAg9w.cjs.js');
2
+ const require_solanaTransferAmount = require('./solanaTransferAmount-DV3fYpF9.cjs.js');
3
+ const require_addWaasSolanaExtension = require('./addWaasSolanaExtension-YLYVRa97.cjs.js');
4
4
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
5
5
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
6
6
  let _solana_web3_js = require("@solana/web3.js");
@@ -22,6 +22,7 @@ tweetnacl = require_addSolanaWalletStandardExtension.__toESM(tweetnacl);
22
22
  * including standard wallets and embedded wallets managed by Dynamic's infrastructure.
23
23
  *
24
24
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
25
+ * @not-instrumented
25
26
  */
26
27
  const addSolanaExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
27
28
  require_addSolanaWalletStandardExtension.addSolanaWalletStandardExtension(client);
@@ -35,6 +36,7 @@ const addSolanaExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaul
35
36
  *
36
37
  * @param networkProvider - The network provider to check.
37
38
  * @returns True if the network provider is a Solana network provider, false otherwise.
39
+ * @not-instrumented
38
40
  */
39
41
  const isSolanaNetworkProvider = (networkProvider) => networkProvider.chain === "SOL";
40
42
 
@@ -57,6 +59,7 @@ const sleep = (ms) => new Promise((resolve) => {
57
59
  * @param params.nativeTokenPriceUsd - Optional USD price of SOL for fee conversion.
58
60
  * @returns Fee data in lamports and human-readable SOL format.
59
61
  * @throws {FeeEstimationFailedError} If fee retrieval fails after retries.
62
+ * @not-instrumented
60
63
  */
61
64
  const calculateSolanaTransactionFee = async ({ transaction, networkData, nativeTokenPriceUsd }) => {
62
65
  try {
@@ -134,6 +137,7 @@ const calculateSolanaTransactionFee = async ({ transaction, networkData, nativeT
134
137
  * @throws {InvalidParamError} If wallet account is not a Solana account.
135
138
  * @throws {SimulationFailedError} If the simulation API call fails.
136
139
  * @throws {FeeEstimationFailedError} If includeFees is true and fee calculation fails.
140
+ * @not-instrumented
137
141
  */
138
142
  const simulateSolanaTransaction = async ({ walletAccount, transaction, includeFees = false }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
139
143
  if (!require_solanaTransferAmount.isSolanaWalletAccount(walletAccount)) throw new _dynamic_labs_sdk_client.InvalidParamError("Wallet account must be a Solana wallet account");
@@ -318,6 +322,7 @@ const phantomSessionStorageKeySchema = (0, _dynamic_labs_sdk_client_core.createS
318
322
  * @param params.event - The DynamicEvents event name to broadcast
319
323
  * @param params.args - The event arguments to include in the message
320
324
  * @param client - The Dynamic client instance
325
+ * @not-instrumented
321
326
  */
322
327
  const broadcastPhantomEvent = ({ args, event }, client) => {
323
328
  (0, _dynamic_labs_sdk_client_core.getCore)(client).crossTabBroadcast.send({
@@ -334,6 +339,7 @@ const broadcastPhantomEvent = ({ args, event }, client) => {
334
339
  * @param params.ourSecretKey - Our base58-encoded secret key
335
340
  * @param params.theirPublicKey - Their base58-encoded public key
336
341
  * @returns The base58-encoded shared secret
342
+ * @not-instrumented
337
343
  */
338
344
  const createNaClSharedSecret = ({ ourSecretKey, theirPublicKey }) => {
339
345
  const sharedSecret = tweetnacl.default.box.before(bs58.default.decode(theirPublicKey), bs58.default.decode(ourSecretKey));
@@ -364,6 +370,7 @@ var PhantomRedirectDecryptionError = class extends _dynamic_labs_sdk_client.Base
364
370
  * @param params.sharedSecret - The base58-encoded shared secret
365
371
  * @returns The decrypted payload object
366
372
  * @throws {PhantomRedirectDecryptionError} If decryption fails
373
+ * @not-instrumented
367
374
  */
368
375
  const decryptPayload = ({ data, nonce, sharedSecret }) => {
369
376
  let decrypted;
@@ -409,6 +416,7 @@ const getPhantomOriginTab = (0, _dynamic_labs_sdk_client_core.createRuntimeServi
409
416
  *
410
417
  * @param params.url - The redirect URL containing Phantom parameters
411
418
  * @returns Object containing the parsed redirect parameters
419
+ * @not-instrumented
412
420
  */
413
421
  const parsePhantomRedirectParams = ({ url }) => {
414
422
  const searchParams = url.searchParams;
@@ -505,6 +513,7 @@ const completeAndEmitPhantomRedirectEvent = async ({ args, event }, client) => {
505
513
  * required encryption parameters (`phantom_encryption_public_key`, `data`,
506
514
  * `nonce`) and does not carry an error code either
507
515
  * @throws {PhantomRedirectRejectedError} If the user rejected the request in Phantom
516
+ * @not-instrumented
508
517
  */
509
518
  const completePhantomRedirect = async ({ url }, client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
510
519
  const core = (0, _dynamic_labs_sdk_client_core.getCore)(client);
@@ -604,6 +613,7 @@ const completePhantomRedirect = async ({ url }, client = (0, _dynamic_labs_sdk_c
604
613
  * @param params.payload - Optional encrypted payload for signing operations
605
614
  * @param params.nonce - Optional nonce for encrypted payload
606
615
  * @returns The complete Phantom deep link URL
616
+ * @not-instrumented
607
617
  */
608
618
  const buildPhantomDeepLink = ({ appUrl, cluster, dappPublicKey, method, nonce, payload, redirectUrl }) => {
609
619
  const url = new URL(`${PHANTOM_DEEPLINK_BASE_URL}/${method}`);
@@ -624,6 +634,7 @@ const buildPhantomDeepLink = ({ appUrl, cluster, dappPublicKey, method, nonce, p
624
634
  * @param params.payload - The payload object to encrypt
625
635
  * @param params.sharedSecret - The base58-encoded shared secret
626
636
  * @returns The encrypted data and nonce, both base58-encoded
637
+ * @not-instrumented
627
638
  */
628
639
  const encryptPayload = ({ payload, sharedSecret }) => {
629
640
  const nonce = tweetnacl.default.randomBytes(tweetnacl.default.box.nonceLength);
@@ -642,6 +653,7 @@ const encryptPayload = ({ payload, sharedSecret }) => {
642
653
  * Generates a new NaCl key pair for encryption.
643
654
  *
644
655
  * @returns A key pair with base58-encoded public and secret keys
656
+ * @not-instrumented
645
657
  */
646
658
  const generateNaClKeyPair = () => {
647
659
  const keyPair = tweetnacl.default.box.keyPair();
@@ -672,6 +684,7 @@ const normalizeCluster = (cluster) => {
672
684
  *
673
685
  * Returns `undefined` if no cluster can be determined; Phantom will use the
674
686
  * wallet's default in that case.
687
+ * @not-instrumented
675
688
  */
676
689
  const getPhantomCluster = async ({ dynamicClient, walletAccount }) => {
677
690
  if (walletAccount) {
@@ -693,6 +706,7 @@ const getPhantomCluster = async ({ dynamicClient, walletAccount }) => {
693
706
  * @param listeners - Map of event names to handler functions
694
707
  * @param client - The Dynamic client instance
695
708
  * @returns Cleanup function that removes all registered listeners
709
+ * @not-instrumented
696
710
  */
697
711
  const listenForPhantomBroadcast = (listeners, client) => {
698
712
  const { crossTabBroadcast } = (0, _dynamic_labs_sdk_client_core.getCore)(client);
@@ -730,6 +744,7 @@ const extractDappUrl = (redirectUrl) => {
730
744
  *
731
745
  * @param params.dynamicClient - The Dynamic client instance
732
746
  * @returns A Phantom redirect wallet provider
747
+ * @not-instrumented
733
748
  */
734
749
  const createPhantomRedirectWalletProvider = ({ baseRedirectUrl, dynamicClient }) => {
735
750
  const core = (0, _dynamic_labs_sdk_client_core.getCore)(dynamicClient);
@@ -1078,6 +1093,7 @@ const createPhantomRedirectWalletProvider = ({ baseRedirectUrl, dynamicClient })
1078
1093
  * @param params.url - The URL to check for Phantom redirect parameters
1079
1094
  * @param client - The Dynamic client instance
1080
1095
  * @returns A promise that resolves to true if the URL is a valid Phantom redirect, false otherwise
1096
+ * @not-instrumented
1081
1097
  */
1082
1098
  const detectPhantomRedirect = async ({ url }, client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
1083
1099
  const core = (0, _dynamic_labs_sdk_client_core.getCore)(client);
@@ -1134,6 +1150,7 @@ const PHANTOM_REDIRECT_SOLANA_EXTENSION_KEY = "phantomRedirectSolana";
1134
1150
  * @param params.onCloseTab - Callback invoked when the clone tab should close
1135
1151
  * @param params.disableAutoRedirectCompletion - Skip auto detection/completion
1136
1152
  * @param [client] - The Dynamic client. Only required for multiple clients.
1153
+ * @not-instrumented
1137
1154
  */
1138
1155
  const addPhantomRedirectSolanaExtension = async ({ disableAutoRedirectCompletion, onCloseTab, url }, client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
1139
1156
  if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: PHANTOM_REDIRECT_SOLANA_EXTENSION_KEY }, client)) {
@@ -1193,6 +1210,7 @@ const addPhantomRedirectSolanaExtension = async ({ disableAutoRedirectCompletion
1193
1210
  * @param params.walletAccount - The wallet account to sign the transactions with
1194
1211
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1195
1212
  * @returns An object containing the signed transactions
1213
+ * @not-instrumented
1196
1214
  */
1197
1215
  const signAllTransactions = async ({ walletAccount, transactions }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
1198
1216
  const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
@@ -1215,6 +1233,7 @@ const signAllTransactions = async ({ walletAccount, transactions }, client = (0,
1215
1233
  * @returns An object containing the signature
1216
1234
  * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider
1217
1235
  * @throws {MethodNotImplementedError} If the wallet provider does not implement signAndSendSponsoredTransaction
1236
+ * @not-instrumented
1218
1237
  */
1219
1238
  const signAndSendSponsoredTransaction = async ({ walletAccount, transaction, options }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
1220
1239
  const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
@@ -1235,6 +1254,7 @@ const signAndSendSponsoredTransaction = async ({ walletAccount, transaction, opt
1235
1254
  * @param params.walletAccount - The wallet account to sign and send the transaction with
1236
1255
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1237
1256
  * @returns An object containing the signature
1257
+ * @not-instrumented
1238
1258
  */
1239
1259
  const signAndSendTransaction = async ({ walletAccount, transaction, options }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
1240
1260
  const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
@@ -1254,6 +1274,7 @@ const signAndSendTransaction = async ({ walletAccount, transaction, options }, c
1254
1274
  * @param params.walletAccount - The wallet account to sign the transaction with
1255
1275
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1256
1276
  * @returns An object containing the signed transaction
1277
+ * @not-instrumented
1257
1278
  */
1258
1279
  const signTransaction = async ({ walletAccount, transaction }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
1259
1280
  const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);