@dynamic-labs-sdk/solana 0.14.0 → 0.16.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 (57) hide show
  1. package/dist/{addSolanaWalletStandardExtension-Bv39eDZc.cjs.js → addSolanaWalletStandardExtension-0JyyakfO.cjs.js} +6 -4
  2. package/dist/addSolanaWalletStandardExtension-0JyyakfO.cjs.js.map +1 -0
  3. package/dist/{addSolanaWalletStandardExtension-B7GpGFx3.esm.js → addSolanaWalletStandardExtension-CPT-KI29.esm.js} +4 -2
  4. package/dist/addSolanaWalletStandardExtension-CPT-KI29.esm.js.map +1 -0
  5. package/dist/{addWaasSolanaExtension-ofYQDYyc.esm.js → addWaasSolanaExtension-CLhieXpF.esm.js} +8 -29
  6. package/dist/addWaasSolanaExtension-CLhieXpF.esm.js.map +1 -0
  7. package/dist/{addWaasSolanaExtension-BaxzWnYL.cjs.js → addWaasSolanaExtension-s5RmA285.cjs.js} +12 -39
  8. package/dist/addWaasSolanaExtension-s5RmA285.cjs.js.map +1 -0
  9. package/dist/checkoutTransaction.types.d.ts +6 -0
  10. package/dist/checkoutTransaction.types.d.ts.map +1 -0
  11. package/dist/exports/index.d.ts +2 -1
  12. package/dist/exports/index.d.ts.map +1 -1
  13. package/dist/index.cjs.js +75 -92
  14. package/dist/index.cjs.js.map +1 -1
  15. package/dist/index.esm.js +61 -79
  16. package/dist/index.esm.js.map +1 -1
  17. package/dist/isSolanaGasSponsorshipEnabled/index.d.ts +2 -0
  18. package/dist/isSolanaGasSponsorshipEnabled/index.d.ts.map +1 -0
  19. package/dist/isSolanaGasSponsorshipEnabled/isSolanaGasSponsorshipEnabled.d.ts +8 -0
  20. package/dist/isSolanaGasSponsorshipEnabled/isSolanaGasSponsorshipEnabled.d.ts.map +1 -0
  21. package/dist/phantomRedirect/addPhantomRedirectSolanaExtension/addPhantomRedirectSolanaExtension.d.ts.map +1 -1
  22. package/dist/phantomRedirect/completePhantomRedirect/completePhantomRedirect.d.ts.map +1 -1
  23. package/dist/phantomRedirect/createPhantomRedirectWalletProvider/createPhantomRedirectWalletProvider.d.ts.map +1 -1
  24. package/dist/phantomRedirect/detectPhantomRedirect/detectPhantomRedirect.d.ts +10 -0
  25. package/dist/phantomRedirect/detectPhantomRedirect/detectPhantomRedirect.d.ts.map +1 -1
  26. package/dist/phantomRedirect/utils/getPhantomCluster/getPhantomCluster.d.ts.map +1 -1
  27. package/dist/solanaTransferAmount-Bd39IUO-.esm.js +221 -0
  28. package/dist/solanaTransferAmount-Bd39IUO-.esm.js.map +1 -0
  29. package/dist/solanaTransferAmount-DQusACZn.cjs.js +287 -0
  30. package/dist/solanaTransferAmount-DQusACZn.cjs.js.map +1 -0
  31. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  32. package/dist/utils/solanaExecuteCheckoutTransaction/index.d.ts +2 -0
  33. package/dist/utils/solanaExecuteCheckoutTransaction/index.d.ts.map +1 -0
  34. package/dist/utils/solanaExecuteCheckoutTransaction/solanaExecuteCheckoutTransaction.d.ts +19 -0
  35. package/dist/utils/solanaExecuteCheckoutTransaction/solanaExecuteCheckoutTransaction.d.ts.map +1 -0
  36. package/dist/utils/solanaTransferAmount/index.d.ts +2 -0
  37. package/dist/utils/solanaTransferAmount/index.d.ts.map +1 -0
  38. package/dist/utils/solanaTransferAmount/solanaTransferAmount.d.ts +14 -0
  39. package/dist/utils/solanaTransferAmount/solanaTransferAmount.d.ts.map +1 -0
  40. package/dist/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts.map +1 -1
  41. package/dist/waas.cjs.js +4 -4
  42. package/dist/waas.cjs.js.map +1 -1
  43. package/dist/waas.esm.js +2 -2
  44. package/dist/walletConnect/createWalletProviderFromWalletConnectSolanaSession/createWalletProviderFromWalletConnectSolanaSession.d.ts.map +1 -1
  45. package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.d.ts.map +1 -1
  46. package/dist/walletStandard.cjs.js +3 -3
  47. package/dist/walletStandard.cjs.js.map +1 -1
  48. package/dist/walletStandard.esm.js +2 -2
  49. package/package.json +6 -5
  50. package/dist/addSolanaWalletStandardExtension-B7GpGFx3.esm.js.map +0 -1
  51. package/dist/addSolanaWalletStandardExtension-Bv39eDZc.cjs.js.map +0 -1
  52. package/dist/addWaasSolanaExtension-BaxzWnYL.cjs.js.map +0 -1
  53. package/dist/addWaasSolanaExtension-ofYQDYyc.esm.js.map +0 -1
  54. package/dist/isVersionedTransaction-CecentWi.esm.js +0 -48
  55. package/dist/isVersionedTransaction-CecentWi.esm.js.map +0 -1
  56. package/dist/isVersionedTransaction-DW-V1tUS.cjs.js +0 -72
  57. package/dist/isVersionedTransaction-DW-V1tUS.cjs.js.map +0 -1
@@ -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_isVersionedTransaction = require('./isVersionedTransaction-DW-V1tUS.cjs.js');
28
+ const require_solanaTransferAmount = require('./solanaTransferAmount-DQusACZn.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");
@@ -101,7 +101,7 @@ const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletSta
101
101
  transaction: transaction.serialize({ requireAllSignatures: false })
102
102
  })))).map(({ signedTransaction }, index) => {
103
103
  const inputTransaction = transactions[index];
104
- if (require_isVersionedTransaction.isVersionedTransaction(inputTransaction)) return _solana_web3_js.VersionedTransaction.deserialize(signedTransaction);
104
+ if (require_solanaTransferAmount.isVersionedTransaction(inputTransaction)) return _solana_web3_js.VersionedTransaction.deserialize(signedTransaction);
105
105
  return _solana_web3_js.Transaction.from(signedTransaction);
106
106
  }) };
107
107
  };
@@ -163,6 +163,7 @@ const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletSta
163
163
  get events() {
164
164
  return getEventEmitter();
165
165
  },
166
+ executeCheckoutTransaction: (args) => require_solanaTransferAmount.solanaExecuteCheckoutTransaction(args, dynamicClient),
166
167
  getActiveNetworkId,
167
168
  getConnectedAddresses,
168
169
  groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(walletStandardWallet.name),
@@ -177,6 +178,7 @@ const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletSta
177
178
  signTransaction,
178
179
  switchActiveNetwork,
179
180
  terminate,
181
+ transferAmount: (args) => require_solanaTransferAmount.solanaTransferAmount(args, dynamicClient),
180
182
  walletProviderType
181
183
  };
182
184
  };
@@ -201,7 +203,7 @@ const SOLANA_WALLET_STANDARD_EXTENSION_KEY = "solanaWalletStandard";
201
203
  const addSolanaWalletStandardExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
202
204
  if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client)) return;
203
205
  (0, _dynamic_labs_sdk_client_core.registerExtension)({ extensionKey: SOLANA_WALLET_STANDARD_EXTENSION_KEY }, client);
204
- require_isVersionedTransaction.registerSolanaNetworkProviderBuilder(client);
206
+ require_solanaTransferAmount.registerSolanaNetworkProviderBuilder(client);
205
207
  const walletProviderRegistry = (0, _dynamic_labs_sdk_client_core.getWalletProviderRegistry)(client);
206
208
  (0, _wallet_standard_app.getWallets)().get().filter(hasAllRequiredFeatures).forEach((walletStandardWallet) => {
207
209
  const walletProvider = createWalletProviderFromSolanaStandardWallet({
@@ -228,4 +230,4 @@ Object.defineProperty(exports, 'addSolanaWalletStandardExtension', {
228
230
  return addSolanaWalletStandardExtension;
229
231
  }
230
232
  });
231
- //# sourceMappingURL=addSolanaWalletStandardExtension-Bv39eDZc.cjs.js.map
233
+ //# sourceMappingURL=addSolanaWalletStandardExtension-0JyyakfO.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSolanaWalletStandardExtension-0JyyakfO.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\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\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\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\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 */\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAa,0BAA0B,OACrC,EAAE,iBACF,WAC4C;CAC5C,MAAM,EAAE,gBAAgB,yDAA2B,EAAE,eAAe,EAAE,OAAO;AAE7E,KAAI,CAAC,aAAa,QAChB;AAGF,QAAO,UAAU,YAAY;;;;;ACG/B,MAAa,sCAAsC,WAAmB;AACpE,QAAO,OAAO;;;;;ACUhB,MAAa,gDAAgD,EAC3D,eACA,2BAC8E;CAC9E,MAAM,WAAW,mCAAmC,qBAAqB;CAEzE,MAAM,qBAAqBA,8CAAmB;CAE9C,MAAM,iEAA8B;EAClC,OAAO;EACP,aAAa,qBAAqB;EAClC;EACD,CAAC;CAEF,MAAMC,UAA2C,YAAY;EAC3D,MAAM,wBAAwB,qBAAqB;AAKnD,MACE,uBAAuB,UACvB,sBAAsB,GAAG,aACzB,sBAAsB,GAAG,QAEzB,QAAO,EACL,WAAW,CACT;GACE,SAAS,sBAAsB,GAAG;GAClC,WAAW,sBAAsB,GAAG,UAAU,UAAU;GACzD,CACF,EACF;EAGH,MAAM,gBAAgB,SAAS,qBAAqB;AAEpD,mDAAc,eAAe,8CAA8C;AAI3E,SAAO,EACL,YAHa,MAAM,cAAc,EAAE,QAAQ,OAAO,CAAC,EAGjC,UAAU,KAAK,aAAa;GAC5C,SAAS,QAAQ;GACjB,WAAW,QAAQ,WAAW,UAAU;GACzC,EAAE,EACJ;;CAEH,MAAM,oBAAoB,SAAS,wBAAwB;CAE3D,MAAMC,qBACJ,uFAC0C;EACtC,QAAQ;EACR,mBAAmB;EACpB,CAAC;CAEN,MAAM,oBAAoB,YAAY;AACpC,MAAI,CAAC,aAAa,IAAI,QACpB,OAAM,SAAS;EAGjB,MAAM,UAAU,qBAAqB,WAAW;AAEhD,mDAAc,SAAS,8BAA8B;AAErD,SAAO;;CAGT,MAAM,oBAA6B;AACjC,SAAO,qBAAqB,UAAU,SAAS;;CAGjD,MAAMC,wBACJ,YAAY;AACV,MAAI,CAAC,aAAa,IAAI,QACpB,OAAM,SAAS;AAGjB,SAAO,EACL,WAAW,qBAAqB,SAAS,KACtC,YAAY,QAAQ,QACtB,EACF;;CAGL,MAAMC,sBACJ,OAAO,EAAE,cAAc,oBAAoB;EACzC,MAAM,wBACJ,SAAS,2BAA2B;AAEtC,mDACE,uBACA,sDACD;AAED,6EACE,EAAE,eAAe,EACjB,cACD;EAED,MAAM,UAAU,MAAM,mBAAmB;EAEzC,MAAM,QAAQ,MAAM,wBAClB,EAAE,eAAe,EACjB,cACD;AACD,mDAAc,OAAO,gDAAgD;AA4BrE,SAAO,EAAE,qBAhBqB,MAAM,sBAClC,GAXgD,aAAa,KAC5D,iBAAiB;GAChB;GACA;GACA,aAAa,YAAY,UAAU,EACjC,sBAAsB,OACvB,CAAC;GACH,EACF,CAIA,EAEgD,KAC9C,EAAE,qBAAqB,UAAU;GAChC,MAAM,mBAAmB,aAAa;AAGtC,OAAIC,oDAAuB,iBAAiB,CAC1C,QAAOC,qCAAqB,YAAY,kBAAkB;AAE5D,UAAOC,4BAAY,KAAK,kBAAkB;IAE7C,EAE4B;;CAGjC,MAAMC,yBACJ,OAAO,EAAE,aAAa,oBAAoB;AACxC,6EACE,EACE,eACD,EACD,cACD;EAED,MAAM,+BACJ,SAAS,kCAAkC;AAE7C,mDACE,8BACA,6DACD;EAED,MAAM,UAAU,MAAM,mBAAmB;EAEzC,MAAM,QAAQ,MAAM,wBAClB,EAAE,eAAe,EACjB,cACD;AACD,mDAAc,OAAO,gDAAgD;EAUrE,MAAM,CAAC,EAAE,eARkB,MAAM,6BAA6B;GAC5D;GACA;GACA,aAAa,YAAY,UAAU,EACjC,sBAAsB,OACvB,CAAC;GACH,CAAC;AAIF,SAAO,EAAE,WAAW,aAAK,OAAO,UAAU,EAAE;;CAGhD,MAAMC,cAAmD,OAAO,EAC9D,SACA,oBACI;EACJ,MAAM,oBAAoB,SAAS,uBAAuB;AAE1D,mDACE,mBACA,kDACD;AAED,mDAAc,eAAe,2BAA2B;AAExD,6EACE,EACE,eACD,EACD,cACD;EAED,MAAM,iBAAiB,IAAI,aAAa,CAAC,OAAO,QAAQ;AASxD,SAAO,EAAE,8DALQ,MAAM,kBAAkB;GACvC,SAHc,MAAM,mBAAmB;GAIvC,SAAS;GACV,CAAC,EAE0C,GAAG,UAAU,EAAE;;CAG7D,MAAMC,kBAA2D,OAAO,EACtE,aACA,oBACI;AAMJ,SAAO,EAAE,oBALkB,MAAM,oBAAoB;GACnD,cAAc,CAAC,YAAY;GAC3B;GACD,CAAC,EAE6C,mBAAmB,IAAI;;CAGxE,MAAMC,sBACJ,OAAO,EAAE,0FACgC;EACrC,QAAQ;EACR;EACA,mBAAmB;EACpB,CAAC;CAEN,MAAM,EAAE,iBAAiB,4FACwB;EAC7C,uBAAuB,EAAE,uBAAuB;AAC9C,oDAAc,kBAAkB,iCAAiC;AAEjE,qBAAkB;;EAGpB,sBAAsB,EAAE,4BAA4B;AAGlD,UAFsB,SAAS,mBAEV,GAAG,WAAW,EAAE,eAAe;AAClD,0BAAsB,EACpB,WAAW,UAAU,KAAK,YAAY,QAAQ,QAAQ,IAAI,EAAE,EAC7D,CAAC;KACF;;EAGJ,iBAAiB,CAAC,kBAAkB;EACrC,CAAC;CAEJ,MAAMC,YAA+C,YAAY;AAC/D,uBAAqB;;AA8BvB,QA3B6C;EAC3C,OAAO;EACP;EACA,YAAY;EACZ,IAAI,SAAS;AACX,UAAO,iBAAiB;;EAE1B,6BAA6B,SAC3BC,8DAAiC,MAAM,cAAc;EACvD;EACA;EACA,0EAAuC,qBAAqB,KAAK;EACjE;EACA,UAAU;GACR,aAAa,qBAAqB;GAClC,MAAM,qBAAqB;GAC5B;EACD;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB,SAASC,kDAAqB,MAAM,cAAc;EACnE;EACD;;;;;ACnTH,MAAa,0BAA0B,WAA4B;AACjE,QAAO,QACL,OAAO,WAAW,sBAChB,OAAO,WAAW,uBAClB,OAAO,WAAW,6BAClB,OAAO,WAAW,sBACrB;;;;;ACKH,MAAa,uCAAuC;;;;;;;;;AAUpD,MAAa,oCACX,8DAA2B,KAClB;AACT,qDACe,EAAE,cAAc,sCAAsC,EAAE,OAAO,CAE5E;AAGF,sDACE,EAAE,cAAc,sCAAsC,EACtD,OACD;AAED,mEAAqC,OAAO;CAE5C,MAAM,sFAAmD,OAAO;AAMhE,uCAJ0C,CACvC,KAAK,CACL,OAAO,uBAAuB,CAEX,SAAS,yBAAyB;EACtD,MAAM,iBAAiB,6CAA6C;GAClE,eAAe;GACf;GACD,CAAC;AAEF,yBAAuB,SAAS;GAC9B,UAAUC,qDAAuB;GACjC;GACD,CAAC;GACF"}
@@ -1,4 +1,4 @@
1
- import { n as registerSolanaNetworkProviderBuilder, t as isVersionedTransaction } from "./isVersionedTransaction-CecentWi.esm.js";
1
+ import { i as solanaExecuteCheckoutTransaction, l as registerSolanaNetworkProviderBuilder, s as isVersionedTransaction, t as solanaTransferAmount } from "./solanaTransferAmount-Bd39IUO-.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";
@@ -135,6 +135,7 @@ const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletSta
135
135
  get events() {
136
136
  return getEventEmitter();
137
137
  },
138
+ executeCheckoutTransaction: (args) => solanaExecuteCheckoutTransaction(args, dynamicClient),
138
139
  getActiveNetworkId,
139
140
  getConnectedAddresses,
140
141
  groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),
@@ -149,6 +150,7 @@ const createWalletProviderFromSolanaStandardWallet = ({ dynamicClient, walletSta
149
150
  signTransaction,
150
151
  switchActiveNetwork,
151
152
  terminate,
153
+ transferAmount: (args) => solanaTransferAmount(args, dynamicClient),
152
154
  walletProviderType
153
155
  };
154
156
  };
@@ -189,4 +191,4 @@ const addSolanaWalletStandardExtension = (client = getDefaultClient()) => {
189
191
 
190
192
  //#endregion
191
193
  export { addSolanaWalletStandardExtension as t };
192
- //# sourceMappingURL=addSolanaWalletStandardExtension-B7GpGFx3.esm.js.map
194
+ //# sourceMappingURL=addSolanaWalletStandardExtension-CPT-KI29.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSolanaWalletStandardExtension-CPT-KI29.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\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\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\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\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 */\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,35 +1,10 @@
1
- import { n as registerSolanaNetworkProviderBuilder, t as isVersionedTransaction } from "./isVersionedTransaction-CecentWi.esm.js";
1
+ import { c as getSolanaConnection, i as solanaExecuteCheckoutTransaction, l as registerSolanaNetworkProviderBuilder, s as isVersionedTransaction, t as solanaTransferAmount } from "./solanaTransferAmount-Bd39IUO-.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
- import { Connection, PublicKey, VersionedTransaction } from "@solana/web3.js";
3
+ import { PublicKey, VersionedTransaction } from "@solana/web3.js";
4
4
  import { BaseError, getActiveNetworkData } from "@dynamic-labs-sdk/client";
5
5
  import { DYNAMIC_WAAS_METADATA, createWaasProvider, getAllUserWaasAddressesForChain } from "@dynamic-labs-sdk/client/waas/core";
6
6
  import { WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
7
7
 
8
- //#region src/getSolanaConnection/getSolanaConnection.ts
9
- /**
10
- * Returns a new Solana connection for the given network provider.
11
- *
12
- * @example
13
- * ```ts
14
- * import { getActiveNetworkData } from '@dynamic-labs-sdk/client';
15
- * import { isSolanaNetworkProvider, getSolanaConnection } from '@dynamic-labs-sdk/solana';
16
- *
17
- * const { networkData } = getActiveNetworkData({ walletAccount });
18
- *
19
- * if(!networkData) {
20
- * throw new Error('No network data found');
21
- * }
22
- *
23
- * const connection = getSolanaConnection({
24
- * networkData,
25
- * });
26
- * ```
27
- */
28
- const getSolanaConnection = ({ networkData, commitmentOrConfig }) => {
29
- return new Connection(networkData.rpcUrls.http[0], commitmentOrConfig);
30
- };
31
-
32
- //#endregion
33
8
  //#region src/errors/SponsorTransactionError/SponsorTransactionError.ts
34
9
  var SponsorTransactionError = class extends BaseError {
35
10
  constructor(cause) {
@@ -134,7 +109,9 @@ const createWalletProviderForWaasSolana = (sdkClient) => {
134
109
  const signTransaction = async ({ transaction, walletAccount }) => {
135
110
  const messageBytes = isVersionedTransaction(transaction) ? transaction.message.serialize() : transaction.serializeMessage();
136
111
  const serializedTransaction = getBuffer().from(messageBytes).toString("hex");
112
+ const { networkData } = await getActiveNetworkData({ walletAccount }, sdkClient);
137
113
  const { signature } = await waasProvider.signSerializedTransaction({
114
+ chainId: networkData?.networkId,
138
115
  serializedTransaction,
139
116
  walletAccount
140
117
  });
@@ -165,6 +142,7 @@ const createWalletProviderForWaasSolana = (sdkClient) => {
165
142
  return {
166
143
  ...waasProvider,
167
144
  chain,
145
+ executeCheckoutTransaction: (args) => solanaExecuteCheckoutTransaction(args, sdkClient),
168
146
  getActiveNetworkId,
169
147
  getConnectedAddresses,
170
148
  groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),
@@ -179,6 +157,7 @@ const createWalletProviderForWaasSolana = (sdkClient) => {
179
157
  signMessage,
180
158
  signTransaction,
181
159
  switchActiveNetwork,
160
+ transferAmount: (args) => solanaTransferAmount(args, sdkClient),
182
161
  walletProviderType
183
162
  };
184
163
  };
@@ -207,5 +186,5 @@ const addWaasSolanaExtension = (client = getDefaultClient()) => {
207
186
  };
208
187
 
209
188
  //#endregion
210
- export { SponsorTransactionError as n, getSolanaConnection as r, addWaasSolanaExtension as t };
211
- //# sourceMappingURL=addWaasSolanaExtension-ofYQDYyc.esm.js.map
189
+ export { SponsorTransactionError as n, addWaasSolanaExtension as t };
190
+ //# sourceMappingURL=addWaasSolanaExtension-CLhieXpF.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasSolanaExtension-CLhieXpF.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 */\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\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 */\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;;;;;;;;;;;;;;;;;;;ACmBN,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;;;;;AC1MH,MAAa,4BAA4B;;;;;;;;;AAUzC,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,36 +1,11 @@
1
- const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-Bv39eDZc.cjs.js');
2
- const require_isVersionedTransaction = require('./isVersionedTransaction-DW-V1tUS.cjs.js');
1
+ const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-0JyyakfO.cjs.js');
2
+ const require_solanaTransferAmount = require('./solanaTransferAmount-DQusACZn.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");
6
6
  let _dynamic_labs_sdk_client_waas_core = require("@dynamic-labs-sdk/client/waas/core");
7
7
  let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
8
8
 
9
- //#region src/getSolanaConnection/getSolanaConnection.ts
10
- /**
11
- * Returns a new Solana connection for the given network provider.
12
- *
13
- * @example
14
- * ```ts
15
- * import { getActiveNetworkData } from '@dynamic-labs-sdk/client';
16
- * import { isSolanaNetworkProvider, getSolanaConnection } from '@dynamic-labs-sdk/solana';
17
- *
18
- * const { networkData } = getActiveNetworkData({ walletAccount });
19
- *
20
- * if(!networkData) {
21
- * throw new Error('No network data found');
22
- * }
23
- *
24
- * const connection = getSolanaConnection({
25
- * networkData,
26
- * });
27
- * ```
28
- */
29
- const getSolanaConnection = ({ networkData, commitmentOrConfig }) => {
30
- return new _solana_web3_js.Connection(networkData.rpcUrls.http[0], commitmentOrConfig);
31
- };
32
-
33
- //#endregion
34
9
  //#region src/errors/SponsorTransactionError/SponsorTransactionError.ts
35
10
  var SponsorTransactionError = class extends _dynamic_labs_sdk_client.BaseError {
36
11
  constructor(cause) {
@@ -61,7 +36,7 @@ var SponsorTransactionError = class extends _dynamic_labs_sdk_client.BaseError {
61
36
  */
62
37
  const sponsorTransaction = async ({ transaction }, client) => {
63
38
  const core = (0, _dynamic_labs_sdk_client_core.getCore)(client);
64
- const serialized = require_isVersionedTransaction.isVersionedTransaction(transaction) ? transaction.serialize() : transaction.serialize({
39
+ const serialized = require_solanaTransferAmount.isVersionedTransaction(transaction) ? transaction.serialize() : transaction.serialize({
65
40
  requireAllSignatures: false,
66
41
  verifySignatures: false
67
42
  });
@@ -114,7 +89,7 @@ const createWalletProviderForWaasSolana = (sdkClient) => {
114
89
  });
115
90
  const { networkData } = await (0, _dynamic_labs_sdk_client.getActiveNetworkData)({ walletAccount }, sdkClient);
116
91
  (0, _dynamic_labs_sdk_client_core.assertDefined)(networkData, "Network data is required");
117
- const connection = getSolanaConnection({ networkData });
92
+ const connection = require_solanaTransferAmount.getSolanaConnection({ networkData });
118
93
  const rawTransaction = signedTransaction.serialize();
119
94
  return { signature: await connection.sendRawTransaction(rawTransaction, options) };
120
95
  };
@@ -125,7 +100,7 @@ const createWalletProviderForWaasSolana = (sdkClient) => {
125
100
  });
126
101
  const { networkData } = await (0, _dynamic_labs_sdk_client.getActiveNetworkData)({ walletAccount }, sdkClient);
127
102
  (0, _dynamic_labs_sdk_client_core.assertDefined)(networkData, "Network data is required");
128
- const connection = getSolanaConnection({ networkData });
103
+ const connection = require_solanaTransferAmount.getSolanaConnection({ networkData });
129
104
  const rawTransaction = signedTransaction.serialize();
130
105
  return { signature: await connection.sendRawTransaction(rawTransaction, {
131
106
  skipPreflight: true,
@@ -133,9 +108,11 @@ const createWalletProviderForWaasSolana = (sdkClient) => {
133
108
  }) };
134
109
  };
135
110
  const signTransaction = async ({ transaction, walletAccount }) => {
136
- const messageBytes = require_isVersionedTransaction.isVersionedTransaction(transaction) ? transaction.message.serialize() : transaction.serializeMessage();
111
+ const messageBytes = require_solanaTransferAmount.isVersionedTransaction(transaction) ? transaction.message.serialize() : transaction.serializeMessage();
137
112
  const serializedTransaction = (0, _dynamic_labs_sdk_client_core.getBuffer)().from(messageBytes).toString("hex");
113
+ const { networkData } = await (0, _dynamic_labs_sdk_client.getActiveNetworkData)({ walletAccount }, sdkClient);
138
114
  const { signature } = await waasProvider.signSerializedTransaction({
115
+ chainId: networkData?.networkId,
139
116
  serializedTransaction,
140
117
  walletAccount
141
118
  });
@@ -166,6 +143,7 @@ const createWalletProviderForWaasSolana = (sdkClient) => {
166
143
  return {
167
144
  ...waasProvider,
168
145
  chain,
146
+ executeCheckoutTransaction: (args) => require_solanaTransferAmount.solanaExecuteCheckoutTransaction(args, sdkClient),
169
147
  getActiveNetworkId,
170
148
  getConnectedAddresses,
171
149
  groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(_dynamic_labs_sdk_client_waas_core.DYNAMIC_WAAS_METADATA.displayName),
@@ -180,6 +158,7 @@ const createWalletProviderForWaasSolana = (sdkClient) => {
180
158
  signMessage,
181
159
  signTransaction,
182
160
  switchActiveNetwork,
161
+ transferAmount: (args) => require_solanaTransferAmount.solanaTransferAmount(args, sdkClient),
183
162
  walletProviderType
184
163
  };
185
164
  };
@@ -198,7 +177,7 @@ const WAAS_SOLANA_EXTENSION_KEY = "waasSolana";
198
177
  const addWaasSolanaExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
199
178
  if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client)) return;
200
179
  (0, _dynamic_labs_sdk_client_core.registerExtension)({ extensionKey: WAAS_SOLANA_EXTENSION_KEY }, client);
201
- require_isVersionedTransaction.registerSolanaNetworkProviderBuilder(client);
180
+ require_solanaTransferAmount.registerSolanaNetworkProviderBuilder(client);
202
181
  const walletProviderRegistry = (0, _dynamic_labs_sdk_client_core.getWalletProviderRegistry)(client);
203
182
  const walletProvider = createWalletProviderForWaasSolana(client);
204
183
  walletProviderRegistry.register({
@@ -220,10 +199,4 @@ Object.defineProperty(exports, 'addWaasSolanaExtension', {
220
199
  return addWaasSolanaExtension;
221
200
  }
222
201
  });
223
- Object.defineProperty(exports, 'getSolanaConnection', {
224
- enumerable: true,
225
- get: function () {
226
- return getSolanaConnection;
227
- }
228
- });
229
- //# sourceMappingURL=addWaasSolanaExtension-BaxzWnYL.cjs.js.map
202
+ //# sourceMappingURL=addWaasSolanaExtension-s5RmA285.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasSolanaExtension-s5RmA285.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 */\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\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 */\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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"}
@@ -0,0 +1,6 @@
1
+ export type SolanaSigningPayload = {
2
+ serializedTransaction?: {
3
+ serializedTransaction: string;
4
+ };
5
+ };
6
+ //# sourceMappingURL=checkoutTransaction.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkoutTransaction.types.d.ts","sourceRoot":"","sources":["../src/checkoutTransaction.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,qBAAqB,CAAC,EAAE;QACtB,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH,CAAC"}
@@ -6,7 +6,7 @@ export { isSolanaNetworkProvider } from '../isSolanaNetworkProvider';
6
6
  export { isSolanaWalletAccount } from '../isSolanaWalletAccount';
7
7
  export { simulateSolanaTransaction } from '../simulateSolanaTransaction';
8
8
  export type { SolanaSimulationResult, SolanaTransactionFeeData, } from '../transactionSimulation.types';
9
- export { calculateSolanaTransactionFee } from '../utils/calculateSolanaTransactionFee';
9
+ export { isSolanaGasSponsorshipEnabled } from '../isSolanaGasSponsorshipEnabled';
10
10
  export { addPhantomRedirectSolanaExtension } from '../phantomRedirect/addPhantomRedirectSolanaExtension';
11
11
  export { completePhantomRedirect } from '../phantomRedirect/completePhantomRedirect';
12
12
  export { detectPhantomRedirect } from '../phantomRedirect/detectPhantomRedirect';
@@ -17,4 +17,5 @@ export { signAndSendTransaction } from '../signAndSendTransaction';
17
17
  export { signTransaction } from '../signTransaction';
18
18
  export type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';
19
19
  export type { SolanaWalletAccount } from '../SolanaWalletAccount.types';
20
+ export { calculateSolanaTransactionFee } from '../utils/calculateSolanaTransactionFee';
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2DAA2D,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,YAAY,EACV,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAEvF,OAAO,EAAE,iCAAiC,EAAE,MAAM,sDAAsD,CAAC;AACzG,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,YAAY,EACV,6BAA6B,EAC7B,cAAc,GACf,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2DAA2D,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,YAAY,EACV,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,iCAAiC,EAAE,MAAM,sDAAsD,CAAC;AACzG,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,YAAY,EACV,6BAA6B,EAC7B,cAAc,GACf,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC"}